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
}
смотрите здесь