在RDF 1.1中rdf:resource,定义空属性元素时,XML语法文档用作缩短形式:
当RDF图中的谓词弧指向没有其他谓词弧的对象节点时,该对象弧在RDF / XML中显示为空节点元素(或),可以缩短这种形式。通过将对象节点的IRI用作
rdf:resource包含的属性元素上的XML属性的值,并使该属性元素为空,可以完成此操作。
在RDF中,Schema 1.1 rdfs:Resource被定义为一个类:
RDF描述的所有事物都称为资源,并且是class的实例
rdfs:Resource。这就是所有的事情。所有其他类都是该类的子类。rdfs:Resource是的实例rdfs:Class。
两者有什么关系?rdf:resource值是否始终属于rdfs:Resource类,反之亦然?
我尝试使用 W3C RDF 验证器在线验证一个非常简单的手动编写的 RDF。令我惊讶的是,它正确地解析了来自 rdf 命名空间的 URI,而不是来自不同的命名空间(也来自 W3C)。为什么会这样?
让我们举个例子
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:org="http://www.w3.org/ns/org#" >
<rdf:Description rdf:about="https://stackexchange.com/">
<rdf:type rdf:resource="org:Organization"/>
</rdf:Description>
</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)
如您所见,谓词 (rdf:type) 得到了很好的扩展,您可以单击它。对象 (org:Organization) 根本没有展开,而且当我尝试单击链接时,它实际上将“org:Organization”发送到浏览器,从而产生错误。但是命名空间 org 已经像 rdf 命名空间一样被定义了,如果我手动访问http://www.w3.org/ns/org#Organization,我会得到一个 Turtle 文档。
所以,我的问题是:为什么不将http://www.w3.org/ns/org#Organization放在对象中?为了让解析器正确执行,我应该更改什么?