处理SPARQL-Filter表达式中的特殊字符

时间:2014-08-22 14:25:03

标签: regex sparql dbpedia

我访问dbpedia [1]的SPARQL-Endpoint以获取给定城市的URI。我使用以下查询来实现此目的:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbpedia: <http://dbpedia.org/ontology/> 
select distinct * where 
  {?uri rdfs:label ?label. 
  FILTER (REGEX(STR(?label), "^Köln$", "i")). 
  ?uri a dbpedia:PopulatedPlace.
}

如果我查询没有德国变音符号的城市,一切正常,但如果有变音符号,我什么也得不到。通过代码执行此查询时,我甚至得到406错误(不可接受)

任何想法,如何在针对dbpedia的SPARQL查询中处理变音符号?

提前致谢,
弗兰克

[1] http://dbpedia.org/sparql

1 个答案:

答案 0 :(得分:3)

处理你的角色似乎有一个错误,可能是在交通工具上,或者其他方面。当您在unicode hex for ö中将其写下来时,它确实有效,如下所示:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbpedia: <http://dbpedia.org/ontology/> 
select distinct * where 
  {?uri rdfs:label ?label. 
  FILTER (REGEX(STR(?label), "^K\u00F6ln$")). 
  ?uri a dbpedia:PopulatedPlace.
}

编辑:我现在看到,这不是与我合作的。旗。文档建议&#39; u&#39;国旗将适用于此。