Экранирование ‹ в имени графа SPARQL

Я случайно создал график с именем, которое начинается с < и заканчивается на >.

Если я попытаюсь очистить график с сервера Virtuoso с помощью --

clear graph <graph_name>

-- or --

clear graph <<graph_name>>

-- or --

clear graph <\<graph_name\>>

-- это не работает. Все они дают одинаковые ошибки:

*** Error 37000: [Virtuoso Driver][Virtuoso Server]SQ074: Line 1: SPARQL compiler, line 1: syntax error at '<' before '<graph_name>


person vds    schedule 24.07.2015    source источник


Ответы (1)


< и > недопустимы в URI, поэтому анализатор расстроится при прямом использовании.

CLEAR можно рассматривать как сокращенную форму DELETE, поэтому вы можете попробовать:

DELETE { GRAPH ?g { ?s ?p ?o } }
WHERE { GRAPH ?g { ?s ?p ?o } 
        FILTER (str(?g) = '<graph_name>')
      }
person AndyS    schedule 24.07.2015
comment
После нескольких часов поиска вы просто спасли мой день. Большое спасибо! - person vds; 24.07.2015