2017-02-17 191 views
0

我想使用Jena API创建OWL本体的层次结构,它与Protege创建的类似。我曾尝试了两种方法来获得猫头鹰的子类:事情,然后再次出现下一级别:使用Jena的OWL本体层次结构(具有复杂类)

  1. 使用listSubClasses(真)
  2. 使用listHierarchyRootClasses()

他们都曾为owl:Thing的rdfs:subClassOf的OWL类工作过。但是,对于OWL复杂类(owl:unionOf,owl:intersectionOf和owl:complementOf),第一种方法没有列出任何内容。虽然第二种方法的结果并不像Protege那样正确。它通常包含更多的猫头鹰的子类:比Protege的东西。

有人说这是Jena API的限制。这是真的吗?我应该改用OWL API代替Jena吗?我想征求你的意见。

回答

0

缺少的是推理。如果不使用推理器来推断子类关系,则无法获得完整的结果。 Jena和OWL API都是如此。

+0

谢谢你,Igazio!我已经尝试过耶拿的内置推理。结果会更好。但它与Protege的结果不同。有人说,Protege使用轻量级推理器来展示本体的层次结构(在断言模式下)。我的问题是:我应该使用哪一个推理器来与Protege具有相同的层次结构? – becksloc

+0

Protégé不使用推理模式中的显示器的推理器,它使用一些硬编码规则。复制的唯一方法是找到并复制该代码... – Ignazio

+0

是的,或者我必须使用Protege-OWL API作为Protege的一些插件。再一次,谢谢你! – becksloc