之间有什么概念上的差异rdf:resource,rdf:about和rdf:ID.我做了一些调查,但他们之间的区别对我来说还不清楚.例如,是否rdf:ID在第一次声明资源时rdf:resource使用,用于引用已存在的资源等.
如果你提供一些小例子,我会很高兴的.
use*_*512 49
要清楚这只是关于编写rdf的一种特殊方式:即RDF/XML.其他语法没有这些差异.
有了免责声明:
我们要做的是写下以下形式的陈述:
subject predicate object
Run Code Online (Sandbox Code Playgroud)
特别是:
subjectURI predicate objectURI
Run Code Online (Sandbox Code Playgroud)
那么我们如何在RDF/XML中引入主题和对象URI呢?
rdf:about设置一个语句,其可以是绝对的(的主题URI http://example.com/)或解析相对于文档的碱(例如/foo/bar,#frag).(比如href在html中)rdf:resource 设置语句的对象URI,再次设置为绝对或相对.rdf:ID设置主题URI,但它只能在此文档中.ID也只能使用一次.非常喜欢<a name="baz">或id="baz"在HTML中.rdf:ID 因此不鼓励
rdf:about或rdf:resource与片段#baz和也就是说,它是多余的并且是潜在的错误来源.
回想起来,通常只需要一个属性来指定URI,因为从RDF/XML语法中可以看出某些东西是主题还是对象:
<ex:Foo ...> - subject
<ex:prop ... /> - property then object
</ex:Foo>
<ex:Foo ...> - subject
<ex:prop> - property
<ex:Bar ... /> - subject (and implictly an object chaining from previous)
...
Run Code Online (Sandbox Code Playgroud)
(经验法则:奇数行rdf:about,偶数行rdf:resource)
并且在元素上使用rdf:about和rdf:resource几乎总是一个错误(你要么处于主题位置或对象位置).
避免rdf:ID.使用rdf:about和rdf:resource很像href,前者用于主题,后者用于对象.
忘了提到rdf:ID可以在属性元素上使用,但是它会做一些你可能会发现意想不到的事情:它会使三元组重新启用.避免rdf:ID.