мы можем использовать owl: SameAs между двумя предикатами? - PullRequest
8 голосов
/ 16 августа 2011

В чем разница между использованием <DC:title> <owl:SameAs> <NS:title> и <DC:title> <owl:equivalentProperty> <NS:title>

Здесь NS - это некоторое пространство имен.

Ответы [ 3 ]

8 голосов
/ 16 августа 2011

owl:sameAs предназначен для отдельных лиц, owl:equivalentProperty предназначен для свойств RDFS / OWL, а owl:equivalentClass предназначен для классов RDFS / OWL.

Полагаю, вы указываете эквивалентность между этими свойствами, чтобы вы могли сделать вывод

:individual1 ns:title "The Title".

из существующего заявления

:individual1 dc:title "The Title".

или наоборот. Я не пробовал этого, но я предположил бы, что основанные на DL рассуждения OWL (то есть большинство рассуждений OWL) будут делать соответствующий вывод, только если используется owl:equivalentProperty. С другой стороны, если вы хотите сделать вывод

:individual2 dc:title "The Title".

из существующего заявления

:individual1 dc:title "The Title".

тогда вам следует использовать выражение owl:sameAs, чтобы связать двух людей.

6 голосов
/ 16 августа 2011

Два отличия:

Во-первых, некоторые OWL-рассуждения будут возражать против owl:sameAs между свойствами или просто игнорируют его. Они поддерживают сильное различие между людьми и классами / свойствами.

Во-вторых (и это более важно) эквивалентность (например, owl:equivalentProperty) не совпадает с идентичностью (owl:sameAs). Последний говорит, что мы имеем дело с одной вещью с разными именами, тогда как первая говорит, что есть две вещи, которые имеют одинаковое расширение (то есть, держатся между одними и теми же вещами).

Если это не ясно, вот пример:

# My book has ns:title "My book"
:book ns:title "My book" .

# My title property is defined in my vocabulary document
ns:title rdfs:isDefinedBy <http://example.com/my-vocab> .

Использование owl:sameAs в моей книге также есть dc:title "Моя книга", а dc:title определяется моим словарным документом. К сожалению, округ Колумбия, возможно, не рад этому.

С owl:equivalentProperty в моей книге также есть dc:title "Моя книга" (отлично), но это не значит, что dc:title определяется словарным документом (фу).

1 голос
/ 07 июня 2016

Короткий ответ «нет, не делай этого», как объяснено в ответе Кигриса . Однако в этом вопросе больше тонкости, если вы действительно хотите знать последствия использования owl:sameAs VS. owl:equivalentProperty.

Во-первых, небольшое исправление относительно терминов в вопросе: в RDF предикат - это то, что находится во второй позиции тройки. RDF не может ссылаться на позиции в тройках, поэтому нельзя использовать свойство между двумя предикатами. ОП, безусловно, означает «можем ли мы использовать owl:sameAs между двумя свойствами ». Свойства могут быть идентифицированы с помощью IRI, IRI могут встречаться в любом месте тройки, субъект и объект могут быть связаны с помощью предиката, и любой IRI разрешен в любой позиции тройки. Таким образом, с синтаксической точки зрения, разрешено связывать два свойства с owl:sameAs.

Однако вопрос в том, имеет ли это смысл и каковы последствия. Проблема в том, что в графах RDF есть нечто квантовое: значение графа RDF представляет собой суперпозицию значений, и вы можете наблюдать наблюдаемое значение только тогда, когда применяете некоторые рассуждения в соответствии с некоторой формальной семантикой. RDF 1.1 Семантика определяет множественную семантику (так называемые режимы реализации ), но ни одна из них не дает конкретного значения owl:sameAs, поэтому применение рассуждений RDF (S) ничего не даст полезно. Следовательно, если таков наблюдаемый смысл графика, то owl:sameAs между свойствами бесполезен.

Реальные интересные вещи возникают, когда применяется семантика OWL. Но даже в OWL существует двойственность значений с OWL 2 Directed Semantics и OWL 2 RDF-семантикой . Рассмотрим пример RDF-графа:

<p>  a  owl:ObjectProperty;
     dc:creator  "AZ" .
<q>  a  owl:ObjectProperty;
     dc:date  "2016-06-07"^^xsd:date  .
<r>  a  owl:ObjectProperty, owl:DeprecatedProperty;
     dc:date  "1981-01-14"^^xsd:date .
<s>  a  owl:ObjectProperty;
     dc:date  "2016-06-07"^^xsd:date .
<p>  owl:sameAs  <q> .
<r>  owl:equivalentProperty  <s>
<a>  <p>  <b> .
<c>  <r>  <d> .

Давайте начнем с семантики RDF. С одной стороны, IRI <r> и <s> обозначают эквивалентных свойств , поэтому можно сделать вывод:

<c>  <s>  <d> .

С другой стороны, IRI <p> и <q> name тот же ресурс , поэтому мы можем заключить, что (среди прочего):

<q>  dc:creator  "AZ" .
<p>  dc:date  "2016-06-07"^^xsd:date .
<a>  <q>  <b> .
<p>  owl:equivalentClass  <q> .

Разница в том, что все, что говорят о <p>, справедливо для <q>, потому что это то же самое! Как правило, разные имена свойств относятся к разным свойствам, поскольку они должны быть привязаны к разным метаданным (таким как rdfs:isDefinedBy, rdfs:label, rdfs:comment, термины DC).

Давайте теперь применим прямую семантику к этому. Это не удается. Прямая семантика не применяется к графам RDF, она применяется к онтологиям в синтаксисе функционального стиля структурной спецификации OWL 2 . Чтобы интерпретировать граф RDF в соответствии с прямой семантикой, необходимо сначала сопоставить граф с онтологией OWL 2 в функциональном синтаксисе. Для этого требуется, чтобы граф RDF удовлетворял некоторым ограничениям, чтобы онтология OWL 2 в форме графа RDF .

Одно обязательство состоит в том, что все лица должны быть явно объявлены членами некоторых классов OWL. Другое требование заключается в том, что owl:sameAs может применяться только к физическим лицам. Лица строго не пересекаются со свойствами, но есть небольшая хитрость: индивидуальное имя может быть таким же, как свойство имя (это называется наказание ). Все свойства должны быть объявлены как свойства объекта, свойства типа данных или свойства аннотации. Имя должно быть дано онтологии вместе с утверждением, которое явно говорит, что это онтология. Итак, версия графа RDF, которая является действительной онтологией OWL 2 в форме графа RDF, выглядит следующим образом:

<>  a  owl:Ontology .  # Give a name to the ontology and declare it as such
dc:creator  a  owl:AnnotationProperty .  # Declare property
dc:date  a  owl:Annotation Property .  # Declare property
<p>  a  owl:ObjectProperty;
     dc:creator  "AZ" .
<q>  a  owl:ObjectProperty;
     dc:date  "2016-06-07"^^xsd:date  .
<r>  a  owl:ObjectProperty, owl:DeprecatedProperty;
     dc:date  "1981-01-14"^^xsd:date .
<s>  a  owl:ObjectProperty;
     dc:date  "2016-06-07"^^xsd:date .
<p>  a  owl:Thing .  # <p> used with owl:sameAs: must be declared as individual
<q>  a  owl:Thing .  # <q> used with owl:sameAs: must be declared as individual
<a>  a  owl:Thing .  # Declare individual
<b>  a  owl:Thing .  # Declare individual
<c>  a  owl:Thing .  # Declare individual
<d>  a  owl:Thing .  # Declare individual
<p>  owl:sameAs  <q> .
<r>  owl:equivalentProperty  <s>
<a>  <p>  <b> .
<c>  <r>  <d> .

На этом графике мы можем применить прямую семантику OWL 2, с которой мы можем заключить:

<c>  <s>  <d> .

Ни одна из других троек, приведенных ранее с семантикой на основе RDF, не может быть выведена. В частности, тот факт, что <p> и <q> обозначают одного и того же человека, не позволяет сделать вывод о свойствах, названных <p> и <q>.

.

Опять же, в этом случае обычно не рекомендуется использовать owl:sameAs.

В заключение, как бы вы ни интерпретировали график RDF, использование owl:sameAs для связи двух свойств, вероятно, не очень хорошая идея.

...