ЧАСТЬ 1:
Это триплеты, которые уже существуют.
<http:o1> <http:name> "name"^^xsd:string
<http:o1> <http:place> "place"^^xsd:string
<http:o1> <http:hasContained> <http:o2>
<http:o2> <http:name> "name1"^^xsd:string
<http:o2> <http:place> "place2"^^xsd:string
<http:o2> <http:hasContained> <http:o3>
<http:o3> <http:name> "name3"^^xsd:string
<http:o3> <http:place> "place3"^^xsd:string
Я хочу удалить свойства узлов, которые находятся на расстоянии 2 узлов от узла o1.
delete where { <http:o1> <http:hasContained>/<http:hasContained> ?s. ?s ?p ?o}
Я придумал этот запрос для удаления триплетов, связанных с узлом o3. Но когда я запускаю этот запрос, я получаю некоторые ошибки.
Malformed query: Encountered " "/" "/ "" at line 1, column 731.
Was expecting one of:
"(" ...
"[" ...
<NIL> ...
<ANON> ...
"true" ...
"false" ...
<Q_IRI_REF> ...
<PNAME_NS> ...
<PNAME_LN> ...
<BLANK_NODE_LABEL> ...
<VAR1> ...
<VAR2> ...
<INTEGER> ...
<INTEGER_POSITIVE> ...
<INTEGER_NEGATIVE> ...
<DECIMAL> ...
<DECIMAL_POSITIVE> ...
<DECIMAL_NEGATIVE> ...
<DOUBLE> ...
<DOUBLE_POSITIVE> ...
<DOUBLE_NEGATIVE> ...
<STRING_LITERAL1> ...
<STRING_LITERAL2> ...
<STRING_LITERAL_LONG1> ...
<STRING_LITERAL_LONG2> ...
С некоторыми альтернативными запросами я мог бы выполнить эту работу.
Но что является ошибкой в приведенном выше запросе?
Почему запрос свойства пути не работает с delete, где?
ЧАСТЬ 2:
Для тех же данных триплетов запрос на удаление всех используемых триплетов:
delete {?s ?p ?o} where { <http:o1> (<http:hasContained>/<http:hasContained>?)? ?s. ?s ?p ?o}
, который не удаляет данные из тройного хранилища. Принимая во внимание, что с помощью конструкции я могу получить данные с тем же предложением where.
construct {?s ?p ?o} where { <http:o1> (<http:hasContained>/<http:hasContained>?)? ?s. ?s ?p ?o}
В чем проблема в этих запросах, я что-то упустил?