我想建模关于发布的RDF / XML语句(在命名空间中,比如'myns')。我知道这个出版物在给定的URN下是已知的。在RDF中引用URN的方法是什么?我可以想到许多不同的方法,例如:
<myns:Publication rdf:about="item42">
<myns:urn>urn:abc:xy:123-456789</myns:urn>
</myns:Publication>
<myns:Publication rdf:about="item42">
<rdfs:seeAlso>urn:abc:xy:123-456789</rdfs:seeAlso>
</myns:Publication>
<myns:Publication rdf:about="item42">
<owl:sameAs>urn:abc:xy:123-456789</owl:sameAs>
</myns:Publication>
<myns:Publication rdf:about="item42">
<owl:sameAs rdf:reference="urn:abc:xy:123-456789" />
</myns:Publication>
给出URN参考的正确(即最有益)方式是什么?
答案 0 :(得分:5)
首先,您需要引用RDF/XML spec,但通常您要查找的是rdf:resource属性,例如:
<owl:sameAs rdf:resource="urn:abc:xy:123-456789"/>
但是,您应该从不手动创建RDF / XML。我所知道的每个工具包都提供了某种RDF图形的对象表示和各种RDF格式的序列化程序,它们可以为您处理这些事情。
我猜您正在使用Java,在这种情况下,您应该在编写应用程序时查看Jena或Sesame。如果您使用.Net,那么您应该查看dotNetRdf。其他语言可能是一个混合包,我知道库存在Python&amp; PHP,但我没有足够使用它们来提供有关使用内容的建议。
最后,除非您需要使用基于XML的RDF序列化,否则不要使用RDF / XML。这很丑陋,难以阅读,如果你被困在手边,就像你看起来那样,很容易出错。我的建议是使用Turtle这是一个更加人性化的RDF序列化。