假设在一个本体中,有一个名为" 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获取此信息?谢谢!
答案 0 :(得分:0)
耶拿不支持对本体论的公理化观点。 实际上它根本不支持OWL2。
所以你不能只使用jena接收公理列表,只是因为OntModel jena子系统中没有这样的对象(参见org.apache.jena.ontology包)。
但您可以使用OWL-API。 尝试列出所有相关的公理(参见方法org.semanticweb.owlapi.model.OWLAxiomCollection#adferencingAxioms from OWL-API),它将是这样的:
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)对象。
希望它会有所帮助