@Override public HandlerResult visit(OWLObjectMaxCardinality ce) { if (ce.getCardinality() == 0) { // remove the ce if the max cardinality is zero return HandlerResult.remove(); } final OWLClassExpression filler = ce.getFiller(); final HandlerResult recursive = filler.accept(this); OWLObjectSomeValuesFrom newCE; if (recursive == null) { newCE = factory.getOWLObjectSomeValuesFrom(ce.getProperty(), filler); } else if (recursive.remove) { return HandlerResult.remove(); } else { newCE = factory.getOWLObjectSomeValuesFrom(ce.getProperty(), recursive.modified); } return HandlerResult.modified(newCE); }
@Override public OWLClassExpression visit(OWLObjectMaxCardinality ce) { boolean neg = negated; int card = ce.getCardinality(); if (negated) { card = ce.getCardinality() + 1; } negated = false; OWLClassExpression filler = ce.getFiller().accept(this); OWLClassExpression nnf = null; if (neg) { nnf = dataFactory.getOWLObjectMinCardinality(card, ce.getProperty(), filler); } else { nnf = dataFactory.getOWLObjectMaxCardinality(card, ce.getProperty(), filler); } negated = neg; return nnf; }
@Override public void addToOntology() { OWLObjectProperty property = featurePool.getExclusiveProperty(":objectMaxCardinalityProperty_LiteRL"); OWLClass range = featurePool.getExclusiveClass(":ObjectMaxCardinalityRange_LiteRL"); addToGenericDomainAndNewRange(property, range); OWLObjectMaxCardinality maxCardinality = factory.getOWLObjectMaxCardinality(1, property); addAxiomToOntology(factory.getOWLSubClassOfAxiom(range, maxCardinality)); }
@Override public void addToOntology() { OWLObjectProperty property = featurePool.getExclusiveProperty(":objectMaxQualifiedCardinalityProperty"); OWLClass range = featurePool.getExclusiveClass(":ObjectMaxQualifiedCardinalityRange"); addToGenericDomainAndNewRange(property, range); OWLClass qualifier = featurePool.getExclusiveClass(":ObjectMaxQualifiedCardinality_Qualifier"); OWLObjectMaxCardinality maxCardinality = factory.getOWLObjectMaxCardinality(3, property, qualifier); addAxiomToOntology(factory.getOWLSubClassOfAxiom(range, maxCardinality)); }
@Override public void addToOntology() { OWLObjectProperty property = featurePool.getExclusiveProperty(":objectMaxQualifiedCardinalityProperty_RL"); OWLClass range = featurePool.getExclusiveClass(":ObjectMaxQualifiedCardinalityRange_RL"); addToGenericDomainAndNewRange(property, range); OWLClass qualifier = featurePool.getExclusiveClass(":ObjectMaxQualifiedCardinality_RL_Qualifier"); OWLObjectMaxCardinality maxCardinality = factory.getOWLObjectMaxCardinality(0, property, qualifier); addAxiomToOntology(factory.getOWLSubClassOfAxiom(range, maxCardinality)); }
@Override public void addToOntology() { OWLObjectProperty property = featurePool.getExclusiveProperty(":objectMaxCardinalityProperty"); OWLClass range = featurePool.getExclusiveClass(":ObjectMaxCardinalityRange"); addToGenericDomainAndNewRange(property, range); OWLObjectMaxCardinality maxCardinality = factory.getOWLObjectMaxCardinality(8, property); addAxiomToOntology(factory.getOWLSubClassOfAxiom(range, maxCardinality)); }
public void visit(OWLObjectMaxCardinality arg0) { try { OWLClass c = Utils.ensureClass(arg0.getFiller()); OWLObjectProperty p = Utils.ensureObjectProperty(arg0.getProperty()); integrityConstraints.add(integrityConstraintFactory .MaxObjectParticipationConstraint(subjClass, p, c, arg0.getCardinality())); } catch (UnsupportedICException e) { notSupported(arg0); } }
public OWLClassExpression visit(OWLObjectMaxCardinality object) { m_axioms.m_objectPropertiesOccurringInOWLAxioms.add(object.getProperty().getNamedProperty()); OWLClassExpression filler=object.getFiller(); if (isSimple(filler)) return object; else { OWLClassExpression complementDescription=m_expressionManager.getComplementNNF(filler); OWLClassExpression definition=getDefinitionFor(complementDescription,m_alreadyExists); if (!m_alreadyExists[0]) m_newInclusions.add(new OWLClassExpression[] { negative(definition),complementDescription }); return m_factory.getOWLObjectMaxCardinality(object.getCardinality(),object.getProperty(),m_expressionManager.getComplementNNF(definition)); } }
public OWLClassExpression visit(OWLObjectMaxCardinality d) { OWLClassExpression filler=getSimplified(d.getFiller()); if (filler.isOWLNothing()) return m_factory.getOWLThing(); else if (d.getCardinality()<=0) return m_factory.getOWLObjectAllValuesFrom(d.getProperty().getSimplified(),m_factory.getOWLObjectComplementOf(filler)); else return m_factory.getOWLObjectMaxCardinality(d.getCardinality(),d.getProperty().getSimplified(),filler); }
public OWLClassExpression visit(OWLObjectExactCardinality d) { OWLClassExpression filler=getSimplified(d.getFiller()); if (d.getCardinality()<0) return m_factory.getOWLNothing(); else if (d.getCardinality()==0) return m_factory.getOWLObjectAllValuesFrom(d.getProperty().getSimplified(),m_factory.getOWLObjectComplementOf(filler)); else if (filler.isOWLNothing()) return m_factory.getOWLNothing(); else { OWLObjectMinCardinality minCardinality=m_factory.getOWLObjectMinCardinality(d.getCardinality(),d.getProperty().getSimplified(),filler); OWLObjectMaxCardinality maxCardinality=m_factory.getOWLObjectMaxCardinality(d.getCardinality(),d.getProperty().getSimplified(),filler); return m_factory.getOWLObjectIntersectionOf(minCardinality,maxCardinality); } }
@Override public OWLObjectMaxCardinality visit( ElkObjectMaxCardinalityQualified expression) { return owlFactory_.getOWLObjectMaxCardinality( expression.getCardinality(), convert(expression.getProperty()), convert(expression.getFiller())); }
@SuppressWarnings("static-method") public ElkObjectMaxCardinality convert( OWLObjectMaxCardinality owlObjectMaxCardinality) { if (owlObjectMaxCardinality.isQualified()) return new ElkObjectMaxCardinalityQualifiedWrap<OWLObjectMaxCardinality>( owlObjectMaxCardinality); // else return new ElkObjectMaxCardinalityUnqualifiedWrap<OWLObjectMaxCardinality>( owlObjectMaxCardinality); }
@Override public OWLObjectMaxCardinality visit(OWLObjectMaxCardinality ce) { if (LOG.isDebugEnabled()) { LOG.debug("Unfolding max_cardinality: "+ce); } OWLClassExpression filler = ce.getFiller(); if (filler != null) { OWLClassExpression unfold = filler.accept(this); if (unfold != null) { return factory.getOWLObjectMaxCardinality(ce.getCardinality(), ce.getProperty(), unfold); } } return null; }
@Override public OWLClassExpression visit(OWLObjectMaxCardinality ce) { OWLClassExpression filler = ce.getFiller(); OWLClassExpression shortenedFiller = filler.accept(this); if(shortenedFiller.isOWLNothing()){// <= n r.\bot \equiv \top return df.getOWLThing(); } else if(beautify && ce.getCardinality() == 0) {// we rewrite <= 0 r C to \neg \exists r C - easier to read for humans return df.getOWLObjectComplementOf(df.getOWLObjectSomeValuesFrom(ce.getProperty(), shortenedFiller)); } else if(!filler.equals(shortenedFiller)){ return df.getOWLObjectMaxCardinality(ce.getCardinality(), ce.getProperty(), shortenedFiller); } return ce; }
@Override public void visit(OWLObjectMaxCardinality ce) { hashCode = primes[44]; hashCode = hashCode * MULT + ce.getProperty().hashCode(); hashCode = hashCode * MULT + ce.getCardinality(); hashCode = hashCode * MULT + ce.getFiller().hashCode(); }
@Override public Set<OWLClassExpression> visit(OWLObjectMaxCardinality ce) { Set<OWLClassExpression> result = new HashSet<>(); result.add(ce); result.addAll(ce.getFiller().accept(this)); return result; }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!super.equals(obj)) { return false; } return obj instanceof OWLObjectMaxCardinality; }
/** * create axioms for class--objectproperty----individual relation. * * @param src * @param objprop * @param dest * @return */ private void getClass2ObjectProperty2IndividualAxioms(OWLClass src, OWLObjectProperty objprop, OWLIndividual dest) { // Set<OWLAxiom> tmpaxioms = new HashSet<OWLAxiom>(); OWLAxiom axiom; OWLObjectSomeValuesFrom owlObjectSomeValuesFrom; OWLObjectHasValue owlLObjectHasValue; OWLObjectMaxCardinality owlObjectMaxCardinality; OWLObjectOneOf owlObjectOneOf; // set domain and range // scoped domain if (editor.isGenerateDomainAxiom()) { owlLObjectHasValue = owlDataFactory.getOWLObjectHasValue(objprop, dest); axiom = owlDataFactory.getOWLSubClassOfAxiom(owlLObjectHasValue, src); domainAndRangeAxioms.add(axiom); owlObjectSomeValuesFrom = owlDataFactory.getOWLObjectSomeValuesFrom(objprop, owlDataFactory.getOWLThing()); axiom = owlDataFactory.getOWLSubClassOfAxiom(owlObjectSomeValuesFrom, src); domainAndRangeAxioms.add(axiom); } // set existential restriction if (editor.isGenerateExistentialAxiom()) { owlObjectSomeValuesFrom = owlDataFactory.getOWLObjectSomeValuesFrom(objprop.getInverseProperty(), src); owlObjectOneOf = owlDataFactory.getOWLObjectOneOf(dest); axiom = owlDataFactory.getOWLSubClassOfAxiom(owlObjectOneOf, owlObjectSomeValuesFrom); existentialAxioms.add(axiom); owlLObjectHasValue = owlDataFactory.getOWLObjectHasValue(objprop, dest); axiom = owlDataFactory.getOWLSubClassOfAxiom(src, owlLObjectHasValue); existentialAxioms.add(axiom); } // set cardinality restriction if (editor.isGenerateCardinalityAxiom()) { owlObjectMaxCardinality = owlDataFactory.getOWLObjectMaxCardinality(1, objprop, owlDataFactory.getOWLThing()); axiom = owlDataFactory.getOWLSubClassOfAxiom(owlDataFactory.getOWLThing(), owlObjectMaxCardinality); cardinalityAxioms.add(axiom); owlObjectMaxCardinality = owlDataFactory.getOWLObjectMaxCardinality(1, objprop, owlDataFactory.getOWLThing()); axiom = owlDataFactory.getOWLSubClassOfAxiom(src, owlObjectMaxCardinality); cardinalityAxioms.add(axiom); owlObjectOneOf = owlDataFactory.getOWLObjectOneOf(dest); owlObjectMaxCardinality = owlDataFactory.getOWLObjectMaxCardinality(1, objprop, owlObjectOneOf); axiom = owlDataFactory.getOWLSubClassOfAxiom(src, owlObjectMaxCardinality); cardinalityAxioms.add(axiom); owlObjectOneOf = owlDataFactory.getOWLObjectOneOf(dest); owlObjectMaxCardinality = owlDataFactory.getOWLObjectMaxCardinality(1, objprop, owlObjectOneOf); axiom = owlDataFactory.getOWLSubClassOfAxiom(owlDataFactory.getOWLThing(), owlObjectMaxCardinality); cardinalityAxioms.add(axiom); } // return tmpaxioms; }
public void visit(OWLObjectMaxCardinality object) { visitProperty(object.getProperty()); object.getFiller().accept(this); }
public Boolean visit(OWLObjectMaxCardinality object) { return object.getCardinality()>0 ? Boolean.TRUE : m_expressionManager.getComplementNNF(object.getFiller()).accept(this); }
public void visit(OWLObjectMaxCardinality object) { m_hasAtMostRestrictions=true; visitProperty(object.getProperty()); object.getFiller().accept(this); }
public OWLClassExpression visit(OWLObjectMaxCardinality d) { OWLClassExpression filler=getNNF(d.getFiller()); return m_factory.getOWLObjectMaxCardinality(d.getCardinality(),d.getProperty().getSimplified(),filler); }
public OWLClassExpression visit(OWLObjectMaxCardinality d) { OWLClassExpression filler=getNNF(d.getFiller()); return m_factory.getOWLObjectMinCardinality(d.getCardinality()+1,d.getProperty().getSimplified(),filler); }
public void visit(OWLObjectMaxCardinality object) { int cardinality=object.getCardinality(); OWLObjectPropertyExpression onObjectProperty=object.getProperty(); OWLClassExpression filler=object.getFiller(); ensureYNotZero(); boolean isPositive; AtomicConcept atomicConcept; if (filler instanceof OWLClass) { isPositive=true; atomicConcept=AtomicConcept.create(((OWLClass)filler).getIRI().toString()); if (atomicConcept.isAlwaysTrue()) atomicConcept=null; } else if (filler instanceof OWLObjectComplementOf) { OWLClassExpression internal=((OWLObjectComplementOf)filler).getOperand(); if (!(internal instanceof OWLClass)) throw new IllegalStateException("Internal error: Invalid ontology normal form."); isPositive=false; atomicConcept=AtomicConcept.create(((OWLClass)internal).getIRI().toString()); if (atomicConcept.isAlwaysFalse()) atomicConcept=null; } else throw new IllegalStateException("Internal error: Invalid ontology normal form."); Role onRole=getRole(onObjectProperty); LiteralConcept toConcept=getLiteralConcept(filler); AnnotatedEquality annotatedEquality=AnnotatedEquality.create(cardinality,onRole,toConcept); Variable[] yVars=new Variable[cardinality+1]; for (int i=0;i<yVars.length;i++) { yVars[i]=nextY(); m_bodyAtoms.add(getRoleAtom(onObjectProperty,X,yVars[i])); if (atomicConcept!=null) { Atom atom=Atom.create(atomicConcept,yVars[i]); if (isPositive) m_bodyAtoms.add(atom); else m_headAtoms.add(atom); } } // Node ID comparisons are not needed in case of functionality axioms, // as the effect of these is simulated by the way in which the rules are applied. if (yVars.length>2) { for (int i=0;i<yVars.length-1;i++) m_bodyAtoms.add(Atom.create(NodeIDLessEqualThan.INSTANCE,yVars[i],yVars[i+1])); m_bodyAtoms.add(Atom.create(NodeIDsAscendingOrEqual.create(yVars.length),yVars)); } for (int i=0;i<yVars.length;i++) for (int j=i+1;j<yVars.length;j++) m_headAtoms.add(Atom.create(annotatedEquality,yVars[i],yVars[j],X)); }
@Override public OWLObjectMaxCardinality visit( ElkObjectMaxCardinalityUnqualified expression) { return owlFactory_.getOWLObjectMaxCardinality( expression.getCardinality(), convert(expression.getProperty())); }
@Override public ElkObjectMaxCardinality visit( OWLObjectMaxCardinality owlObjectMaxCardinality) { return CONVERTER.convert(owlObjectMaxCardinality); }