为什么我们需要使用rdf:parseType=";“收藏”;与猫头鹰:相交?

为什么我们需要使用rdf:parseType=";“收藏”;与猫头鹰:相交?,rdf,owl,Rdf,Owl,考虑以下取自的示例 虽然我们了解第二个和第三个rdf:parseType=“Collection”的用法,但我对第一个用法感到有些困惑,就在owl:intersectionOf之后 在本例中,owl:intersectionOf的值是两个类描述的列表,即两个枚举,都描述了一个包含两个个体的类。生成的交集是一个包含一个个体的类,即Tosca,因为这是两个枚举共用的唯一个体 如果我们遗漏了第一个rdf:parseType=“Collection”,会发生什么 如果相交类不是集合,我们是否仍然需要

考虑以下取自的示例


虽然我们了解第二个和第三个
rdf:parseType=“Collection”
的用法,但我对第一个用法感到有些困惑,就在
owl:intersectionOf
之后

在本例中,
owl:intersectionOf
的值是两个类描述的列表,即两个枚举,都描述了一个包含两个个体的类。生成的交集是一个包含一个个体的类,即
Tosca
,因为这是两个枚举共用的唯一个体

如果我们遗漏了第一个
rdf:parseType=“Collection”
,会发生什么


如果相交类不是集合,我们是否仍然需要使用第一个rdf:parseType=“Collection”。RDF列表是链表,其中节点的元素由RDF:first表示,列表的尾部由RDF:rest表示,空列表由RDF:nil表示。你可以想象,这很快就会变得非常冗长。使用可以缩短序列化时间。它不是三元组,只是RDF/XML序列化中的简写

以下是您的代码片段的完整版本:


如果以N个三元组序列化,则可以看到所有实际的三元组:

\ux2D2B2D7D1AX3A1526AEA91DCX3AX2D7FFD\ux2D2B2D7D1AX3A1526AEA91DCX3AX2D7FFE。
_:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7ffd u2;:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7ff9。
.
_:BX2D2b2d7d1aX3A1526aea91dcX3AX2D7ff8。
_:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7ff8(:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7ff7)。
_:BX2D2b2d7d1aX3A1526aea91dcX3AX2D7ffb。
_:BX2D2b2d7d1aX3A1526aea91dcX3AX2D7ffb。
_:BX2D2b2d7d1aX3A1526aea91dcX3AX2D7ffe。
_:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7ffe u2;:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7ffc。
_:BX2D2b2d7d1aX3A1526aea91dcX3AX2D7ffc。
_:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7ffc(:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7ffb)。
_:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7ff9 x2d2b2d7d1ax3a1526ea91dcx3ax2d7ffa。
_:BX2D2b2d7d1aX3A1526aea91dcX3AX2D7ff9。
.
.
_:BX2D2b2d7d1aX3A1526aea91dcX3AX2D7ff7。
_:BX2D2b2d7d1aX3A1526aea91dcX3AX2D7ff7。
_:BX2D2b2d7d1aX3A1526aea91dcX3AX2D7ffa。
_:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7ffa x2d2b2d7d1ax3a1526ea91dcx3ax2d7ff8。
_:BX2D2b2d7d1aX3A1526aea91dcX3AX2D7fff。
_:bx2d2b2d7d1ax3a1526ea91dcx3ax2d7fff ux2d2b2d7d1ax3a1526ea91dcx3ax2d7ffd。
这是很多rdf:first和rdf:rest三元组。如果在RDF/XML中不使用该缩写,则会得到相同的结果:


因此,我们使用了漂亮的速记、RDF/XML的parseType集合或Turtle的括号:

@前缀rdf:。
@前缀owl:。
@前缀xsd:。
@前缀rdfs:。
猫头鹰:这东西。
_:b0猫头鹰:类;
猫头鹰:其中之一。
[猫头鹰:班级;
owl:intersectionOf(0;:b0 0;:b1)
] .
_:b1猫头鹰:类;
猫头鹰:其中之一。
猫头鹰:这东西。
猫头鹰:这东西。
如果没有属性会发生什么 如果我们遗漏了第一个
rdf:parseType=“Collection”
,会发生什么

从有关分析类型集合的文档中:

RDF/XML允许属性元素上的RDF:parseType=“Collection”属性包含多个节点元素

这表明,如果没有parse-type集合属性,那么property元素不应该包含多个元素。您可能想读入,看看典型的语法是什么。一般来说,这个想法是为了表示三元组

x:s  x:p1  x:q1 .
x:s  x:p2  x:q2 .
x:s  x:p1  x:q1 .
x:s  x:p1  x:q2 .
最终得到的XML如下:


现在,有一个速记,可以在一个节点元素中使用多个属性元素。如中所述,并允许您执行以下操作:


但是,没有这样的简写方法可以让您在单个属性元素中添加多个对象。也就是说,不能缩写三元组

x:s  x:p1  x:q1 .
x:s  x:p2  x:q2 .
x:s  x:p1  x:q1 .
x:s  x:p1  x:q2 .


如果您有一个集合,然后从中删除了parse-type集合属性,那么最终会得到这样的结果。我想这是一个很好的特性,但可能标准的其他部分会与之冲突。无论如何,这就是为什么当你尝试时会得到警告;这是不合法的

如果课程不是交叉点 如果相交类不是集合,我们还需要使用第一个rdf:parseType=“Collection”吗

如上所述,RDF/XML是RDF的序列化,RDF是一个抽象数据模型(它只是三元组)。RDF/XML增加了许多您不必担心的复杂性。使用OWL文件的事实使事情变得更加复杂,因为OWL是另一种抽象表示(它只是公理)。有一个从OWL到RDF的映射,这有点复杂。所以你看到的东西有两层编码:

OWL(公理)和Rightarrow;RDF(三元组)和右箭头;RDF/XML

OWL对解析类型集合和RDF/XML序列化一无所知,它只知道OWL。有一个映射知道OWL和RDF,这就是产生RDF三元组的原因。RDF对abo一无所知