这是我能够想出的更明确的答案。它澄清了我在提出之前所持有的一些误解。
- RDF 1.1概念和抽象语法指出,“任何IRI或文本都代表着世界中的某个东西(‘话题领域’)。这些东西被称为资源。”
- RDF 1.1概念和抽象语法指出,“RDF图中的文本由两个或三个元素组成:一个词汇形式(...)、一个数据类型IRI(...)、一个非空的语言标签(...)。”
- RDF 1.1概念和抽象语法指出:“由IRI表示的资源也称为其指涉物。”
- 它同样阐述了文字与其值之间的区别。
- 它还指出:“与IRI和文字不同,空白节点不确定特定资源。涉及空白节点的语句表明存在具有给定关系的事物,而没有明确命名它。” 更准确地说,RDF 1.1语义学指出,“空白节点被视为简单地指示存在某个物体,而不使用IRI来标识任何特定物体。”
- RDF 1.1概念和抽象语法还指出空白节点与IRI和文字不相交。
换句话说:资源可以被命名(使用IRI),可以被表示(使用文字),或者可以在不命名或显示它的情况下声明其存在(通过空白节点)。
在标准RDF中,语句的主语只能是IRI或空白节点。因此,谈论一个没有名称(没有IRI)的资源的唯一可能方式是使用空白节点(存在变量)。RDF为我们提供了一种惯用的构造方法:
_:nnn rdf:value "sss"
(参见
RDF Schema 1.1 section 5.4.3)。这意味着:“存在一个资源,其值是由“sss”表示的值。”
因此,
ex:xxx ex:aaa "sss"^^ex:ddd .
可以重写为
ex:xxx ex:aaa _:nnn . _:nnn rdf:value "sss"^^ex:ddd .
,而不需要任何蕴含模式,因为这不是逻辑上的结论,而是语法上的等价关系。(对于这样一个简单的情况,显然没有用处,反而更加混乱。)
因此,
ex:xxx ex:aaa "sss"^^ex:ddd .
意味着
ex:xxx ex:aaa _:nnn . _:nnn rdf:type ex:ddd .
是有意义的,因为这里使用的
_:nnn
与之前相同。如果不是这种情况,则蕴含仅为
_:nnn rdf:type ex:ddd。
而不是
ex:xxx ex:aaa _:nnn。_:nnn rdf:type ex:ddd.
在广义RDF中,我们可以将文字作为主语使用。恰当地,它定义了一个广义蕴涵模式,说明ex:xxx ex:aaa "sss"^^ex:ddd .
蕴含"sss"^^ex:ddd rdf:type ex:ddd。
,这与所给出的解释一致。
但令人困惑的是资源和我们用来谈论它的“句柄”之间的差异(IRI与其指示物,文字(2或3个组件)与文字值,存在变量)。有人可能会认为类型为
ex:ddd
的事物是文字本身,而不是文字值本身。(请参见
RDF 1.1 Concepts and Abstract Syntax以了解文字和其值之间的区别。)但是,如果
_:nnn
在此示例中声明了文字的存在,则它不会成为三元组
ex:xxx ex:aaa _:nnn .
的对象。(注意:如果我们想谈论词汇形式本身(这是我们可能想要谈论的一件事,并且因此是一个资源),我们除了使用空白节点(存在值)或给它一个IRI外别无选择,即使在广义RDF中也是如此。此外:数据类型不是词汇形式的
rdf:type
,而只是文字的一个组成部分(由词汇形式、数据类型和可能的语言标签组成)。)
值得庆幸的是,RDF 1.1语义指出:“RDF解释的语义条件以及对ICEXT的RDFS条件意味着每个被认可的数据类型都可以被视为一个类,其扩展是该数据类型的值空间,并且具有该数据类型的每个文字要么无法引用,要么引用该类中的一个值。” 换句话说,虽然说ex:ddd
是文字"sss"^^ex:ddd
的数据类型,但也可以说ex:ddd
是由"sss"^^ex:ddd
所表示的文字值的类。
因此,回答OP的问题:
ex:xxx ex:aaa "sss"^^ex:ddd .
和ex:xxx ex:aaa [ rdf:value "sss"^^ex:ddd ; rdf:type ex:ddd ] .
通过混合蕴含模式和语法等价性是等效的。(请注意,OP中省略了数据类型“^^ex:ddd
”。)
ex:a ex:p [ rdf:value "1" ; rdf:type xsd:integer ] .
不蕴含ex:a ex:p "1"^^xsd:integer .
但ex:a ex:p [ rdf:value "1"^^xsd:integer ; rdf:type xsd:integer ] .
应该蕴含(数据类型被省略了)。
rdf:value
三元组,也没有任何等价规则。 - UninformedUser