-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy patharch1_1.metta
34 lines (26 loc) · 2.2 KB
/
arch1_1.metta
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
; (convert-to-metta-file arch1_1 $_420380 arch1/arch1_1.pl arch1/arch1_1.metta)
(= (input 1 example arch ((part part1) (part part2) (part part3) (isa part1 brick) (isa part2 brick) (isa part3 brick) (left-of part2 part1) (supports part1 part3) (supports part2 part3))) True)
; /********************************************************************/
; /* Each example is represented by a set of MeTTa facts. The arch */
; /* examples in Winston's book come out as follows: */
; /********************************************************************/
(= (input 2 near_miss arch ((part part1) (isa part2 brick) (part part2) (left-of part2 part1) (part part3) (isa part1 brick) (isa part3 brick))) True)
(= (input 3 near_miss arch ((part part1) (part part2) (part part3) (isa part1 brick) (isa part2 brick) (isa part3 brick) (left-of part2 part1) (touches part1 part2) (supports part1 part3) (supports part2 part3))) True)
(= (input 4 example arch ((part part1) (part part2) (part part3) (isa part1 brick) (isa part2 brick) (isa part3 wedge) (left-of part2 part1) (supports part1 part3) (supports part2 part3))) True)
(= (input 5 near_miss arch ((part part1) (part part2) (part part3) (isa part1 brick) (isa part2 brick) (isa part3 cylinder) (left-of part2 part1) (supports part1 part3) (supports part2 part3))) True)
(= (infer (touch $O1 $O2) (touch $O2 $O1)) True)
; /********************************************************************/
; /* background knowledge */
; /********************************************************************/
; /* infer - used during matching to try to infer facts that might */
; /* match. */
; /* Careful - match doesn't check for cycles in the inference chain. */
; /********************************************************************/
(= (infer (isa $Object $Type1) (isa $Object $Type2))
(set-det)
(ako $Type1 $Type2))
(= (ako brick parallel_epiphed) True)
; /********************************************************************/
; /* ako - represent taxonomies */
; /********************************************************************/
(= (ako wedge parallel_epiphed) True)