PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX : <http://dbpedia.org/resource/>
PREFIX dbpedia2: <http://dbpedia.org/property/>
SELECT ?a (3+3 AS ?y)
WHERE
{
?a dc:description "English footballer" .
?a dbpedia2:placeOfBirth :Merseyside .
}
显示所有English Footballers
在默西塞德郡出生的人,其中每一行y
仅显示值6
[结果链接];但是,在SNORQL端点上的相同查询显示错误:
Virtuoso 37000 Error SP030: SPARQL compiler, line 16: syntax error at '3'
before 'AS' SPARQL query: define sql:big-data-const 0 #output-
format:application/sparql-results+json define input:default-graph-uri PREFIX
owl: PREFIX xsd: PREFIX rdfs: PREFIX rdf: PREFIX foaf: PREFIX dc: PREFIX :
PREFIX dbpedia2: PREFIX dbpedia: PREFIX skos: PREFIX pos: PREFIX dbo: SELECT
?a (3 3 AS ?y) WHERE { ?a dc:description "English footballer" . ?a
dbpedia2:placeOfBirth :Merseyside . }
更奇怪的是,使用其他3个算术运算符中的任何一个都可以在SNORQL端点中工作(例如,使用Div )
先前的问题暗示SPARQL和SNORQL端点应该返回相同的结果,那么这是怎么回事?
snorql代码使用了'escape'javascript函数,该函数不是正确的函数,用于编码需要作为官方/ sparql端点的参数参数嵌入的一段文本。
这导致+字符被传输为原义字,并被/ sparql端点解码为空格字符,从而改变了查询的语法。
我们修复了dbpedia.org上的snorql代码,以使用encodeURIComponent,如下所示:
url = url +'&query ='+ encodeURIComponent(query_text);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句