-
Notifications
You must be signed in to change notification settings - Fork 0
/
hammers.dl
53 lines (38 loc) · 1.21 KB
/
hammers.dl
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
// Dichiarazione dei nomi
CONCEPT Object, Simple_Object, Complex_Object, Hammer;
CONCEPT Knoxel, Box_Shaped, Cylinder_Shaped;
CONCEPT Test3;
ROLE has_part, has_head, has_handle;
INDV wiesemann, bnd, bosch;
INDV titanium_head, rubber_head;
INDV wood_handle, rubber_handle;
INDV basket_ball, ball;
%%
// ABox
wiesemann, bnd, bosch : Hammer;
titanium_head, rubber_head : Box_Shaped;
wood_handle, rubber_handle : Cylinder_Shaped;
basket_ball : Simple_Object;
ball : Knoxel;
(wiesemann, titanium_head) , (bnd, rubber_head) , (bosch, titanium_head) : has_head;
(wiesemann, titanium_head) , (bnd, rubber_head) , (bosch, titanium_head) : has_part;
(wiesemann, wood_handle) , (bnd, rubber_handle) , (bosch, wood_handle) : has_handle;
(wiesemann, wood_handle) , (bnd, rubber_handle) , (bosch, wood_handle) : has_part;
(basket_ball, ball) : has_part;
%%
// TBox
Simple_Object SUBS Object;
Complex_Object SUBS Object;
Hammer SUBS Complex_Object;
Box_Shaped SUBS Knoxel;
Cylinder_Shaped SUBS Knoxel;
// Testing
EX has_head . Knoxel;
EX has_handle . Knoxel;
EX has_part . Knoxel;
ALL has_head . Knoxel;
ALL has_handle . Knoxel;
ALL has_part . Knoxel;
!Hammer = Test2;
Simple_Object == Test3;
(EX has_part . Knoxel) CONJ (!Hammer) = Test;