【问题标题】:How to parse OWL2 file with OWLAPI - AnnotationProperties如何使用 OWL API 解析 OWL 文件 - 注释属性
【发布时间】:2015-11-12 16:15:18
【问题描述】:

我有一个 OWL 文件 (OWL2),我需要对其进行解析并最终将数据写入某个文件。该文件包含 AnnotationProperties、DataProperties、ObjectProperties 和 Classes。

我的第一个目标是尽可能地列出房产信息。即 AnnotationProperties 看看我是否可以打印出属性的名称和“值”。

同样,能够显示类的详细信息,即每个类的名称、属性,即类的数据或对象属性。我不确定如何做到这一点,到目前为止我所做的任何阅读都令人困惑,因为它似乎在谈论实例,我认为文件中不存在这些实例。此外,OWLAPI javadoc 和文档等对我可能必须调用的方法不是很有帮助。

例如如果我有以下 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 ?同样,对于如何获取类信息(即显示或显示其属性和限制)的任何帮助表示赞赏。

【问题讨论】:

    标签: java semantic-web owl linked-data


    【解决方案1】:

    您显示的片段不会创建具有属性SOME_ID 的注释断言公理,而是属性SOME_ID 本身的注释。三元组看起来像这样:

    SOME_ID ABC "1235412"^^xsd:int

    根据您对您正在尝试做的事情的描述,您/需要/实例 - 任何属性(注释、对象或数据属性)的值都通过断言表示,即引用个人(或实例 -这两个名称指的是同一个概念)。

    例如,

    Ignazio hasAge "38"^^xsd:int

    将是个人Ignazio 的数据或注释属性断言,值为38

    要访问这些断言,您可以使用

    OWLIndividual ignazio = ...
    ontology.getAnnotationAssertionAxioms(ignazio);
    

    要访问与您显示的注释类似的注释,即在 annotatio 属性本身上:

    OWLAnnotationProperty some_id = ...
    ontology.getAnnotationAssertionAxioms(some_id.getIRI());
    

    【讨论】:

    • 谢谢伊格纳齐奥。经过你的解释,我想我有点明白了。我会再次尝试处理数据。
    • 所以这就是我所做的:首先获取所有注释属性,然后对于每个属性,获取注释断言公理并打印属性、主题和值。这样我就得到了我需要的信息。这似乎有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2017-06-23
    • 1970-01-01
    相关资源
    最近更新 更多