DBpedia和SPARQL:带有重音符号的查询不起作用

DBpedia和SPARQL:带有重音符号的查询不起作用,sparql,dbpedia,Sparql,Dbpedia,所以我尝试了很多不同的方法,一直在寻找解决方案,但没有任何运气 我的SPARQL查询是 PREFIX dbp: <http://dbpedia.org/resource/> PREFIX dbpedia2: <http://dbpedia.org/property/> SELECT ?currentclub WHERE { dbp:".$term." dbpedia2:currentclub ?currentclub .

所以我尝试了很多不同的方法,一直在寻找解决方案,但没有任何运气

我的SPARQL查询是

    PREFIX dbp: <http://dbpedia.org/resource/>
    PREFIX dbpedia2: <http://dbpedia.org/property/>


   SELECT ?currentclub
   WHERE {
      dbp:".$term." dbpedia2:currentclub ?currentclub . 
      FILTER langMatches(lang(?currentclub), 'en')
   }
$query发布在上面,使用的格式是json

编辑2

这是我正在使用的源代码。也许查看完整的代码会让您更好地了解问题所在


我已将包含带重音的姓氏的数据库字段更改为“utf8\u unicode\u ci”,但我仍然无法找到任何有效的解决方案。

2您的查询存在问题:

  • 您不能有一个格式为
    前缀:“something”
    的QName,它是无效的。如果需要在其中连接某些内容,则不应使用引号
  • 您确定您的查询,特别是口音是UTF-8吗?
    如果是这样的话,它应该会起作用。如果没有,则可以使用转义符来解决此问题,转义符的形式为
    \u0000
    ,其中
    0000
    是转义字符的UTF-8代码的十六进制表示形式。这在QName中应该是允许的
  • 编辑

    删除了第1点,因为已经看到了完整的源代码。很明显,这只是PHP concationment语法,而不是dud SPARQL语法

    看过完整的源代码后,不清楚代码为什么会失败。我唯一能提出的另一个建议是尝试更改代码以发送术语的URI引用,而不是QName:

     $query =
       "PREFIX dbp: <http://dbpedia.org/resource/>
    PREFIX dbp2: <http://dbpedia.org/ontology/>
    SELECT ?abstract
    WHERE {
    <http://dbpedia.org/resource/".$term."> dbp2:abstract ?abstract .
    FILTER langMatches(lang(?abstract), 'en')
    }";
    
    $query=
    “前缀dbp:
    前缀dbp2:
    选择?摘要
    在哪里{
    dbp2:抽象?抽象。
    筛选器语言匹配(语言(?摘要),“en”)
    }";
    
    现实地说,我不认为这会有什么不同,但总值得一试


    如果错误仍然存在,您是否可以发布一些查询不起作用的示例术语

    尝试记录编码查询,对于法兰西(地区),各种重音应按如下方式编码:

    select distinct ?p ?o  where {
      <http://dbpedia.org/resource/%C3%8Ele-de-France_(region)> ?p ?o
    }
    
    选择不同的p?o,其中{
    ?采购订单
    }
    
    因此,“Δ字符采用UTF-8编码,如%C3%8E,可在以下位置检索转换表:


    我不是PHP开发人员,但应该有一个UTF-8编码库来帮助您。

    您如何与dbpedia交谈?使用API?浏览器?
    select distinct ?p ?o  where {
      <http://dbpedia.org/resource/%C3%8Ele-de-France_(region)> ?p ?o
    }