Зачем использовать 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