Jena/Fuseki: операция SPARQL DELETE не эффективна

Я разрабатываю сервер, который использует тройной магазин Йена. Сервер разработан на Python, и я использую библиотеку SPARQLWrapper для обработки различных выполняемых операций. У меня не было проблем с запросом хранилища (операция SELECT) и созданием троек (операция INSERT DATA). С операцией DELETE все немного сложнее. Я пытаюсь выполнить:

q= 
'PREFIX pref:<url>
 DELETE {?s ?p ?o}
WHERE {
 ?s a  pref:class.
}'

На URL / обновление. Я получаю ответ, что операция в порядке (код HTTP 200), но тройки все еще находятся в моем хранилище (проверено с помощью операции SELECT).

wrapper = SPARQLWrapper(<my_url>/update)
wrapper.setMethod('DELETE')
wrapper.query(q)

Я пробовал разные глаголы HTTP (POST, DELETE), чтобы увидеть, может ли это что-то изменить, но ничего не меняется.

Также я запускаю fuseki-сервер с опцией --update.

1 ответ

Вам нужно определить переменные?p и?o

например:

DELETE {?s ?p ?o}
WHERE {
 ?s ?p ?o .
 ?s a  prefix:class
}

смотрите здесь

Другие вопросы по тегам