Зависимость свойств данных в Protege
Может ли кто-нибудь предоставить примеры того, какие (если таковые имеются) зависимости между свойствами данных мы можем объявить в Protege? По сути, я пытаюсь объявить простые правила, например, что одно свойство данных (год) может быть или не быть раньше другого (например, год рождения <= год смерти). Возможно ли это сделать с помощью свойств данных?
1 ответ
Единственные зависимости, которые могут быть выражены между DataProperties, это свойства subproperty и disjointness. SWRLTab в Protege может быть использован для выражения правил. Предполагая следующую онтологию:
ObjectProperty: hasDeathCertificate
Domain: Person
Range: DeathCertificate
DataProperty: dateOfBirth
Domain: Person
Range: xsd:dateTime
DataProperty: dateOfDeath
Domain: DeathCertificate
Range: xsd:dateTime
Class: DeathCertificate
Class: Person
следующее правило SWRL может быть указано, чтобы гарантировать, что дата смерти в сертификате DeathCertificate будет после даты рождения человека.
Person(?p)^dateOfBirth(?p, ?birth)^DeathCertificate(?d)^dateOfDeath(?p, ?death)
^swrlb:greaterThan(?death, ?birth)->hasDeathCertificate(?p, ?d)
Удачи!