【发布时间】:2019-05-04 05:15:30
【问题描述】:
我正在尝试将一个本体导入主本体,并遍历所有类:
manager = OWLManager.createOWLOntologyManager();
ontology = manager.loadOntologyFromOntologyDocument(new File("data/prim.owl"));
factory = manager.getOWLDataFactory();
OWLImportsDeclaration im = factory.getOWLImportsDeclaration(IRI.create("https://protege.stanford.edu/ontologies/pizza/pizza.owl"));
manager.applyChange(new AddImport(ontology,im));
reasoner = OpenlletReasonerFactory.getInstance().createReasoner(ontology);
我正在运行这段代码来获取所有类:
//*********************
Set<OWLClass> allCls = ontology.getClassesInSignature();
allCls.forEach(System.out::println);
返回属于prim.owl的类,但不返回导入本体(pizza.owl)中的类。
【问题讨论】:
-
像往常一样,Javadoc 是您的朋友……正如您所见,如果您单击链接,则可以选择提供参数:
Set<OWLClass> getClassesInSignature(boolean includeImportsClosure)和描述 " includeImportsClosure - 如果为 true,则包含导入关闭。" -
顺便说一句,要遍历所有类,您不需要推理器。
标签: owl ontology owl-api pellet