在图形名称 SPARQL 中转义 <
Escaping < in graph name SPARQL
我不小心创建了一个名称以 <
开头并以 >
结尾的图表。
如果我尝试通过 --
从 Virtuoso 服务器清除图表
clear graph <graph_name>
-- 或--
clear graph <<graph_name>>
-- 或--
clear graph <\<graph_name\>>
-- 没用。他们都给出了类似的错误:
*** Error 37000: [Virtuoso Driver][Virtuoso Server]SQ074: Line 1: SPARQL compiler, line 1: syntax error at '<' before '<graph_name>
<
和 >
在 URI 中是非法的,因此如果直接使用,解析器会感到不安。
CLEAR 可以被认为是 DELETE 的缩写形式,因此您可以尝试:
DELETE { GRAPH ?g { ?s ?p ?o } }
WHERE { GRAPH ?g { ?s ?p ?o }
FILTER (str(?g) = '<graph_name>')
}
我不小心创建了一个名称以 <
开头并以 >
结尾的图表。
如果我尝试通过 --
从 Virtuoso 服务器清除图表clear graph <graph_name>
-- 或--
clear graph <<graph_name>>
-- 或--
clear graph <\<graph_name\>>
-- 没用。他们都给出了类似的错误:
*** Error 37000: [Virtuoso Driver][Virtuoso Server]SQ074: Line 1: SPARQL compiler, line 1: syntax error at '<' before '<graph_name>
<
和 >
在 URI 中是非法的,因此如果直接使用,解析器会感到不安。
CLEAR 可以被认为是 DELETE 的缩写形式,因此您可以尝试:
DELETE { GRAPH ?g { ?s ?p ?o } }
WHERE { GRAPH ?g { ?s ?p ?o }
FILTER (str(?g) = '<graph_name>')
}