add examples

This commit is contained in:
josch 2011-02-15 00:51:24 +01:00
parent 3ef5287e6b
commit 24be58c5a9

70
examples/Family.het Normal file
View file

@ -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