如何使用OWLAPI解析OWL2文件 - AnnotationProperties

时间:2015-11-12 16:15:18

标签: java semantic-web owl linked-data

我有一个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?同样,我们赞赏任何有关如何获取类信息的帮助,即显示或显示其属性和限制。

1 个答案:

答案 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());