NIHVIVO-1755 inferences based on equivalent class
This commit is contained in:
parent
00bdb056d5
commit
3fa7b24f2a
1 changed files with 18 additions and 7 deletions
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
package edu.cornell.mannlib.vitro.webapp.reasoner;
|
package edu.cornell.mannlib.vitro.webapp.reasoner;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
@ -179,7 +182,6 @@ public class SimpleReasoner extends StatementListener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If it is added that B is of type A, then for each superclass of
|
* If it is added that B is of type A, then for each superclass of
|
||||||
* A assert that B is of that type.
|
* A assert that B is of that type.
|
||||||
|
@ -195,10 +197,14 @@ public class SimpleReasoner extends StatementListener {
|
||||||
OntClass cls = tboxModel.getOntClass(((Resource)stmt.getObject()).getURI());
|
OntClass cls = tboxModel.getOntClass(((Resource)stmt.getObject()).getURI());
|
||||||
|
|
||||||
if (cls != null) {
|
if (cls != null) {
|
||||||
ExtendedIterator<OntClass> superIt = cls.listSuperClasses(false);
|
|
||||||
|
|
||||||
while (superIt.hasNext()) {
|
List<OntClass> parents = (cls.listSuperClasses(false)).toList();
|
||||||
OntClass parentClass = superIt.next();
|
parents.addAll((cls.listEquivalentClasses()).toList());
|
||||||
|
|
||||||
|
Iterator<OntClass> parentIt = parents.iterator();
|
||||||
|
|
||||||
|
while (parentIt.hasNext()) {
|
||||||
|
OntClass parentClass = parentIt.next();
|
||||||
|
|
||||||
// VIVO doesn't materialize statements that assert anonymous types
|
// VIVO doesn't materialize statements that assert anonymous types
|
||||||
// for individuals. Also, sharing an identical anonymous node is
|
// for individuals. Also, sharing an identical anonymous node is
|
||||||
|
@ -241,9 +247,14 @@ public class SimpleReasoner extends StatementListener {
|
||||||
OntClass cls = tboxModel.getOntClass(((Resource)stmt.getObject()).getURI());
|
OntClass cls = tboxModel.getOntClass(((Resource)stmt.getObject()).getURI());
|
||||||
|
|
||||||
if (cls != null) {
|
if (cls != null) {
|
||||||
ExtendedIterator<OntClass> superIt = cls.listSuperClasses(false);
|
|
||||||
while (superIt.hasNext()) {
|
List<OntClass> parents = (cls.listSuperClasses(false)).toList();
|
||||||
OntClass parentClass = superIt.next();
|
parents.addAll((cls.listEquivalentClasses()).toList());
|
||||||
|
|
||||||
|
Iterator<OntClass> parentIt = parents.iterator();
|
||||||
|
|
||||||
|
while (parentIt.hasNext()) {
|
||||||
|
OntClass parentClass = parentIt.next();
|
||||||
|
|
||||||
// VIVO doesn't materialize statements that assert anonymous types
|
// VIVO doesn't materialize statements that assert anonymous types
|
||||||
// for individuals. Also, sharing an identical anonymous node is
|
// for individuals. Also, sharing an identical anonymous node is
|
||||||
|
|
Loading…
Add table
Reference in a new issue