【发布时间】:2023-03-06 18:22:01
【问题描述】:
我了解 RDF 中的 named node 是一个有名称的节点(即可以通过 IRI 识别),而 blank node 是一个未命名的节点(即未通过 IRI 描述) .
在 RDF 中说一个节点代表一个资源是否正确?在这种情况下,命名节点和空白节点都将被视为资源。
查看 RDF 模式,我看到许多 XML 标记似乎代表节点(空白和命名)。例如:
<rdf:Description rdf:about="http://.../SomeObject">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
<rdfs:subClassOf rdf:resource="http://.../OtherClass"/>
<rdfs:subClassOf rdf:nodeID="node1e2d5tndrx143"/>
</rdf:Description>
和
<rdf:Description rdf:nodeID="node1e2d5tndrx60">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Datatype"/>
<owl:oneOf rdf:nodeID="node1e2d5tndrx61"/>
</rdf:Description>
(并且因为这个节点引用了另一个空白节点)
<rdf:Description rdf:nodeID="node1e2d5tndrx61">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/>
<rdf:first>1</rdf:first>
<rdf:rest rdf:nodeID="node1e2d5tndrx62"/>
</rdf:Description>
在我看来,这个特定 API 端点上可用的资源包括这三个节点,其中一个名为 http://www.w3.org/2001/XMLSchema#float,其中两个是空白的(node1e2d5tndrx60、node1e2d5tndrx61)
此链接 - https://lists.w3.org/Archives/Public/public-esw-thes/2004Nov/0061.html - 似乎是关于 rdf:about 与 rdf:ID 与 rdf:nodeID 主题的旧 w3.org 提到通过 rdf:nodeID 属性指示空白节点。
如果这两个节点都是此特定 API 端点的“资源”(我假设它们是 - 如果不正确,请告诉我),据我所知,我永远无法直接查询空白节点,但在在这个特定的 RDF 文档中,空白节点用于限制允许哪些对象(通过 rdf:range 属性)用于指定 hasObjectClass 属性/谓词的三元组:
<rdf:Description rdf:about="http://.../hasSomeObjectClass">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
<rdfs:label>Some Object Class</rdfs:label>
<rdfs:domain rdf:resource="http://..../SomeObject"/>
<rdfs:range rdf:nodeID="node1e2d5tndrx60"/>
</rdf:Description>
我的理解是使用 :hasSomeObjectClass 谓词 (<subj> <pred> <obj>) 的三元组将:
- 包括/只能包括属于
rdf:type“SomeObject”的主题 - 包括/只能包括空白节点
node1e2d5tndrx60的“子类型”对象
最后,在空白节点node1e2d5tndrx60 中,我看到有一个owl 约束——任何允许的对象都可以被视为列表的一部分。大概是共享特定类的对象列表?
问题
查看hasSomeObjectClass资源的域属性,我可以找到:
- 代表
SomeObject类的节点 - 许多具有
rdfs:subClassOf属性并将SomeObject引用为资源的节点
因此,就如何解析三重规范(其中谓词指定此类型的域)而言,我从概念上理解如何强制/解决它。
但是,我看不到空白节点与如何强制/解决范围约束之间的联系。 在概念层面上解释如何使用空白节点来解析指定的三元组是否容易?
我对关联数据的世界非常非常陌生。请让我知道如何改进这个问题!
【问题讨论】:
-
将空白节点视为存在变量。此外,如果是复杂的 OWL 公理,则在 RDF 列表和 RDF 序列化中使用空白节点。
-
什么是“存在变量”?
-
存在变量是一阶逻辑公式中用符号∃存在量化的变量,例如在FOL公式∃x P(x)中,变量x是存在变量。它们表明事物的存在。同样,在 RDF 图中,空白节点表示事物的存在。
标签: rdf rdfs blank-nodes