问题描述
我是 SPARQL 查询的新手,在尝试从 rdflib.term.URIRef
和 rdflib.term.Literal
中提取值时出现错误。所以 ?o
包含 URI 和文字。请找到以下查询。
SELECT * WHERE {
uo:0A ?p ?o.
BIND(IF(!isLIteraL(?o),(strafter(str(?o),'#') as ?o2),?o) AS ?result)
}
我收到错误为 ParseException: Expected {SelectQuery | ConstructQuery | DescribeQuery | AskQuery},found 'B' (at char 117),(line:4,col:1)
。
任何帮助将不胜感激。
解决方法
重新发布评论内容作为答案,以便可以接受并关闭问题:
您的 BIND 子句已损坏,请再次检查 IF 的语法,目前您有两次,这显然没有意义,因为在任何 IF 中都没有,而只有在 BIND 中。
AS 仅可用于 BIND(或在查询的投影部分)为变量赋值。