假设在一个本体中,有一个名为"isFriendOf“的对象属性,并且该属性是一个可传递属性。
<owl:ObjectProperty rdf:about="http://www.semanticweb.org/ontologies/example#isFriendOf">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>
</owl:ObjectProperty>
现在,我想检查一下这个属性有哪些属性公理。如何使用Jena获取此信息?谢谢!
发布于 2017-06-20 18:09:32
Jena不支持本体的公理视图。实际上,它根本不支持OWL2。
因此,您不能仅使用jena接收公理列表,因为在OntModel jena子系统中没有这样的对象(请参阅包org.apache.jena.ontology)。
但是您可以使用OWL-API。尝试列出所有相关的公理(请参阅OWL-API中的方法org.semanticweb.owlapi.model.OWLAxiomCollection#referencingAxioms ),如下所示:
OWLOntology ont = ...; ont.referencingAxioms(IRI.create("http://www.semanticweb.org/ontologies/example#isFriendOf")).forEach(System.out::println);
还有另一种选择。
由于我们也面临着jena/owl2兼容性的相同问题,因此我们发布了自己的解决方案,以便协调这两种语义web技术。它的名字叫ONT-API (很抱歉有广告)。在这种情况下,您可以使用相同的方法,但同时具有一致的org.apache.jena.rdf.model.Model (org.apache.jena.graph.Graph)对象。
希望能有所帮助
https://stackoverflow.com/questions/44596986
复制