diff --git a/examples/Family.het b/examples/Family.het new file mode 100644 index 0000000..597e20f --- /dev/null +++ b/examples/Family.het @@ -0,0 +1,70 @@ +library DL/Family + +logic OWL + +%% some comment +spec FamilyBase = + Class: Person + Class: Female + Class: Woman EquivalentTo: Person and Female + Class: Man EquivalentTo: Person and not Woman + + ObjectProperty: hasChild + ObjectProperty: hasHusband + + Class: Mother EquivalentTo: Woman and hasChild some Person + Class: Father EquivalentTo: Man and hasChild some Person + Class: Parent EquivalentTo: Father or Mother + Class: Grandmother EquivalentTo: Mother and hasChild some Parent + Class: Wife EquivalentTo: Woman and hasHusband some Man + Class: Married + Class: MarriedMother EquivalentTo: Mother and Married + SubclassOf: Female and Person + Class: Hybrid EquivalentTo: Woman and Man + Individual: mary Types: Mother + Facts: + hasChild john + Individual: john Types: Father + Facts: + hasChild clara + Individual: clara +end + +spec NotConser = + FamilyBase +then %cons + Class: Hybrid EquivalentTo: Woman and not Man + Individual: mary Types: Grandmother +end + +spec Conser = + FamilyBase +then %cons + Class: Animal + + ObjectProperty: likesBones + + Class: Dog SubclassOf: likesBones some Animal +end + +spec Family = +FamilyBase +then %implies + Class: Mother SubclassOf: Parent + Individual: mary Types: Grandmother + Class: Man + EquivalentTo: Woman +end + +logic CASL + +spec LittleFamily = + FamilyBase +then + pred oneChildFamily : Thing * Thing * Thing + + forall a,b,c:Thing + . oneChildFamily (a,b,c) <=> Mother(a) /\ Father(b) /\ + hasHusband(a,b) /\ hasChild(a,c) /\ hasChild(b,c) /\ + (forall x : Thing . (hasChild(a,x) \/ hasChild(b,x)) => c = x) +end