Pra*_*hah 5 w3c rdf semantic-web rdfs
我正在阅读RDF Schema 1.1建议,其中包括以下内容(添加了重点):
5.1.2 rdf:袋子
rdf:Bag 类是 RDF“Bag”容器的类。它是 rdfs:Container 的子类。虽然形式上它与 rdf:Seq 或 rdf:Alt 没有什么不同,但 rdf:Bag 类通常用于向人类读者指示该容器是无序的。
5.1.3 rdf:序列
rdf:Seq 类是 RDF“序列”容器的类。它是 rdfs:Container 的子类。虽然形式上它与 rdf:Bag 或 rdf:Alt 没有什么不同,但 rdf:Seq 类通常用于向人类读者指示容器的容器成员属性的数字顺序是重要的。
5.1.4 rdf:替代
rdf:Alt 类是 RDF“Alternative”容器的类。它是 rdfs:Container 的子类。虽然形式上它与 rdf:Seq 或 rdf:Bag 没有什么不同,但 rdf:Alt 类通常用于向人类读者指示典型的处理将选择容器的成员之一。容器的第一个成员,即 rdf:_1 属性的值,是默认选择。
我尝试理解它们的最后一行(以粗体显示)。还google了一下,很好理解。但无法了解他们想要如何在人类/逻辑层面上区分所有 3 个容器。以及如何在 rdf:Seq 中维护顺序。
为了理解排序,我还尝试使用 rdf 文件中的 rdf 解析器读取它们,如下所示:
<rdf:Alt rdf:about="http://eresources.nlb.gov.sg/ID/NLBDM/entity/XYZContainer">
     <rdf:li>http://eresources.nlb.gov.sg/ID/NLBDM/resource/c85a5e82-b357-4168-a31e-1c8fd7f46101</rdf:li>
     <rdf:li>http://eresources.nlb.gov.sg/ID/NLBDM/vocab/tqS1cM1h</rdf:li>
     <rdf:li>http://eresources.nlb.gov.sg/ID/NLBDM/vocab/rQhlIgDw</rdf:li>
     <rdf:li>http://eresources.nlb.gov.sg/ID/NLBDM/vocab/AaNRoEP6</rdf:li>
</rdf:Alt>
使用 rdf:Bag 或 rdf:Seq 或 rdf:Alt,所有这些都为rdf:li提供相同的有序 Uris
例如。www.w3.org/1999/02/22-rdf-syntax-ns#_1,www.w3.org/1999/02/22-rdf-syntax-ns#_2,www.w3.org/1999/02/ 22-rdf-syntax-ns#_3 等等...
我想通过清晰的例子来理解如何在不同的场景中以不同的方式使用这些容器,以及维护 rdf:Seq 顺序的特殊之处。
规范还这样说:
D.2 RDF 容器
容器词汇表没有特殊的语义条件:RDF 假定其容器具有的唯一结构是可以从该词汇表的使用和一般 RDF 语义条件中推断出的结构。这相当于了解容器的类型,并对容器中的项目进行部分枚举。预期的使用模式是 rdf:Bag 类型的事物被认为是无序的,但允许重复;rdf:Seq 类型的事物被认为是有序的,rdf:Alt 类型的事物被认为代表替代方案的集合,可能具有优先顺序。如果容器是有序类型,则容器中的项目的排序旨在由容器成员资格属性的数字顺序来指示,该属性被假定为单值。然而,这些非正式条件并未反映在任何正式的 RDF 蕴涵中。
使用 rdf:Bag 或 rdf:Seq 或 rdf:Alt,所有这些都为 rdf:li 提供相同的有序 Uris
例如。www.w3.org/1999/02/22-rdf-syntax-ns#_1,www.w3.org/1999/02/22-rdf-syntax-ns#_2,www.w3.org/1999/02/ 22-rdf-syntax-ns#_3 等等...
是的,这些容器之间没有正式的区别。请注意,rdf:li 不是RDF属性。它是在 RDF/XML 序列化中使用的特殊 URI,当从 RDF/XML 文档中提取三元组时,它们实际上使用 rdf:_n 属性,即RDF属性。您将获得相同的 rdf:_n 属性序列,因为这是它们在 RDF/XML 文档中出现的顺序。
对于 Bag,顺序无关紧要的事实意味着您忽略rdf:_i 中i的特定值,并将它们全部视为成员。对于 Seq,顺序很重要,因此您应该注意rdf:_i 中i的值。Alt 中的顺序可能很重要;这取决于应用程序。
我想通过清晰的例子来理解如何在不同的场景中以不同的方式使用这些容器,以及维护 rdf:Seq 顺序的特殊之处。
区别在于消费者打算如何处理数据。实际数据并没有真正改变,但其意图是:
现在想象一下我们不使用 RDF,而是使用数组的编程语言。我可以使用一个数组来表示所有这些结构。不同之处在于消费者对数组执行的操作。但从形式上来说,它们都只是数组。
尽管如此,人们似乎并没有真正经常使用这些集合。它们没有明确的语义,因此它们并没有真正明确的用例。如果你需要它们,你可以使用它们,但工具通常不会对它们做任何特殊的事情;您可能需要考虑其他选择。
这些不是重复的问题,但它们是相关的,并且可能有用或有趣的阅读:
RDF 语义 W3C 建议书的D.2 RDF 容器和D.3 RDF 集合部分也是很好的资源。
| 归档时间: | 
 | 
| 查看次数: | 6092 次 | 
| 最近记录: |