-
Notifications
You must be signed in to change notification settings - Fork 68
Expand file tree
/
Copy pathaddition.yaml
More file actions
321 lines (321 loc) · 13.8 KB
/
addition.yaml
File metadata and controls
321 lines (321 loc) · 13.8 KB
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
addition:
format: ModECI MDF v0.4
generating_application: Python modeci-mdf v0.4.14
graphs:
addition_graph:
nodes:
declarative_memory:
input_ports:
dm_input: {}
parameters:
chunks:
value:
- name: zero
isa: number
number: zero
next: one
- name: one
isa: number
number: one
next: two
- name: two
isa: number
number: two
next: three
- name: three
isa: number
number: three
next: four
- name: four
isa: number
number: four
next: five
- name: five
isa: number
number: five
next: six
- name: six
isa: number
number: six
next: seven
- name: seven
isa: number
number: seven
next: eight
- name: eight
isa: number
number: eight
next: nine
- name: nine
isa: number
number: nine
next: ten
- name: ten
isa: number
number: ten
- name: second-goal
ISA: add
arg1: five
arg2: two
sum: nil
count: nil
chunk_types:
value:
number:
- number
- next
add:
- arg1
- arg2
- sum
- count
retrieve_chunk:
function: retrieve_chunk
args:
pattern: dm_input
dm_chunks: chunks
types: chunk_types
output_ports:
dm_output:
value: retrieve_chunk
retrieval_buffer:
input_ports:
retrieval_input: {}
output_ports:
retrieval_output:
value: retrieval_input
goal_buffer:
input_ports:
goal_input: {}
parameters:
first_goal:
value:
name: second-goal
ISA: add
arg1: five
arg2: two
sum: nil
count: nil
change_goal:
function: change_goal
args:
pattern: goal_input
curr_goal: goal_state
goal_state:
value: first_goal if goal_input == {} else change_goal
default_initial_value: first_goal
output_ports:
goal_output:
value: goal_state
procedural_memory:
parameters:
productions:
value:
- name: initialize-addition
lhs:
- buffer: goal
ISA: add
arg1: =num1
arg2: =num2
sum: nil
count: =count
rhs:
- buffer: goal
ISA: add
sum: =num1
count: zero
- buffer: retrieval
ISA: number
number: =num1
- name: terminate-addition
lhs:
- buffer: goal
ISA: add
arg1: =arg1
arg2: =num
sum: =answer
count: =num
- buffer: retrieval
ISA: number
number: =answer
next: =next
rhs:
- buffer: goal
ISA: add
count: nil
- name: increment-count
lhs:
- buffer: goal
ISA: add
arg1: =arg1
arg2: =arg2
sum: =sum
count: =count
- buffer: retrieval
ISA: number
number: =count
next: =newcount
rhs:
- buffer: goal
ISA: add
count: =newcount
- buffer: retrieval
ISA: number
number: =sum
- name: increment-sum
lhs:
- buffer: goal
ISA: add
arg1: =arg1
arg2: -=count
sum: =sum
count: =count
- buffer: retrieval
ISA: number
number: =sum
next: =newsum
rhs:
- buffer: goal
ISA: add
sum: =newsum
- buffer: retrieval
ISA: number
number: =count
output_ports:
pm_output:
value: productions
pattern_matching:
input_ports:
pattern_input_from_pm: {}
pattern_input_from_goal: {}
pattern_input_from_retrieval: {}
parameters:
pattern_matching_function:
function: pattern_matching_function
args:
productions: pattern_input_from_pm
goal: pattern_input_from_goal
retrieval: pattern_input_from_retrieval
output_ports:
pattern_output:
value: pattern_matching_function
conflict_resolution:
input_ports:
conflict_input: {}
parameters:
conflict_resolution_function:
function: conflict_resolution_function
args:
productions: conflict_input
output_ports:
conflict_output_to_fire_prod:
value: conflict_resolution_function
conflict_output_to_check:
value: conflict_resolution_function
fire_production:
input_ports:
fire_prod_input: {}
parameters:
update_goal:
function: update_goal
args:
production: fire_prod_input
update_retrieval:
function: update_retrieval
args:
production: fire_prod_input
output_ports:
fire_prod_output_to_goal:
value: update_goal
fire_prod_output_to_retrieval:
value: update_retrieval
check_termination:
input_ports:
check_input: {}
parameters:
check_termination:
function: check_termination
args:
production: check_input
output_ports:
check_output:
value: check_termination
edges:
dm_to_pattern_edge:
sender: declarative_memory
receiver: retrieval_buffer
sender_port: dm_output
receiver_port: retrieval_input
retrieval_to_pattern_edge:
sender: retrieval_buffer
receiver: pattern_matching
sender_port: retrieval_output
receiver_port: pattern_input_from_retrieval
goal_to_pattern_edge:
sender: goal_buffer
receiver: pattern_matching
sender_port: goal_output
receiver_port: pattern_input_from_goal
pm_to_pattern_edge:
sender: procedural_memory
receiver: pattern_matching
sender_port: pm_output
receiver_port: pattern_input_from_pm
pattern_to_conflict_edge:
sender: pattern_matching
receiver: conflict_resolution
sender_port: pattern_output
receiver_port: conflict_input
conflict_to_fire_prod_edge:
sender: conflict_resolution
receiver: fire_production
sender_port: conflict_output_to_fire_prod
receiver_port: fire_prod_input
conflict_to_check_edge:
sender: conflict_resolution
receiver: check_termination
sender_port: conflict_output_to_fire_prod
receiver_port: check_input
conditions:
node_specific:
declarative_memory:
type: Always
kwargs: {}
retrieval_buffer:
type: JustRan
kwargs:
dependencies: declarative_memory
goal_buffer:
type: Always
kwargs: {}
procedural_memory:
type: Always
kwargs: {}
pattern_matching:
type: And
kwargs:
dependencies:
- type: EveryNCalls
kwargs:
dependencies: retrieval_buffer
n: 1
- type: EveryNCalls
kwargs:
dependencies: goal_buffer
n: 1
- type: EveryNCalls
kwargs:
dependencies: declarative_memory
n: 1
conflict_resolution:
type: JustRan
kwargs:
dependencies: pattern_matching
fire_production:
type: JustRan
kwargs:
dependencies: conflict_resolution
check_termination:
type: JustRan
kwargs:
dependencies: conflict_resolution