У меня есть две онтологии, фото 1 и индекс. Photo1 содержит утверждения ABox, а индекс содержит утверждения Tbox.Reasoner не возвращает экземпляров совы: Thing, но 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 и добавляя все аксиомы Abox из фото1, а затем получить экземпляры 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));
Теперь, несмотря на то, что я добавил все аксиомы из ABox для фотошопа ABox в ABox TBox, я не получаю выход: