СуперСвойство Цепочки
Представьте, что даны следующие два отношения:
а (х, у)
б (у, г)
мы могли бы получить это:
с (х, г)
тогда это можно явно выразить в Protégé, добавив SuperProperty Of (Chain) для свойства c, например:
aob SubPropertyOf c
С этим выраженным, представьте, что мы знаем только:
а (х, у)
с (х, г)
как мы можем явно выразить, что мы также знаем:
б (у, г)
и это снова будет с SuperProperty Of (Chain), но для свойства b?
Я сначала подумал попробовать:
обратный (c) SubPropertyOf b
Этот протеже не любил, говоря, что был круг. Теперь я просто очень смущен.
2 ответа
Правильное выражение для b(y,z)
было бы inverse(a) o c SubPropertyOf b
, как вы хотите выразить, что путь свойства из y
в z
соответствует b
, Если у вас есть только эта аксиома, это должно дать вам необходимый вывод. Тем не менее, вы не могли бы использовать его вместе с первой аксиомой, a o b SubPropertyOf c
, В этом случае вы "определяете" c
с помощью b
в аксиоме с прямыми свойствами и тому b
с помощью c
в аксиоме с обратным свойством. Так что вы должны знать c
определить c
, Такие циклы запрещены в OWL 2 DL, поэтому Protege рассказывает вам о циклических определениях. В общем, вы можете иметь только одну из этих аксиом, но не обе из них одновременно.
Знание а и с не влечет за собой б. Это легко проиллюстрировать на классическом примере, определение дяди:
:hasUncle
rdf:type owl:ObjectProperty ;
owl:propertyChainAxiom (
:hasParent
:hasBrother
) .
Тогда если :David :hasParent :Mary
а также :Mary :hasBrother :John
рассудок DL действительно сделал бы вывод, что :David :hasUncle :John
, Но если мы утверждаем, что :David :hasUncle :John
а также :David :hasParent :Mary
, этого недостаточно, чтобы сделать вывод, что :Mary :hasBrother :John
, И действительно, Джон может быть братом другого родителя Марии.
Пожалуйста, обратите внимание, что в определении определения говорится, что цепочка свойств является дочерней собственностью :hasUncle
и не эквивалентное свойство. Так что, даже если вы утверждаете :hasParent
как функциональный, рассуждатель все равно не выведет b из a и c. Однако OWL2 не позволяет иметь эквивалентную комбинацию свойств объекта.
Цепочки собственности должны применяться с осторожностью. Например, в S1 º S2 º S3 º ... º Sn ⊑ R, R может находиться только на первом или последнем месте левой части выражения. Иначе это не будет решаемо. Это одно из ограничений для обычного RBox. И цепочки собственности, или, более формально, "Общее включение ролей" могут быть разрешены только в том случае, если они применяются к обычным RBox.