“资源描述框架(RDF):概念和抽象语法”文档Section 6.4指出“RDF图中的URI引用(RDF URI引用)...将生成有效的URI字符序列(根据RFC2396,第2.1节)表示带有可选片段标识符的绝对URI ...“
RFC 2396,第2.1节仅讨论单个字符的编码。它没有说明RDF中允许的标准URI的哪些部分。
在我看到的一些RDF文档中,术语“绝对URI”似乎只是指URI的domain.tld / path / name#optionalFragment形式,但没有提到是否有查询字符串(?key1 = value1&允许或禁止; key2 = value2)(有时称为CGI数据)。与相对URI(/ just / a / path)相比,其他RDF文档仅使用术语“绝对URI”。
搜索“RDF URI查询字符串”充斥着SPARQL之类的错误命中。
所以,我的问题是:在RDF或RDFa中使用的URI中是否允许使用标准HTML查询字符串?
如果没有,为什么不呢?我知道URI不是URL,不一定用于从服务器检索网页。但是,RDF处理器读取这些URI,我认为他们可以通过这些“查询”字符串传递的附加元数据的形式获得一些帮助。
[Update 2/9/2012]以下是我的问题:我正在寻找一种方法来表明连接的“强度”。例如,并非所有人都喜欢:同样了解每个人。我们可能刚刚在一次会议上见过几分钟。或者我可能和某人住了多年。对粮农组织来说也是如此。但是,如果我能够编写foaf:knows?strength = + 50,那么不知道如何处理强度密钥的处理器可以忽略它,而那些“强度感知”的处理器将具有有价值的附加元数据。我可以创建一个包含术语“agreesWith”的词汇表,然后允许strength = key值的范围从0到100(表示协议的百分比)。然后,我将用一个词汇表涵盖整个协议范围。 {注意:我曾考虑允许范围从-100到+100以涵盖一系列分歧。但是,为了向后兼容,我们需要一个术语“disagreeWith”,这样不是“强度意识”的处理器仍然会知道“agreeWith”和disagreeWith之间的区别。“}
现在看来,似乎RDF推理者无法知道“勉强满足”和“比他了解自己更了解他”之间的区别。将键值对中具有不同值的每个不同谓词URI视为完全独立且完全不相关的谓词的决定似乎抛弃了几乎所有关于连接的最有价值的信息,所有这些都是为了简单起见代码编写和快速处理。
除了创建完全独立的主题,谓词或对象之外,查询字符串中的键值对可能还有其他有价值的用途:它们可用于指示是谁将特定实体添加到联合编辑的.RDF文件中。就目前而言,所有RDF推理者都知道,在某个地方存在三重存在?它没有基于其推理的附加信息。加密密码可用于验证源的可靠性,而不是简单地决定信任或不信任整个域。
答案 0 :(得分:7)
是
(什么,你想要更多?)
RDF指的是使用通俗地称为“URL”的东西。如果你想更准确,IRI(本质上是一种在URL中包含多于ascii的方法,这就是你可以在浏览器栏中使用异国字符的原因)。最准确的答案太难以联系,所以假设IRI。
RDF使用绝对引用。它的语法可能使用相对引用(例如foo/bar
),但它们相对于文档库被解析为绝对。实际上就像html链接一样。
除了语法之外,RDF并不关心这些引用的内部。你只需逐个字符地比较它们。结果:
http://example.com/foo/bar == http://example.com/foo/bar
http://example.com/foo/bar?query=x == http://example.com/foo/bar?query=x
http://example.com/foo/bar != http://example.com/foo/bar?query=x
http://example.com/foo/bar#x == http://example.com/foo/bar#x
http://example.com/foo/bar != http://example.com/foo/bar#x
http://example.com/%66oo/bar != http://example.com/foo/bar
请注意,您甚至无法进行规范化。
特别是RDF并不认为查询部分是特殊的。
答案 1 :(得分:4)
要确认上面的答案,是的。
URI纯粹是语法,因此上面列出的规则适用。
使用片段的URI不可解除引用,当代理尝试取消引用时,它会通过删除片段将其解析为另一个URI(即URL)。
最后,建议您尽可能使用IRI(国际化资源标识符)代替URI
http://www.ietf.org/rfc/rfc3987.txt
这特定于不同的合成约束和限制。