Короткий ответ «нет, не делай этого», как объяснено в ответе Кигриса . Однако в этом вопросе больше тонкости, если вы действительно хотите знать последствия использования 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
для связи двух свойств, вероятно, не очень хорошая идея.