Зачем использовать owl:Restriction как own: свойство EquivalenceClass?

Я только начинаю изучать семантическую сеть и у меня возникает вопрос об ограниченном классе. Я вырыл некоторое время, но не нашел никакого ответа.. Любая помощь будет высоко ценится! Из учебника я вижу примеры определения класса ограничения, все они собираются определить анонимный класс owl:Restriction учебный класс bnode и связать это bnode с собственностью owl:equivalentClass,

пример:

example:restrictionClass owl:equivalentClass [
    rdf:type owl:Restriction;
    owl:onProperty example:resProp;
    owl:someValuesFrom example:resValue.
]

Мой вопрос: можем ли мы определить класс ограничений напрямую? Подобно:

 example:restrictionClass rdf:type owl:Restriction;
                         owl:onProperty example:resProp;
                         owl:someValuesFrom example:resValue.

В чем преимущество определения анонима owl:Restriction?

1 ответ

Решение

Нет, ты не можешь. RDF, который вы видите, представляет собой кодировку аксиомы OWL, например: EquivalentClasses (C ObjectSomeValuesFrom (p D)). Это кодируется как:

:C owl:equivalentClass [
   rdf:type owl:Restriction;
   owl:onProperty :p;
   owl:someValuesFrom :D .
]

Теперь предположим, что у вас также есть аксиома EquivalentClasses (C ObjectSomeValuesFrom (r E)). Это кодируется как:

:C owl:equivalentClass [
   rdf:type owl:Restriction;
   owl:onProperty :r;
   owl:someValuesFrom :E .
]

Теперь, если бы вы могли применить сокращение, которое вы хотите, вы получите:

:C rdf:type owl:Restriction ;
   owl:onProperty :p ;
   owl:onProperty :r ;
   owl:someValuesFrom :D ;
   owl:someValuesFrom :E .

Теперь есть двусмысленность. Что из следующего будет равно C?

  • ObjectSomeValuesFrom (p D)
  • ObjectSomeValuesFrom (p E)
  • ObjectSomeValuesFrom (r D)
  • ObjectSomeValuesFrom (r E)

Только от RDF у вас нет возможности рассказать. Вам на самом деле нужно кодировать аксиомы EquivalentClasses.

добавление

Чтобы ответить на вопросы из комментариев: я использовал C, p и D, чтобы сделать текст короче. Ваш оригинальный фрагмент RDF является кодировкой аксиомы RDF.

EquivalentClasses (
Пример: restrictionClass
ObjectSomeValuesFrom (пример: resProp пример: resValue)
)

Это то что

example:restrictionClass owl:equivalentClass [
    rdf:type owl:Restriction;
    owl:onProperty example:resProp;
    owl:someValuesFrom example:resValue.
]

кодирует. пример: limitctionClass - это один и тот же IRI в обоих местах. Весь пустой узел является выражением класса ObjectSomeValuesFrom (пример: resProp пример: resValue). Тогда owl: эквивалента класса просто связывает два. Обратите внимание, что выражения не совпадают; классы, которые они обозначают, одинаковы. Сопоставление онтологий OWL и RDF приведено в разделе Язык веб-онтологий OWL 2: сопоставление с графами RDF (второе издание). В частности, посмотрите на Таблицу 1 в переводе 2.1 Аксиом без аннотаций, где вы найдете правила:

EquivalentClasses( CE1 ... CEn )
------------------------------------
T(CE1) owl:equivalentClass T(CE2) .
...
T(CEn-1) owl:equivalentClass T(CEn) . 

а также

ObjectSomeValuesFrom( OPE CE )
------------------------------
_:x rdf:type owl:Restriction .
_:x owl:onProperty T(OPE) .
_:x owl:someValuesFrom T(CE) . 

Когда вы идете в обратном направлении, вы можете прочитать в RDF и восстановить свою аксиому. Но подтвердите, что сопоставление позволяет вам делать аббревиатуру, о которой вы говорите, и у вас было две эквивалентные аксиомы класса. В результате вы получите неоднозначный RDF, поскольку у вас будет две совы: onProperty triples и две совы: someValuesFrom втрое.

Может быть, пример из арифметики поможет. Мы знаем, что 4, 2 + 2 и 1+3 - все выражения, обозначающие одно и то же число. Таким образом, мы можем иметь аксиомы:

  • 4 = 2 + 2
  • 4 = 1 + 3

Теперь предположим, что мы кодируем это в RDF что-то вроде:

:four :equals [ rdf:type :sum ; :left :two ; :right :two ] .
:four :equals [ rdf:type :sum ; :left :one ; :right :three ] .

Это хорошо, и мы можем восстановить 4 = 2 + 2 и 4 = 1 + 3 из этого. Теперь предположим, что мы попытались переместить эти свойства в : four, а не в пустой узел, связанный с помощью : equals. Мы бы в конечном итоге с:

:four rdf:type :sum .
:four :left  :two .
:four :right :two .
:four :left  :one .
:four :right :three .

Но какие аксиомы это должно представлять? У вас есть четыре способа выбора слева и справа от : четыре. Что из следующего должно быть закодировано?

  • 4 = 2 + 2
  • 4 = 2 + 3
  • 4 = 1 + 2
  • 4 = 1 + 3
Другие вопросы по тегам