我有两个本体,photo1和索引。 Photo1包含ABox断言,并且索引包含Tbox断言。Reasoner不返回任何owl实例:事情,但Abox包含实例
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLOntology photo1 = manager.loadOntologyFromOntologyDocument(new File("files/ontologies/OBMA2/photo1.owl"));
OWLDataFactory factory = manager.getOWLDataFactory();
reasoner = new FaCTPlusPlusReasonerFactory().createReasoner(photo1);
reasoner = (FaCTPlusPlusReasoner) reasoner;
System.out.println(reasoner.getInstances(factory.getOWLThing(), false));
上面打印:
Nodeset[
Node(<http://www.semanticweb.org/noor/ontologies/2013/6/photo1.owl#photo1>),
Node(<http://www.semanticweb.org/noor/ontologies/2013/6/photo1.owl#photo1-tiger2>),
Node(<http://www.semanticweb.org/noor/ontologies/2013/6/photo1.owl#photo1-tiger1>)
]
但是,现在,我加载TBOX和增加从照片1所有ABox中的公理,然后得到的owl:Thing
情况如下:
OWLOntologyManager managerTbox = OWLManager.createOWLOntologyManager();
OWLOntology Tbox = manager.loadOntologyFromOntologyDocument(new File("files/ontologies/index.owl"));
OWLDataFactory factoryTbox = manager.getOWLDataFactory();
OWLReasoner reasonerTbox = new FaCTPlusPlusReasonerFactory().createReasoner(Tbox);
//adding the axioms from the photo1 abox to Tbox's abox
managerTbox.addAxioms(Tbox, photo1.getABoxAxioms(true));
reasonerTbox = (FaCTPlusPlusReasoner) reasonerTbox;
System.out.println(reasonerTbox.getInstances(factoryTbox.getOWLThing(), false));
现在,即使我已经将Photo1的ABox的所有公理添加到TBox的ABox中,但我没有输出:
Nodeset[]