在RDF 1.1 XML语法文档中, rdf:resource
在定义Empty Property Elements时用作简化形式:
当RDF图中的谓词弧指向没有其他谓词弧的对象节点时,该对象弧在RDF / XML中显示为空节点元素(或),可以缩短这种形式。通过使用对象节点的IRI作为包含属性元素上XML属性
rdf:resource
的值并将该属性元素为空来完成此操作。
在RDF Schema 1.1中, rdfs:Resource
被定义为class:
RDF描述的所有事物都称为资源,并且是类
rdfs:Resource
的实例。这就是所有的事情。所有其他类都是该类的子类。rdfs:Resource
是rdfs:Class
的实例。
两者之间有何关系? rdf:resource
值是否始终属于rdfs:Resource
类,反之亦然?
答案 0 :(得分:4)
它们根本不相关。他们只是碰巧共享一个名字,因为他们都有与资源有关的东西。
术语“资源”是RDF数据模型的核心(毕竟,它是资源描述框架)。一般来说,RDF中的资源是可以通过URI标识的任何内容(存在大量技术细节,如空白节点和文字如何属于此定义,但为简单起见,我们在这里将其忽略)。 / p>
rdf:resource
只是RDF / XML语法中的语法元素,即用来标识作为属性值的资源的属性。例如,这是RDF / XML中的简单RDF模型(1个三元组):
<rdf:Description rdf:about="http://example.org/Bob">
<foaf:address rdf:resource="http://example.org/address1"/>
</rdf:Description>
在这里,http://example.org/Bob
是主题资源,foaf:address
是该主题的属性(用于将主题资源链接到值)。在这种情况下,属性值也是资源(http://example.org/address1
),因此在RDF / XML语法中,我们使用rdf:resource
属性进行链接。但是,如果您使用不同的语法编写相同的RDF模型(例如Turtle),则根本看不到rdf:resource
:
<http://example.org/Bob> foaf:address <http://example.org/address1> .
在RDF架构中,类rdfs:Resource
是所有资源的类。这是一个概念,而不是特定于语法的机制。由于RDF中的几乎所有东西都是资源,因此它是“顶层”的东西。万物都是资源,因此,如果您引入一个新类,例如“ Person”,它将(自动)成为rdfs:Resource
的子类。
<http://example.org/Bob> rdf:type <http://example.org/Person> .
<http://example.org/Bob> rdf:type rdfs:Resource .
请注意,第二个三元组是第一个三元组的逻辑结果。因此,在实践中,鲍勃是资源这一事实几乎从未在RDF模型中明确记录下来-如果需要,可以推断出来。