Зависимость свойств данных в Protege

Может ли кто-нибудь привести примеры зависимостей (если они есть) между свойствами данных, которые мы можем объявить в Protege? В основном то, что я пытаюсь сделать, это объявить простые правила, что, например, одно свойство данных (год) может или не может быть раньше другого (например, год рождения ‹= год смерти). Возможно ли это сделать с помощью свойств данных?


person Melon    schedule 14.11.2017    source источник
comment
В OWL нет понятия переменных, но лучше использовать правила SWRL.   -  person UninformedUser    schedule 14.11.2017


Ответы (1)


Единственными зависимостями, которые могут быть выражены между DataProperties, являются свойства подсвойства и несвязности. 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)

Удачи!

person Henriette Harmse    schedule 16.11.2017