@Override public void visit(OWLDisjointClassesAxiom axiom) { axiom.classExpressions().filter(c -> !c.isAnonymous()).forEach(ce -> { if (source == null) { source = ce.asOWLClass(); } else if (target == null) { target = ce.asOWLClass(); } else { return; } }); }
@Override public OWLClassExpression visit(OWLObjectUnionOf ce) { return df.getOWLObjectUnionOf(ce.operands().map(o -> o.accept(this))); }
@Override public Set<OWLClass> getNamedClasses() { Set<OWLClass> clses = new HashSet<OWLClass>(1); for (OWLClassExpression desc : getClassExpressions()) { if (!desc.isAnonymous() && !desc.isOWLNothing() && !desc.isOWLThing()) { clses.add(desc.asOWLClass()); } } return clses; }
@Override public void visit(OWLSubClassOfAxiom axiom) { if (!axiom.getSubClass().isAnonymous()) { source = axiom.getSubClass().asOWLClass(); } if (!axiom.getSuperClass().isOWLNothing()) { OWLClassExpression classExpression = axiom.getSuperClass(); if (!classExpression.isAnonymous()) { target = classExpression.asOWLClass(); } } }
@Override public OWLClassExpression visit(OWLObjectIntersectionOf ce) { Stream<OWLClassExpression> ops = ce.operands().map(p -> p.accept(this)); if (negated) { return df.getOWLObjectUnionOf(ops); } return df.getOWLObjectIntersectionOf(ops); }
private void createEdgeForSubClassOfAxiom(OWLClass subCls, OWLSubClassOfAxiom subClassOfAxiom, Set<Edge> edges, Set<OWLEntity> processed) { OWLEntityData subClsData = renderer.getClassData(subCls); subClassOfAxiom .getSuperClass() .asConjunctSet() .stream() .filter(ClassExpression::isNotOwlThing) .forEach(superClass -> addEdgeForSuperClass(edges, processed, subClsData, superClass)); }
@Override public OWLAxiom visit(OWLEquivalentClassesAxiom axiom) { return df.getOWLEquivalentClassesAxiom( axiom.classExpressions().map(p -> p.accept(classVisitor))); }
@Override public OWLAxiom visit(OWLDisjointClassesAxiom axiom) { return df .getOWLDisjointClassesAxiom(axiom.classExpressions().map(p -> p.accept(classVisitor))); }
@Override public void visit(OWLEquivalentClassesAxiom axiom) { AtomicBoolean allAnon = new AtomicBoolean(true); axiom.classExpressions().filter(d -> !d.isAnonymous()).forEach(desc -> { equivalentClassesAxiomsByClass.put((OWLClass) desc, axiom); classAxiomsByClass.put((OWLClass) desc, axiom); allAnon.set(false); }); if (allAnon.get()) { addGeneralClassAxioms(axiom); } }
@Override public void visit(OWLDisjointClassesAxiom axiom) { dl(() -> insufficientOperands(axiom)); ql(() -> axiom.classExpressions().filter(ce -> !isOWL2QLSubClassExpression(ce)) .forEach(this::nonSubclass)); rl(() -> axiom.classExpressions() .filter(ce -> !ce.accept(equivalentClassExpressionChecker).booleanValue()) .forEach(this::nonSubclass)); }
@Override public void visit(OWLEquivalentClassesAxiom axiom) { dl(() -> insufficientOperands(axiom)); ql(() -> axiom.classExpressions().filter(ce -> !isOWL2QLSubClassExpression(ce)) .forEach(this::nonSubclass)); rl(() -> axiom.classExpressions() .filter(ce -> !ce.accept(equivalentClassExpressionChecker).booleanValue()) .forEach(this::nonEquivalentClass)); }
@Override public Stream<OWLClassExpression> visit(OWLObjectMinCardinality ce) { return (ce.getCardinality() == 1) ? df.getOWLObjectSomeValuesFrom(ce.getProperty(), ce.getFiller()).accept(this) : ce.getFiller().accept(this) .map(f -> df.getOWLObjectMinCardinality(ce.getCardinality(), ce.getProperty(), f)); }
@Override public Stream<K> visit(OWLEquivalentClassesAxiom axiom) { Stream<OWLClassExpression> stream = axiom.classExpressions(); if (named) { stream = stream.filter(c -> !c.isAnonymous()); } return (Stream<K>) stream; }
@Override public void visit(OWLEquivalentClassesAxiom axiom) { axiom.classExpressions().forEach(desc -> { if (!desc.isAnonymous()) { getAxiomsForLHS(desc.asOWLClass()).add(axiom); } indexAxiomsByRHSEntities(desc, axiom); }); }
@Override public void visit(OWLDisjointClassesAxiom axiom) { process(axiom); axiom.classExpressions().forEach(a -> a.accept(this)); }
private boolean isPlacedByEquivalentClassesAxiom(@Nonnull OWLClass subClass, @Nonnull OWLClass superClass) { return ontologyStream(rootOntology, Imports.INCLUDED) .flatMap(o -> o.getEquivalentClassesAxioms(subClass).stream()) .flatMap(ax -> ax.getClassExpressions().stream()) .flatMap(ce -> ce.asConjunctSet().stream()) .anyMatch(ce -> ce.equals(superClass)); }