首页 文章

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

提问于
浏览
3

我访问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 回答

  • 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.
    }
    

    编辑:我现在看到这不符合'i'标志 . 文档表明'u'标志适用于此处 .

相关问题