所以我尝试了很多不同的东西,并一直在寻找解决方案,但没有运气......
我的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')
}
Run Code Online (Sandbox Code Playgroud)
当$ term等于名称中带有重音符号的东西时,它会被搞砸,并且没有给出结果.我尝试了很多不同的东西,但似乎无法让它们中的任何一个起作用.希望得到一些帮助.
谢谢
编辑
我正在使用PHP和curl.这是我根据自己的需要下载和修改的内容......这里是与dbpedia通信的部分.
$searchUrl = 'http://dbpedia.org/sparql?'
.'query='.urlencode($query)
.'&format='.$format;
Run Code Online (Sandbox Code Playgroud)
$ query在上面发布,使用的格式是json.
编辑2
这是我正在使用的源代码.https://gist.github.com/380379可能会查看完整的代码,可以让您更好地了解错误.
我将包含重音的姓氏的数据库字段更改为'utf8_unicode_ci',但我仍然卡住了,无法找到任何有效的解决方案.
2 您的查询存在问题:
prefix:"something"
您不能拥有无效形式的 QName 。如果您需要在其中连接某些内容,那么您不应该使用引号\u0000
,其中0000
是转义字符的 UTF-8 代码的十六进制表示形式。这在 QName 中应该是允许的编辑
删除了第 1 点,因为已经看到完整的源代码,很明显这只是 PHP 连接语法,而不是无用的 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')
}";
Run Code Online (Sandbox Code Playgroud)
实际上,我不认为这会产生任何影响,但总是值得一试。
如果错误仍然存在,您可以发布一些查询不起作用的示例术语吗
归档时间: |
|
查看次数: |
1296 次 |
最近记录: |