add examples
This commit is contained in:
parent
3ef5287e6b
commit
24be58c5a9
1 changed files with 70 additions and 0 deletions
70
examples/Family.het
Normal file
70
examples/Family.het
Normal 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
|
Loading…
Reference in a new issue