Настройка для запроса только графика по умолчанию и исключения именованных графов
В документации по GraphDB я вижу, что "график по умолчанию набора данных содержит слияние графа базы данных по умолчанию И всех баз данных с именем graphs". Это означает, что "если заявление ex:x ex:y ex:z
существует в базе данных в графе ex:g
"Затем запрос, такой как SELECT * { ?s ?p ?o }
вернет тройку ex:x ex:y ex:z
Мне интересно, есть ли параметр, который может быть запущен либо через веб-интерфейс, либо через RDF4J/OpenRDF API, который отключит это поведение в указанном репозитории GraphDB. То есть для целей моего проекта я бы предпочел, чтобы тройки, которые хранятся в именованных графах, появлялись только в результатах, которые специально запрашивают этот именованный граф.
Я не видел ничего подобного, просматривая документацию или настройки, доступные в веб-интерфейсе, но, возможно, кто-то здесь знает что-то, чего я не знаю.
РЕДАКТИРОВАТЬ: Я не ищу SPARQL решение этой проблемы. Я знаю, что могу запросить только график по умолчанию, используя SPARQL, но я хочу иметь возможность использовать запрос SELECT * { ?s ?p ?o }
и видеть только результаты, которые по умолчанию находятся в графике.
1 ответ
В GraphDB/RDF4J интерпретация графа по умолчанию отличается от интерпретации Йены. Единственный простой способ запросить только явные операторы в графе по умолчанию - это использовать специальный граф sesame:nil
, Основанное на SPARQL решение должно написать:
PREFIX sesame: <http://www.openrdf.org/schema/sesame#>
SELECT ?s ?p ?o
FROM sesame:nil
WHERE {
?s ?p ?o .
} LIMIT 100
Я не думаю, что есть какое-либо простое решение, не основанное на SPARQL, такое как изменение параметра конфигурации или даже использование этого специального графика по протоколу SPARQL Graph Store.