Вывод по связанным данным конечных точек SPARQL
При запросе некоторых связанных данных конечных точек SPARQL с помощью запросов SPARQL, какой тип рассуждения предоставляется (если есть)?
Например, конечная точка DBpedia SNORQL даже не предоставляет базовый вывод подкласса (если A subClassOf B
а также B subClassOf C
, затем A subClassOf C
). Хотя конечная точка FactForge SPARQL обеспечивает некоторый вывод (хотя неясно, что это за вывод), и предоставляет возможность включать и выключать этот вывод.
Мой вопрос: как определить тип применяемого вывода? и если поддержка вывода ограничена, может ли она быть расширена с использованием только конечной точки?
2 ответа
Управление выводом зависит от двигателя и конечной точки.
Общедоступная конечная точка DBpedia SPARQL (на платформе Virtuoso от моего работодателя, OpenLink Software) предоставляет различные правила вывода (доступные через ссылку "Правила вывода" в верхнем правом углу страницы формы запроса конечной точки SPARQL), которые контролируются прагмами в ваш SPARQL (не SNORQL, с которым вы связаны), например:
DEFINE input:inference 'urn:rules.skos'
Вы можете увидеть содержимое любого предопределенного набора правил через SPARQL - для вышеупомянутого
SELECT *
FROM <urn:rules.skos>
WHERE { ?s ?p ?o }
Вы можете увидеть живой запрос и результаты.
Посмотрите этот урок, содержащий много примеров.
Хотя логический вывод не поддерживается универсально для конечных точек SPARQL, большинство выводов, поддерживаемых профилями RDFS, RSFS+ и OWL 2 RL, поддерживается самим SPARQL. Например, запрос для экземпляров :A
использование вашего subClassOf entailment может поддерживаться путями свойств SPARQL:
SELECT ?inst
WHERE {
?cls rdfs:subClassOf* :A .
?inst a ?cls .
}
Первый тройной шаблон получает все подклассы :A
, в том числе :A
(использование +
вместо *
если вы просто хотите подклассы :A
), а вторая тройка находит все экземпляры всех этих классов.
Чтобы увидеть, как большая часть OWL 2 может быть реализована с помощью SPARQL, см. Обоснование в графах OWL 2 RL и RDF с использованием правил. За несколькими исключениями, все они могут быть реализованы в SPARQL (и на самом деле вам, вероятно, не понадобятся некоторые из них, такие как eq-ref
(что хорошо для вычислительной логики, над которой логики могут смеяться)).
Существует несколько вариантов использования, помимо сложных задач классификации, которые не могут быть решены с помощью подмножества правил OWL 2 RL.
Итак, в конце концов, рекомендация - понять, что вам нужно. Скорее всего, OWL полностью обдумал проблему, и вы можете жить с несколькими шаблонами SPARQL. И тогда вы можете поразить конечные точки SPARQL, не беспокоясь о том, поддерживаются ли определенные профили вывода.