如何在QNames中表示逗号(特别是在Turtle文档中)

时间:2014-01-05 06:14:33

标签: xml rdf jena turtle-rdf qnames

可以从http://dbpedia.org/resource/Jesuit_Church,_Mannheim这样的URI中形成QNames吗? Dbpedia将此列为dbpedia:Jesuit_Church,_Mannheim,但是当我运行此QName时,例如通过Jena的Turtle解析器,我得到以下异常:

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

这在Turtle specification下有意义,显然不包括QNames中的逗号。但是Namespaces in XML 1.0 specification显然允许“任何Unicode字符,不包括代理块,FFFE和FFFF”。

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

更新我必须在逃避时犯了错误。正如在接受的答案中指出的那样,确实可以使用dbpedia:Jesuit_Church\,_Mannheim,例如与耶拿2.11.0。

1 个答案:

答案 0 :(得分:4)

在Turtle(CR)的一个注释中says

  

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

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

Reserved character escape sequences

  

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

所以应该可以使用:

dbpedia:Jesuit_Church\,_Mannheim