gpt4 book ai didi

rdf - 我什么时候应该使用 rdf :ID instead of rdf:about?

转载 作者:行者123 更新时间:2023-12-03 04:49:24 25 4
gpt4 key购买 nike

我遇到了books ontology ,在 的底部文档,我们有:

<!-- Object Properties -->
<owl:ObjectProperty rdf:about="#contains"/>
<owl:ObjectProperty rdf:about="#datePublished"/>
<owl:ObjectProperty rdf:about="#hasGenre"/>
<owl:ObjectProperty rdf:about="#hasGrade"/>
<owl:ObjectProperty rdf:about="#hasName"/>
<owl:ObjectProperty rdf:about="#hasSize"/>
<owl:ObjectProperty rdf:about="#hasType"/>
<owl:ObjectProperty rdf:about="#isTitled"/>
<owl:ObjectProperty rdf:about="#publishedBy"/>
<owl:ObjectProperty rdf:about="#timePublished"/>
<owl:ObjectProperty rdf:about="#writtenBy"/>
<owl:ObjectProperty rdf:ID="isReserved">
<rdfs:domain rdf:resource="#Book"/>
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>A reservation has been made by a person for a book.</rdfs:comment>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="isNotReserved">
<rdfs:domain rdf:resource="#Book"/>
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>The given book is available in the library.</rdfs:comment>
</owl:ObjectProperty>
</rdf:RDF>

我只是不明白为什么这个本体的作者选择在最后两个 owl:ObjectProperty (isReserved) 中使用 rdf:ID code> 和 isNotReserved),而不是像其他那样只使用 rdf:about

ps:我已完全阅读 RDF/XML part指定使用 xml:baserdf:ID 并在答案 here 中检查,只是我需要在上述要点中定义的本体论的背景下进一步澄清。

引自RDF/XML specs :

The rdf:ID attribute on a node element (not property element, that has another meaning) can be used instead of rdf:about and gives a relative IRI equivalent to # concatenated with the rdf:ID attribute value. So for example if rdf:ID="name", that would be equivalent to rdf:about="#name". rdf:ID provides an additional check since the same name can only appear once in the scope of an xml:base value (or document, if none is given), so is useful for defining a set of distinct, related terms relative to the same IRI.

最佳答案

I just can't understand why the author of this ontology choose to use rdf:ID in in the last two owl:ObjectProperty (isReserved and isNotReserved) instead of just using rdf:about like the rest ?

这应该不重要。理想情况下,作者无论如何都不会手动操作 RDF/XML,而是使用库来编写序列化。 rdf:ID 和 rdf:about 属性实际上并不是 RDF 图的一部分;它们是 RDF 图的一部分。它们仅用于 RDF 的 XML 序列化(称为 RDF/XML)。工具不应该依赖于 RDF/XML 序列化的特定结构,因为相同的 RDF 图可以通过多种方式用 RDF/XML 编写。例如,参见 this answerHow to access OWL documents using XPath in Java?举一些例子。

例如,我下载了 books.owl 文件并使用 Jena 读入它并以 XML 写回。我的新books.owl显示结果。其中根本没有 rdf:ID,但它完全相同相同的 RDF 图。 RDF 处理工具看到完全相同的图,即相同的三元组集合。使用 rdf:ID 的属性之一现在序列化为

<owl:ObjectProperty rdf:about="http://127.0.0.1:3001/ontology/books.owl#isNotReserved">
<rdfs:domain rdf:resource="http://127.0.0.1:3001/ontology/books.owl#Book"/>
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>The given book is available in the library.</rdfs:comment>
</owl:ObjectProperty>

尽管在实践中,您可能更喜欢使用 rdf:about 而不是 rdf:ID,但它并没有被正式弃用或任何其他内容。例如,它仍然在 RDF/XML 1.1 规范中使用,如 §2.14 Abbreviating URIs: rdf:ID and xml:base 中所述。 .

在实践中,使用更易于人类阅读和书写的语法(例如 Turtle)可能是一个更好的主意。同样的 Gist 显示了在 Turtle 中重写本体的结果,books.ttl 。使用 Turtle,您可以直接编写三元组,而不必担心 rdf:ID 或 rdf:about。在 Turtle 中,该属性声明变为:

:isNotReserved a owl:ObjectProperty ;
rdfs:comment "The given book is available in the library."^^<http://www.w3.org/2001/XMLSchema#string> ;
rdfs:domain :Book .

关于rdf - 我什么时候应该使用 rdf :ID instead of rdf:about?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33826298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com