2

一种可以从 URI 中形成 QName,例如http://dbpedia.org/resource/Jesuit_Church,_MannheimDbpedia将此列为,但是当我通过Jenadbpedia:Jesuit_Church,_Mannheim的 Turtle 解析器运行此 QName 时,我得到以下异常:

Not a valid token for an RDF term: [COMMA]

这在Turtle 规范下是有意义的,它显然从 QNames 中排除了逗号。然而,XML 1.0 规范中的命名空间显然允许在其中包含“任何 Unicode 字符,不包括代理块、FFFE 和 FFFF”。

那么哪个规范是“正确的”以及如何(如果有的话)在 Turtle 文档中以缩写形式使用此类 URI?我尝试过百分比编码,但在这种情况下,Jena 的海龟解析器显然返回了一个模型,该模型保留了转义的 URI,即http://dbpedia.org/resource/Jesuit_Church%2C_Mannheim而不是http://dbpedia.org/resource/Jesuit_Church,_Mannheim,这会导致以后的字符串比较(在我的代码中)失败。

更新我必须在转义时出错。正如在接受的答案中指出的那样,确实可以使用dbpedia:Jesuit_Church\,_Mannheim,例如使用 Jena 2.11.0。

4

1 回答 1

4

在 Turtle (CR) 的注释中,它

前缀名称是 XML QNames 的超集。它们的不同之处在于前缀名称的本地部分可能包括:

  • 前导数字,例如leg:3032571isbn13:9780136019701
  • 非前导冒号,例如og:video:height
  • 保留字符转义序列,例如wgs:lat\-long

保留字符转义序列

[…] 由一个 '\' 后跟 of 组成~.-!$&'()*+,;=/?#@%_,代表 '\' 右侧的字符。

所以应该可以使用:

dbpedia:Jesuit_Church\,_Mannheim
于 2014-01-05T14:03:24.157 回答