-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtaxonomy.als
134 lines (83 loc) · 2.23 KB
/
taxonomy.als
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
module taxonomy
open MLTStar
open utils
sig TaxonomicRank in Order2Type {
}
one sig TaxonomicRankReified in Order3Type {
}
fact TaxonomicRankReifiedDefinition {
all e: Entity | e in TaxonomicRankReified iff (all e': Entity | iof[e',e] iff e' in TaxonomicRank)
}
sig Taxon in Order1Type {
taxonAuthor: Person
}
one sig TaxonReified in Order2Type {
}
fact TaxonReifiedDefinition {
all e: Entity | e in TaxonReified iff (all e': Entity | iof[e',e] iff e' in Taxon)
}
sig Species in Taxon {
population: Int,
status: String
}
one sig SpeciesReified in TaxonomicRank {
}
fact SpeciesReifiedDefinition {
all e: Entity | e in SpeciesReified iff (all e': Entity | iof[e',e] iff e' in Species)
}
sig AnimalSpecies in Species {
instancesAreWarmblooded: Boolean
}
one sig AnimalSpeciesReified in Order2Type {
}
fact AnimalSpeciesCategorizesAnimal {
categorizes[AnimalSpeciesReified,AnimalReified]
}
fact AnimalSpeciesReifiedDefinition {
all e: Entity | e in AnimalSpeciesReified iff (all e': Entity | iof[e',e] iff e' in AnimalSpecies)
}
fact instancesAreWarmbloodedRegulatesisWarmblooded {
all x: Animal, y: AnimalSpecies |
(iof[x,y] and some y.instancesAreWarmblooded) implies x.isWarmblooded = y.instancesAreWarmblooded
}
sig Organism in Individual {
weight: Int
}
one sig OrganismReified in Order1Type {
}
fact OrganismReifiedDefinition {
all e: Entity | e in OrganismReified iff (all e': Entity | iof[e',e] iff e' in Organism)
}
sig Person in Individual {
name: String
}
one sig PersonReified in Order1Type {
}
fact PersonReifiedDefinition {
all e: Entity | e in PersonReified iff (all e': Entity | iof[e',e] iff e' in Person)
}
sig Animal in Organism {
isWarmblooded: Boolean
}
one sig AnimalReified in Order1Type {
}
fact AnimalReifiedDefinition {
all e: Entity | e in AnimalReified iff (all e': Entity | iof[e',e] iff e' in Animal)
}
sig Lion in Animal {
}
one sig LionReified in AnimalSpecies {
}{ instancesAreWarmblooded = true
taxonAuthor = CarlLinnaeus
}
fact LionReifiedDefinition {
all e: Entity | e in LionReified iff (all e': Entity | iof[e',e] iff e' in Lion)
}
one sig Cecil in Lion {
}
one sig CarlLinnaeus in Person {
}{ name = "Carl Linnaeus"
}
fact disjointIndividuals {
disjoint[Cecil,CarlLinnaeus]
}