想象一下以下分类法(非循环和有向图): my:Eukaryota rdfs:subClassOf my:Organism.my:Mammal rdfs:subClassOf my:Eukaryota.my:Primate rdfs:subClassOf my:Mammal.my:HomoSapiens rdfs:subClassOf my:Primate.my:Bacteria rdfs:subClassOf
<my:Eukaryota> <rdfs:subClassOf> <my:Organism>. <my:Mammal> <rdfs:subClassOf> <my:Eukaryota>. <my:Primate> <rdfs:subClassOf> <my:Mammal>. <my:HomoSapiens> <rdfs:subClassOf> <my:Primate>. <my:Bacteria> <rdfs:subClassOf> <my:Organism>. <my:Escherichia> <rdfs:subClassOf> <my:Bacteria>.
1)Jena OWL API是否可以检查给定资源(例如HomoSapiens)是否是’Mammal’的子类而不递归检索所有父节点?
2)与SPARQL相同的问题.
谢谢
如果你已经在使用Jena,你可以使用Pellet的 SPARQL-DL query engine,它可以让你以一种本体感知的方式查询个人.或者,你可以使用Jena的InfModel
而不是Model接口,附加一个推理器(和本体),然后运行RobV提到的查询.如果需要,可以使用Pellet’s reasoner.如果您只想进行推理,则无需使用OntModel.