Вывод по связанным данным конечных точек 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, не беспокоясь о том, поддерживаются ли определенные профили вывода.

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