我有一个OWL文件(OWL2),我需要解析并最终将数据写入某个文件。该文件包含AnnotationProperties,DataProperties,ObjectProperties和Classes。
我的第一个目标是尽可能地列出房产信息。即对于AnnotationProperties,看看我是否可以打印出属性的名称和"值"。
类似地,为了能够显示类细节,即每个类,类的名称,属性,即类的数据或对象属性。我不知道该如何做到这一点,到目前为止我所做的任何阅读都令人困惑,因为它似乎在谈论实例,我不相信这些实例存在于文件中。此外,OWLAPI javadoc和文档等对我可能必须调用的方法也没有多大帮助。
E.g。如果我有以下AnnotationProperty:
<owl:AnnotationProperty rdf:about="&xxx;SOME_ID">
<ABC rdf:datatype="xsd;string">1235412</ABC>
</owl:AnnotationProperty>
ontology.getAnnotationPropertiesInSignature()会给我一组AnnotationProperties,我可以迭代并说出property.getIRI()。getFragment()来查看SOME_ID,但现在我将如何获取并显示内部内容,即ABC- 1235412?同样,我们赞赏任何有关如何获取类信息的帮助,即显示或显示其属性和限制。
答案 0 :(得分:0)
您展示的片段不会创建带有属性SOME_ID
的注释断言公理,而是在属性SOME_ID
本身上创建注释。三重看起来像这样:
SOME_ID ABC "1235412"^^xsd:int
从你对你要做的事情的描述中,你/需要/实例 - 任何属性(注释,对象或数据属性)的值都是通过断言来表达的,即引用个体(或实例 - 的公理)这两个名字指的是同一个概念。)
,例如,
Ignazio hasAge "38"^^xsd:int
将是具有值Ignazio
的个人38
上的数据或注释属性断言。
要访问这些断言,您可以使用
OWLIndividual ignazio = ...
ontology.getAnnotationAssertionAxioms(ignazio);
要访问您所显示的注释,例如注释属性本身:
OWLAnnotationProperty some_id = ...
ontology.getAnnotationAssertionAxioms(some_id.getIRI());