RDF Graph Entailment

Я только что прочитал о концепции реализации для RDF (Resource Description Framework). Может кто-нибудь сказать мне пример реализации для двух графиков RDF и объяснить их немного.

Спасибо

2 ответа

Предположим, у вас есть следующее:

ex:book1 rdf:type ex:Publication . 
ex:book2 rdf:type ex:Article .

Таким образом, запрос Sparql, такой как SELECT? S {? S rdf:type ex:Publication }, будет возвращать только ex:book1

Если вы добавите факт (или график в вашем наборе данных с фактом), который гласит:

ex:Article rdfs:subClassOf ex:Publication

Если ваш движок sparql обрабатывает вложения, он должен сделать вывод, что ex:Article также является ex: Publication

поэтому SELECT?s {?s rdf:type ex:Publication } вернет как ex:book1, так и ex: book2

PS: для получения дополнительной информации, пример взят с http://www.w3.org/TR/2009/WD-sparql11-entailment-20091022/

Есть еще один ответ о подключении RDFS, который важен и является важной частью повседневной работы с RDF, но реализация RDFS отличается от привязки RDF. Вложение RDF представляет собой связь между целыми RDF-графами и дает способ сказать: "Если RDF-граф x выполняется, то и RDF-граф y". В разделе простого описания документов RDF Semantics описываются основные условия:

Следуя общепринятой терминологии, я удовлетворяю E, если I(E)=true, и множество S RDF-графов (просто) влечет за собой граф E, если каждая интерпретация, которая удовлетворяет каждому члену S, также удовлетворяет E. В последующих разделах эти понятия будут адаптированы для других классов интерпретаций, но во всем этом разделе "влеченность" должна интерпретироваться как означающая простое вложение.

Это предполагает понимание интерпретации графа E, обозначенного I (E). Интерпретация отображает каждое свойство на набор пар. Например, интерпретация должна отобразить свойство rdfs:subClassOf на множество пар {[x, y]: x является подклассом y}. Чтобы интерпретация удовлетворяла графу, тогда набор пар, которым интерпретация сопоставляет свойство, должен содержать хотя бы те пары, которые фактически наблюдаются в графе. Например, если график содержит

a likes b.
b likes c.

тогда интерпретация удовлетворяет графу тогда и только тогда, когда I (лайки) содержит пары [a,b] и [b,c]. Граф G1 влечет за собой граф G2 тогда и только тогда, когда каждая интерпретация, которая удовлетворяет G1, также удовлетворяет G2. Если в графе нет пустых узлов, это довольно просто.

В связанном разделе документа RDF Semantics перечислены некоторые простые результаты этого:

  • Каждый граф влечет за собой пустой граф.
  • Каждый граф влечет за собой каждый из его подграфов.

Все становится сложнее, когда в графе RDF есть пустые узлы, потому что пустые узлы интерпретируются как экзистенциальные переменные. Например, рассмотрим график только с одной тройкой (где _:z это пустой узел):

a likes _:z

поскольку _:z является экзистенциальной переменной, это означает, что интерпретация удовлетворяет графу тогда и только тогда, когда существует такой индивидуум x, что интерпретация лайков содержит пару [a,x]. Если в графе есть пустые узлы, то замена этих пустых узлов фактическими терминами создает экземпляр этого графа. Например,

a likes b

является экземпляром графа

a likes _:z

В связанном документе также упоминается отношение

  • Каждый экземпляр графа влечет за собой граф

Это легко увидеть: если интерпретация удовлетворяет a likes b, тогда его интерпретация лайков должна содержать [a,b], поэтому, безусловно, существует такой x (а именно b), что он содержит [a,x], поэтому он также удовлетворяет a likes _:z,

Это всего лишь несколько простых примеров реализации RDF-графа. Я не знаю, что этот тип привязанности фактически используется в повседневной работе с RDF. Гораздо более распространенными являются RDFS-привязанность (описанная в другом ответе), OWL-привязанность и обоснование на основе правил.

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