2015-07-24 4 views
1

Я случайно создал график с именем, начинающимся с < и заканчивающимся >.Escaping <в виде графа 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>

ответ

3

< и > являются незаконными в URI, так что синтаксический анализатор будет расстраиваться, если используется непосредственно.

ОЧИСТИТЬ можно рассматривать как краткую форму DELETE, так что вы можете попробовать:

DELETE { GRAPH ?g { ?s ?p ?o } } 
WHERE { GRAPH ?g { ?s ?p ?o } 
     FILTER (str(?g) = '<graph_name>') 
     } 
+0

После нескольких часов поиска вы только что спасли мой день. Большое спасибо! – vds