public void visit(OWLDisjointUnionAxiom axiom) { // DisjointUnion(C CE1 ... CEn) // 1. add C implies CE1 or ... or CEn, which is { not C or CE1 or ... or CEn } Set<OWLClassExpression> inclusion=new HashSet<OWLClassExpression>(axiom.getClassExpressions()); inclusion.add(m_expressionManager.getComplementNNF(axiom.getOWLClass())); OWLClassExpression[] inclusionArray=new OWLClassExpression[axiom.getClassExpressions().size()+1]; inclusion.toArray(inclusionArray); m_classExpressionInclusionsAsDisjunctions.add(inclusionArray); // 2. add CEi implies C, which is { not CEi or C } for (OWLClassExpression description : axiom.getClassExpressions()) m_classExpressionInclusionsAsDisjunctions.add(new OWLClassExpression[] { negative(description),axiom.getOWLClass() }); // 3. add CEi and CEj implies bottom (not CEi or not CEj) for 1 <= i < j <= n OWLClassExpression[] descriptions=new OWLClassExpression[axiom.getClassExpressions().size()]; axiom.getClassExpressions().toArray(descriptions); for (int i=0;i<descriptions.length;i++) descriptions[i]=m_expressionManager.getComplementNNF(descriptions[i]); for (int i=0;i<descriptions.length;i++) for (int j=i+1;j<descriptions.length;j++) m_classExpressionInclusionsAsDisjunctions.add(new OWLClassExpression[] { descriptions[i],descriptions[j] }); }
public Boolean visit(OWLDisjointUnionAxiom axiom) { // C = C1 or ... or Cn, for 1 <= i < j <= n: Ci and Cj -> bottom OWLClass c=axiom.getOWLClass(); Set<OWLClassExpression> cs=new HashSet<OWLClassExpression>(axiom.getClassExpressions()); cs.add(factory.getOWLObjectComplementOf(c)); OWLClassExpression incl1=factory.getOWLObjectUnionOf(cs); OWLClassExpression incl2=factory.getOWLObjectUnionOf(factory.getOWLObjectComplementOf(factory.getOWLObjectUnionOf(axiom.getClassExpressions())),c); // incl1: not C or C1 or ... or Cn // incl2: not(C1 or ... or Cn) or C Set<OWLClassExpression> conjuncts=new HashSet<OWLClassExpression>(); conjuncts.add(incl1); conjuncts.add(incl2); int n=axiom.getClassExpressions().size(); OWLClassExpression[] descs=axiom.getClassExpressions().toArray(new OWLClassExpression[n]); for (int i=0;i<n-1;i++) { for (int j=i+1;j<n;j++) { conjuncts.add(factory.getOWLObjectUnionOf(factory.getOWLObjectComplementOf(descs[i]),factory.getOWLObjectComplementOf(descs[j]))); } } OWLClassExpression entailmentDesc=factory.getOWLObjectIntersectionOf(conjuncts); return !reasoner.isSatisfiable(factory.getOWLObjectComplementOf(entailmentDesc)); }
@Override public void visit(OWLDisjointUnionAxiom axiom) { OWLClass cls = axiom.getOWLClass(); sparql += expressionConverter.asGroupGraphPattern(cls, subjectVar); List<OWLClassExpression> classExpressions = new LinkedList<>(axiom.getClassExpressions()); for(int i = 0; i < classExpressions.size(); i++){ sparql += "{"; OWLClassExpression ce = classExpressions.remove(i); // add triple pattern for class to be sparql += expressionConverter.asGroupGraphPattern(ce, subjectVar); // add NOT EXISTS for classes not to be sparql += notExists(subjectVar, classExpressions, false); classExpressions.add(i, ce); sparql += "}"; if(i < classExpressions.size()-1){ sparql += " UNION "; } } }
@Override public T visit(OWLDisjointUnionAxiom axiom) { throw new IllegalArgumentException( OWLDisjointUnionAxiom.class.getSimpleName() + " cannot be converted to " + getTargetClass().getSimpleName()); }
@Override public OWLAxiom visit(OWLDisjointUnionAxiom axiom) { Set<OWLClassExpression> descs = new HashSet<>(); for (OWLClassExpression op : axiom.getClassExpressions()) { descs.add(op.accept(this)); } return dataFactory.getOWLDisjointUnionAxiom(axiom.getOWLClass(), descs); }
@Override public void visit(OWLDisjointUnionAxiom axiom) { hashCode = primes[11]; hashCode = hashCode * MULT + axiom.getOWLClass().hashCode(); hashCode = hashCode * MULT + axiom.getClassExpressions().hashCode(); hashCode = hashCode * MULT + axiom.getAnnotations().hashCode(); }
@Override public Set<OWLClassExpression> visit(OWLDisjointUnionAxiom axiom) { Set<OWLClassExpression> result = new HashSet<>(); result.add(axiom.getOWLClass()); for (OWLClassExpression ce : axiom.getClassExpressions()) { result.addAll(ce.accept(this)); } return result; }
@Override public void visit(@Nonnull OWLDisjointUnionAxiom axiom) { axiom.getOWLClass().accept((OWLEntityVisitor) this); for (OWLClassExpression desc : axiom.getClassExpressions()) { desc.accept(this); } processAxiomAnnotations(axiom); }
public void visit(OWLDisjointUnionAxiom axiom) { notSupported(axiom); }
public void visit(OWLDisjointUnionAxiom axiom) { }
@Override public OWLDisjointUnionAxiom visit(ElkDisjointUnionAxiom axiom) { return owlFactory_.getOWLDisjointUnionAxiom( convert(axiom.getDefinedClass()), toClassExpressionSet(axiom.getClassExpressions())); }
@Override public ElkClassAxiom visit(OWLDisjointUnionAxiom owlDisjointUnionAxiom) { return CONVERTER.convert(owlDisjointUnionAxiom); }
@SuppressWarnings("static-method") public ElkDisjointUnionAxiom convert( OWLDisjointUnionAxiom owlDisjointUnionAxiom) { return new ElkDisjointUnionAxiomWrap<OWLDisjointUnionAxiom>( owlDisjointUnionAxiom); }
@Override public ElkAxiom visit(OWLDisjointUnionAxiom owlDisjointUnionAxiom) { return CONVERTER.convert(owlDisjointUnionAxiom); }
@Override public void visit(OWLDisjointUnionAxiom axiom) { defaultVisit(axiom); }
@Override public OWLAxiom visit(OWLDisjointUnionAxiom axiom) { return factory.getOWLDisjointUnionAxiom(axiom.getOWLClass(), axiom.getClassExpressions(), annotations); }
@Override public void visit(OWLDisjointUnionAxiom axiom) { }
public void visit(OWLDisjointUnionAxiom arg0) { throw new IllegalStateException("OWLDisjointUnionAxiom should have been normalized (rewritten) already."); }
@Override public Boolean visit(OWLDisjointUnionAxiom axiom) { return true; }
@Override public Boolean visit(OWLDisjointUnionAxiom axiom) { return false; }
@Override public Boolean visit(OWLDisjointUnionAxiom axiom) { Objects.requireNonNull(axiom); return add(this.df.getOWLDisjointUnionAxiom(axiom.getOWLClass(), axiom.getClassExpressions(), reg(axiom.getAnnotations()))); }
@Override public Boolean visit(OWLDisjointUnionAxiom axiom) { Objects.requireNonNull(axiom); return add(this.df.getOWLDisjointUnionAxiom(axiom.getOWLClass(), axiom.getClassExpressions(), annot())); }
@Override public Set<ComplexIntegerAxiom> visit(OWLDisjointUnionAxiom axiom) { Objects.requireNonNull(axiom); throw TranslationException.newUnsupportedAxiomException(axiom); }
@Override public void visit(OWLDisjointUnionAxiom axiom) { ignoreOwlAxiom("DisjointUnion", axiom); }
@Override public O visit(OWLDisjointUnionAxiom axiom) { return doDefault(axiom); }
@Override public void visit(OWLDisjointUnionAxiom axiom) { type = AXIOM_TYPE_INDEX_BASE + axiom.getAxiomType().getIndex(); }
@Override public void visit(OWLDisjointUnionAxiom axiom) { handleDefault(axiom); }
public Object visit(OWLDisjointUnionAxiom axiom) { profileViolations.add(new UseOfIllegalAxiom(getCurrentOntology(), axiom)); return null; }
public void visit(OWLDisjointUnionAxiom arg0) { unusedAxiom(arg0); }
@Override protected void writeAxiom(OWLDisjointUnionAxiom axiom, BinaryOWLOutputStream outputStream) throws IOException { outputStream.writeOWLObject(axiom.getOWLClass()); outputStream.writeOWLObjects(axiom.getClassExpressions()); }
@Override protected OWLDisjointUnionAxiom readAxiom(BinaryOWLInputStream inputStream, Set<OWLAnnotation> annotations) throws IOException, BinaryOWLParseException { OWLClass cls = inputStream.readOWLObject(); Set<OWLClassExpression> classExpressions = inputStream.readOWLObjects(); return inputStream.getDataFactory().getOWLDisjointUnionAxiom(cls, classExpressions, annotations); }
public void visit(OWLDisjointUnionAxiom arg0) { }
public void visit(OWLDisjointUnionAxiom arg0) { // TODO Auto-generated method stub }