DBpedia和SPARQL:带有重音符号的查询不起作用
所以我尝试了很多不同的方法,一直在寻找解决方案,但没有任何运气 我的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 .
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,它是无效的。如果需要在其中连接某些内容,则不应使用引号如果是这样的话,它应该会起作用。如果没有,则可以使用转义符来解决此问题,转义符的形式为
\u0000
,其中0000
是转义字符的UTF-8代码的十六进制表示形式。这在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
}