Skip to content

Commit

Permalink
Fix coloring of classes that are equivalent to aspect classes.
Browse files Browse the repository at this point in the history
  • Loading branch information
RalphBln committed Apr 5, 2018
1 parent fbfe054 commit 3ddd3fb
Showing 1 changed file with 29 additions and 14 deletions.
Expand Up @@ -106,25 +106,15 @@ public boolean isAspectInOntology(OWLClassExpression clsExpr, Set<OWLOntology> a
if (aspect.equals(clsExpr)) {
return true;
}
for (OWLOntology ontology : activeOntologies) {
for (OWLEquivalentClassesAxiom eqClassAxiom : ontology.getEquivalentClassesAxioms((OWLClass)aspect)) {
if (eqClassAxiom.getClassExpressions().contains(clsExpr)) {
return true;
}
}
if (getEquivalentClassExpressions((OWLClass) aspect, activeOntologies).contains(clsExpr)) {
return true;
}
} else {
if (((OWLAnonymousAspect)aspect).getClassExpression().equals(clsExpr)) {
return true;
}
if (clsExpr instanceof OWLClass) {
for (OWLOntology ontology : activeOntologies) {
for (OWLEquivalentClassesAxiom eqClassAxiom : ontology.getEquivalentClassesAxioms((OWLClass) clsExpr)) {
if (eqClassAxiom.getClassExpressions().contains(aspect)) {
return true;
}
}
}
if (getEquivalentClassExpressions((OWLAnonymousClassExpression) aspect, activeOntologies).contains(clsExpr)) {
return true;
}
}
}
Expand All @@ -133,6 +123,31 @@ public boolean isAspectInOntology(OWLClassExpression clsExpr, Set<OWLOntology> a
return false;
}

private Set<OWLClassExpression> getEquivalentClassExpressions(OWLClass cls, Set<OWLOntology> activeOntologies) {
HashSet<OWLClassExpression> result = new HashSet<>();
for (OWLOntology ontology : activeOntologies) {
for (OWLEquivalentClassesAxiom eqClassAxiom : ontology.getEquivalentClassesAxioms(cls)) {
result.addAll(eqClassAxiom.getClassExpressions());
}
}
return result;
}

private Set<OWLClassExpression> getEquivalentClassExpressions(OWLAnonymousClassExpression clsExpr, Set<OWLOntology> activeOntologies) {
HashSet<OWLClassExpression> result = new HashSet<>();
for (OWLOntology ontology : activeOntologies) {
for (OWLClass cls : ontology.getClassesInSignature()) {
for (OWLEquivalentClassesAxiom eqClassAxiom : ontology.getEquivalentClassesAxioms(cls)) {
Set<OWLClassExpression> equivalentExpressions = eqClassAxiom.getClassExpressions();
if (equivalentExpressions.contains(clsExpr)) {
result.addAll(equivalentExpressions);
}
}
}
}
return result;
}


/**
* Returns a stream of all inferred aspects for the given object.
Expand Down

0 comments on commit 3ddd3fb

Please sign in to comment.