我正在使用sparql& amp; DBpedia中。 我目前遇到了一个带有斜杠的textuel属性的问题。 这是一个带有“放电”属性的工作查询,它表示每次河流的水量:
PREFIX dbp: <http://dbpedia.org/property/>
SELECT ?discharge
WHERE
{
<http://dbpedia.org/resource/Nile> dbp:discharge ?discharge .
FILTER(ISLITERAL(?discharge))
}
LIMIT 200
此请求正常运行。 仍然如果使用,一个名为“discharge_m3 / s”的类似属性,它不再工作了,我得到了这个错误,它增加了属性名称的斜杠:
Virtuoso 37000错误SP030:SPARQL编译器,第3行:语法错误 '/'在's'之前
有任何想法要经历这个吗?
答案 0 :(得分:3)
你的意思是你试图以前缀名称形式使用该属性,即dbp:discharge_m3/s
?
如果是这种情况你不能这样做,因为根据SPARQL语法,这不是一个有效的前缀名称,因此编译错误。
您必须包含完整的URI而不是带前缀的名称格式,例如
<http://dbpedia.org/property/discharge_m3/s>
答案 1 :(得分:3)
在兼容的SPARQL 1.1系统中,您可以反斜杠转义斜杠:dbp:discharge_m3\/s
。我不确定Virtuoso是否支持这种语法。与此同时,@ RobV的解决方案将起作用。