tpmkms 8.0.0-beta.42 → 8.0.0-beta.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/common/animals.js +17 -20
  2. package/common/articles.js +6 -11
  3. package/common/avatar.js +5 -9
  4. package/common/characters.js +22 -26
  5. package/common/colors.instance.json +28 -0
  6. package/common/colors.js +4 -8
  7. package/common/comparable.js +5 -9
  8. package/common/concept.js +120 -124
  9. package/common/countable.js +5 -9
  10. package/common/crew.js +36 -41
  11. package/common/currency.js +25 -43
  12. package/common/dialogues.js +46 -49
  13. package/common/dimension.instance.json +8 -8
  14. package/common/dimension.js +7 -13
  15. package/common/edible.instance.json +112 -0
  16. package/common/edible.js +3 -8
  17. package/common/emotions.js +35 -38
  18. package/common/evaluate.js +5 -11
  19. package/common/events.js +6 -10
  20. package/common/fastfood.instance.json +401 -317
  21. package/common/fastfood.js +53 -63
  22. package/common/formulas.instance.json +10 -10
  23. package/common/formulas.js +7 -14
  24. package/common/gdefaults.js +8 -10
  25. package/common/help.js +7 -12
  26. package/common/hierarchy.js +8 -12
  27. package/common/javascript.js +7 -14
  28. package/common/kirk.js +5 -8
  29. package/common/length.js +4 -8
  30. package/common/listener.js +5 -11
  31. package/common/math.instance.json +16 -16
  32. package/common/math.js +6 -10
  33. package/common/meta.js +5 -22
  34. package/common/nameable.js +6 -13
  35. package/common/negation.js +5 -5
  36. package/common/numbers.js +5 -9
  37. package/common/ordering.instance.json +68 -0
  38. package/common/ordering.js +80 -86
  39. package/common/people.js +8 -12
  40. package/common/percentages.js +5 -9
  41. package/common/pipboy.instance.json +84 -28
  42. package/common/pipboy.js +7 -15
  43. package/common/pokemon.js +7 -20
  44. package/common/pos.js +4 -5
  45. package/common/pressure.js +4 -8
  46. package/common/properties.js +6 -12
  47. package/common/punctuation.js +5 -5
  48. package/common/reports.instance.json +1 -1
  49. package/common/reports.js +9 -14
  50. package/common/scorekeeper.js +8 -12
  51. package/common/sdefaults.js +4 -5
  52. package/common/sizeable.js +5 -9
  53. package/common/spock.js +5 -8
  54. package/common/stgame.js +18 -23
  55. package/common/stm.js +9 -15
  56. package/common/tell.js +9 -13
  57. package/common/temperature.instance.json +0 -112
  58. package/common/temperature.js +4 -8
  59. package/common/tester.js +1 -1
  60. package/common/testing.js +5 -9
  61. package/common/time.js +18 -23
  62. package/common/tokenize.js +4 -5
  63. package/common/ui.js +6 -12
  64. package/common/weight.js +4 -8
  65. package/common/yesno.js +5 -5
  66. package/package.json +2 -2
@@ -59,7 +59,7 @@
59
59
  "development": true
60
60
  },
61
61
  {
62
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:32",
62
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
63
63
  "id": "plusOperator",
64
64
  "level": 0,
65
65
  "bridge": "{ ...next(operator), marker: next(operator('plusExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }",
@@ -80,7 +80,7 @@
80
80
  "generatorp": "({context}) => context.word"
81
81
  },
82
82
  {
83
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:44",
83
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
84
84
  "id": "plusExpression",
85
85
  "level": 0,
86
86
  "bridge": "{ ...next(operator) }",
@@ -91,7 +91,7 @@
91
91
  "evaluator": "async ({e, context}) => {\n const x = toValue(await e(context.x)) \n const y = toValue(await e(context.y))\n if (!x || !y) {\n // context.evalue = { ...context, paraphrase: true, x: { ...context.x, value: x }, y: { ...context.y, value: y } }\n context.isResponse = false\n } else {\n context.evalue = apply(x, y)\n context.evalue.isResponse = true\n context.evalue.paraphrase = false\n // context.paraphrase = false\n // context.isResponse = true\n }\n /*\n if (!context.value) {\n context.isResponse = false\n context.paraphrase = true\n }\n */\n }"
92
92
  },
93
93
  {
94
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:32",
94
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
95
95
  "id": "minusOperator",
96
96
  "level": 0,
97
97
  "bridge": "{ ...next(operator), marker: next(operator('minusExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }",
@@ -112,7 +112,7 @@
112
112
  "generatorp": "({context}) => context.word"
113
113
  },
114
114
  {
115
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:44",
115
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
116
116
  "id": "minusExpression",
117
117
  "level": 0,
118
118
  "bridge": "{ ...next(operator) }",
@@ -123,7 +123,7 @@
123
123
  "evaluator": "async ({e, context}) => {\n const x = toValue(await e(context.x)) \n const y = toValue(await e(context.y))\n if (!x || !y) {\n // context.evalue = { ...context, paraphrase: true, x: { ...context.x, value: x }, y: { ...context.y, value: y } }\n context.isResponse = false\n } else {\n context.evalue = apply(x, y)\n context.evalue.isResponse = true\n context.evalue.paraphrase = false\n // context.paraphrase = false\n // context.isResponse = true\n }\n /*\n if (!context.value) {\n context.isResponse = false\n context.paraphrase = true\n }\n */\n }"
124
124
  },
125
125
  {
126
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:32",
126
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
127
127
  "id": "timesOperator",
128
128
  "level": 0,
129
129
  "bridge": "{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }",
@@ -153,7 +153,7 @@
153
153
  "generatorp": "({context}) => context.word"
154
154
  },
155
155
  {
156
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:44",
156
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
157
157
  "id": "timesExpression",
158
158
  "level": 0,
159
159
  "bridge": "{ ...next(operator) }",
@@ -164,7 +164,7 @@
164
164
  "evaluator": "async ({e, context}) => {\n const x = toValue(await e(context.x)) \n const y = toValue(await e(context.y))\n if (!x || !y) {\n // context.evalue = { ...context, paraphrase: true, x: { ...context.x, value: x }, y: { ...context.y, value: y } }\n context.isResponse = false\n } else {\n context.evalue = apply(x, y)\n context.evalue.isResponse = true\n context.evalue.paraphrase = false\n // context.paraphrase = false\n // context.isResponse = true\n }\n /*\n if (!context.value) {\n context.isResponse = false\n context.paraphrase = true\n }\n */\n }"
165
165
  },
166
166
  {
167
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:32",
167
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
168
168
  "id": "divideByOperator",
169
169
  "level": 0,
170
170
  "bridge": "{ ...next(operator), marker: next(operator('divideByExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }",
@@ -193,7 +193,7 @@
193
193
  "generatorp": "({context}) => context.word"
194
194
  },
195
195
  {
196
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:44",
196
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
197
197
  "id": "divideByExpression",
198
198
  "level": 0,
199
199
  "bridge": "{ ...next(operator) }",
@@ -770,7 +770,7 @@
770
770
  "development": true
771
771
  },
772
772
  {
773
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:32",
773
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
774
774
  "id": "plusOperator",
775
775
  "level": 0,
776
776
  "bridge": "{ ...next(operator), marker: next(operator('plusExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }",
@@ -790,7 +790,7 @@
790
790
  ]
791
791
  },
792
792
  {
793
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:44",
793
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
794
794
  "id": "plusExpression",
795
795
  "level": 0,
796
796
  "bridge": "{ ...next(operator) }",
@@ -799,7 +799,7 @@
799
799
  ]
800
800
  },
801
801
  {
802
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:32",
802
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
803
803
  "id": "minusOperator",
804
804
  "level": 0,
805
805
  "bridge": "{ ...next(operator), marker: next(operator('minusExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }",
@@ -819,7 +819,7 @@
819
819
  ]
820
820
  },
821
821
  {
822
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:44",
822
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
823
823
  "id": "minusExpression",
824
824
  "level": 0,
825
825
  "bridge": "{ ...next(operator) }",
@@ -828,7 +828,7 @@
828
828
  ]
829
829
  },
830
830
  {
831
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:32",
831
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
832
832
  "id": "timesOperator",
833
833
  "level": 0,
834
834
  "bridge": "{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }",
@@ -857,7 +857,7 @@
857
857
  ]
858
858
  },
859
859
  {
860
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:44",
860
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
861
861
  "id": "timesExpression",
862
862
  "level": 0,
863
863
  "bridge": "{ ...next(operator) }",
@@ -866,7 +866,7 @@
866
866
  ]
867
867
  },
868
868
  {
869
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:32",
869
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
870
870
  "id": "divideByOperator",
871
871
  "level": 0,
872
872
  "bridge": "{ ...next(operator), marker: next(operator('divideByExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }",
@@ -894,7 +894,7 @@
894
894
  ]
895
895
  },
896
896
  {
897
- "where": "/home/dev/code/theprogrammablemind/kms/common/math.js:44",
897
+ "where": "/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/helpers.js:5",
898
898
  "id": "divideByExpression",
899
899
  "level": 0,
900
900
  "bridge": "{ ...next(operator) }",
package/common/math.js CHANGED
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, where } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const dialogues = require('./dialogues')
4
4
  const numbers = require('./numbers')
@@ -69,7 +69,7 @@ const mathematicalOperator = (name, words, apply, before = []) => [
69
69
  }
70
70
  ]
71
71
 
72
- let configStruct = {
72
+ let config = {
73
73
  name: 'math',
74
74
  operators: [
75
75
  "([mathematicalExpression])",
@@ -108,20 +108,16 @@ let configStruct = {
108
108
  const template = {
109
109
  configs: [
110
110
  "mathematical modifies operator",
111
- configStruct,
111
+ config,
112
112
  // "* + / and - are mathematical operators",
113
113
  ]
114
114
  }
115
115
 
116
- const createConfig = async () => {
117
- const config = new Config({ name: 'math' }, module)
118
- await config.add(numbers, dialogues, punctuation, countable, comparable)
119
- return config
120
- }
121
-
122
116
  knowledgeModule( {
117
+ config: { name: 'math' },
118
+ includes: [numbers, dialogues, punctuation, countable, comparable],
119
+
123
120
  module,
124
- createConfig,
125
121
  description: 'talking about math',
126
122
  template: { template, instance },
127
123
  test: {
package/common/meta.js CHANGED
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, ensureTestFile, where, unflatten, flattens } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, ensureTestFile, where, unflatten, flattens } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const _ = require('lodash')
4
4
  const gdefaults = require('./gdefaults.js')
@@ -17,7 +17,7 @@ const template = {
17
17
  };
18
18
 
19
19
  // TODO -> if a car's top speed is over 200 mph then the car is fast
20
- let configStruct = {
20
+ let config = {
21
21
  name: 'meta',
22
22
  operators: [
23
23
  "((phrase) [means] (phrase))",
@@ -371,29 +371,12 @@ let configStruct = {
371
371
  ],
372
372
  };
373
373
 
374
- const createConfig = async () => {
375
- const config = new Config(configStruct, module)
376
- config.stop_auto_rebuild()
377
- await config.add(gdefaults)
378
-
379
- await config.initializer( ({config, addGenerator, isModule}) => {
380
- if (!isModule) {
381
- addGenerator({
382
- where: where(),
383
- match: ({context}) => context.marker == 'unknown',
384
- apply: ({context}) => `${context.word}`
385
- })
386
- }
387
- })
388
-
389
- await config.restart_auto_rebuild()
390
- return config
391
- }
392
-
393
374
  knowledgeModule({
375
+ config,
376
+ includes: [gdefaults],
377
+
394
378
  module,
395
379
  description: 'Ways of defining new language elements',
396
- createConfig,
397
380
  test: {
398
381
  name: './meta.test.json',
399
382
  contents: meta_tests,
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, where } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const helpers = require('./helpers')
4
4
  const stm = require('./stm')
@@ -70,7 +70,7 @@ class API {
70
70
 
71
71
  const api = new API()
72
72
 
73
- const configStruct = {
73
+ const config = {
74
74
  name: 'nameable',
75
75
  operators: [
76
76
  "([call] ([nameable]) (name))",
@@ -117,20 +117,13 @@ const configStruct = {
117
117
  ]
118
118
  }
119
119
 
120
- let createConfig = async () => {
121
- const config = new Config(configStruct, module)
122
- config.stop_auto_rebuild()
123
- await config.setApi(api)
124
- await config.add(stm)
125
-
126
- await config.restart_auto_rebuild()
127
- return config
128
- }
129
-
130
120
  knowledgeModule( {
121
+ config,
122
+ api: () => new API(),
123
+ includes: [stm],
124
+
131
125
  module,
132
126
  description: 'namable objects',
133
- createConfig,
134
127
  test: {
135
128
  name: './nameable.test.json',
136
129
  contents: nameable_tests,
@@ -1,10 +1,10 @@
1
- const { Config, knowledgeModule, where } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where } = require('./runtime').theprogrammablemind
2
2
  const { words, defaultContextCheck } = require('./helpers')
3
3
  const gdefaults = require('./gdefaults')
4
4
  const pos = require('./pos')
5
5
  const negation_tests = require('./negation.test.json')
6
6
 
7
- let configStruct = {
7
+ let config = {
8
8
  name: 'negation',
9
9
  operators: [
10
10
  "([negatable])",
@@ -21,11 +21,11 @@ let configStruct = {
21
21
  ],
22
22
  };
23
23
 
24
- const createConfig = async () => new Config(configStruct, module).add(gdefaults, pos)
25
-
26
24
  knowledgeModule( {
25
+ config,
26
+ includes: [gdefaults, pos],
27
+
27
28
  module,
28
- createConfig,
29
29
  description: 'negation',
30
30
  test: {
31
31
  name: './negation.test.json',
package/common/numbers.js CHANGED
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, where } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const numbers_tests = require('./numbers.test.json')
4
4
  const gdefaults = require('./gdefaults')
@@ -10,7 +10,7 @@ const sdefaults = require('./sdefaults')
10
10
  10 million 300 hundred and fifty
11
11
  */
12
12
 
13
- let configStruct = {
13
+ let config = {
14
14
  name: 'numbers',
15
15
  operators: [
16
16
  "([number])",
@@ -83,15 +83,11 @@ let configStruct = {
83
83
  ],
84
84
  };
85
85
 
86
- const createConfig = async () => {
87
- const config = new Config(configStruct, module)
88
- await config.add(gdefaults, sdefaults)
89
- return config
90
- }
91
-
92
86
  knowledgeModule( {
87
+ config,
88
+ includes: [gdefaults, sdefaults],
89
+
93
90
  module,
94
- createConfig,
95
91
  description: 'talking about numbers',
96
92
  test: {
97
93
  name: './numbers.test.json',
@@ -2027,6 +2027,40 @@
2027
2027
  0
2028
2028
  ]
2029
2029
  ],
2030
+ [
2031
+ [
2032
+ "if",
2033
+ 0
2034
+ ],
2035
+ [
2036
+ "like",
2037
+ 0
2038
+ ],
2039
+ [
2040
+ "love",
2041
+ 0
2042
+ ],
2043
+ [
2044
+ "orList",
2045
+ 0
2046
+ ],
2047
+ [
2048
+ "then",
2049
+ 0
2050
+ ],
2051
+ [
2052
+ "unknown",
2053
+ 0
2054
+ ],
2055
+ [
2056
+ "unknown",
2057
+ 1
2058
+ ],
2059
+ [
2060
+ "want",
2061
+ 0
2062
+ ]
2063
+ ],
2030
2064
  [
2031
2065
  [
2032
2066
  "if",
@@ -2388,6 +2422,40 @@
2388
2422
  0
2389
2423
  ]
2390
2424
  ],
2425
+ [
2426
+ [
2427
+ "if",
2428
+ 0
2429
+ ],
2430
+ [
2431
+ "like",
2432
+ 0
2433
+ ],
2434
+ [
2435
+ "love",
2436
+ 0
2437
+ ],
2438
+ [
2439
+ "orList",
2440
+ 0
2441
+ ],
2442
+ [
2443
+ "then",
2444
+ 0
2445
+ ],
2446
+ [
2447
+ "unknown",
2448
+ 0
2449
+ ],
2450
+ [
2451
+ "unknown",
2452
+ 1
2453
+ ],
2454
+ [
2455
+ "want",
2456
+ 0
2457
+ ]
2458
+ ],
2391
2459
  [
2392
2460
  [
2393
2461
  "if",
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, where } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const hierarchy = require('./hierarchy')
4
4
  const ordering_tests = require('./ordering.test.json')
@@ -32,96 +32,90 @@ const api = new API();
32
32
 
33
33
  if a likes b then a wants b
34
34
  */
35
- const createConfig = async () => {
36
- const config = new Config({ name: 'ordering' }, module)
37
- config.stop_auto_rebuild()
38
- await config.setApi(api)
39
- await config.add(hierarchy)
40
- // config.load(template, ordering_instance)
41
-
42
- await config.initializer(({config, km}) => {
43
- const oapi = km('ordering').api
44
- oapi.createOrdering({ name: 'preference', categories: [ ['love', 'like'], ['hate', 'dislike'] ], ordering: [ ['love', 'like'], ['like', 'dislike'], ['dislike', 'hate'] ] })
45
- const papi = km('properties').api
46
- // want is xfx between wanter and wantee
47
- // papi.createBinaryRelation(config, 'want', ['want', 'wants'], 'wanter', 'wantee')
48
- papi.createActionPrefix({
49
- operator: 'love',
50
- create: ['love'],
51
- before: [{tag: 'lover', id: 'object'}],
52
- after: [{tag: 'lovee', id: 'object'}],
53
- ordering: {
54
- name: 'preference',
55
- marker: 'love',
56
- object: 'lover',
57
- category: 'lovee',
58
- },
59
- doAble: true,
60
- config
61
- })
62
- papi.createActionPrefix({
63
- operator: 'like',
64
- create: ['like'],
65
- before: [{tag: 'liker', id: 'object'}],
66
- after: [{tag: 'likee', id: 'object'}],
67
- ordering: {
68
- name: 'preference',
69
- marker: 'like',
70
- object: 'liker',
71
- category: 'likee',
72
- },
73
- doAble: true,
74
- config
75
- })
76
- papi.createActionPrefix({
77
- operator: 'dislike',
78
- create: ['dislike'],
79
- before: [{tag: 'disliker', id: 'object'}],
80
- after: [{tag: 'dislikee', id: 'object'}],
81
- ordering: {
82
- name: 'preference',
83
- marker: 'dislike',
84
- object: 'disliker',
85
- category: 'dislikee',
86
- },
87
- doAble: true,
88
- config
89
- })
90
- papi.createActionPrefix({
91
- // pattern: [ {tag: 'hater', id: 'object'}, { operator, create: true, relation: true }, {tag: 'hatee', id: 'object'} ],
92
- operator: 'hate',
93
- create: ['hate'],
94
- before: [{tag: 'hater', id: 'object'}],
95
- after: [{tag: 'hatee', id: 'object'}],
96
- ordering: {
97
- name: 'preference',
98
- marker: 'hate',
99
- object: 'hater',
100
- category: 'hatee',
101
- },
102
- doAble: true,
103
- // negation: 'likes',
104
- config
105
- })
106
- /*
107
- papi.createActionPrefix({
108
- operator: 'own',
109
- create: ['own'],
110
- before: [{tag: 'owner', id: 'object'}],
111
- after: [{tag: 'ownee', id: 'object'}],
112
- relation: true,
113
- config
114
- })
115
- */
116
- })
117
- await config.restart_auto_rebuild()
118
- return config
35
+ const initializer = ({config, km}) => {
36
+ const oapi = km('ordering').api
37
+ oapi.createOrdering({ name: 'preference', categories: [ ['love', 'like'], ['hate', 'dislike'] ], ordering: [ ['love', 'like'], ['like', 'dislike'], ['dislike', 'hate'] ] })
38
+ const papi = km('properties').api
39
+ // want is xfx between wanter and wantee
40
+ // papi.createBinaryRelation(config, 'want', ['want', 'wants'], 'wanter', 'wantee')
41
+ papi.createActionPrefix({
42
+ operator: 'love',
43
+ create: ['love'],
44
+ before: [{tag: 'lover', id: 'object'}],
45
+ after: [{tag: 'lovee', id: 'object'}],
46
+ ordering: {
47
+ name: 'preference',
48
+ marker: 'love',
49
+ object: 'lover',
50
+ category: 'lovee',
51
+ },
52
+ doAble: true,
53
+ config
54
+ })
55
+ papi.createActionPrefix({
56
+ operator: 'like',
57
+ create: ['like'],
58
+ before: [{tag: 'liker', id: 'object'}],
59
+ after: [{tag: 'likee', id: 'object'}],
60
+ ordering: {
61
+ name: 'preference',
62
+ marker: 'like',
63
+ object: 'liker',
64
+ category: 'likee',
65
+ },
66
+ doAble: true,
67
+ config
68
+ })
69
+ papi.createActionPrefix({
70
+ operator: 'dislike',
71
+ create: ['dislike'],
72
+ before: [{tag: 'disliker', id: 'object'}],
73
+ after: [{tag: 'dislikee', id: 'object'}],
74
+ ordering: {
75
+ name: 'preference',
76
+ marker: 'dislike',
77
+ object: 'disliker',
78
+ category: 'dislikee',
79
+ },
80
+ doAble: true,
81
+ config
82
+ })
83
+ papi.createActionPrefix({
84
+ // pattern: [ {tag: 'hater', id: 'object'}, { operator, create: true, relation: true }, {tag: 'hatee', id: 'object'} ],
85
+ operator: 'hate',
86
+ create: ['hate'],
87
+ before: [{tag: 'hater', id: 'object'}],
88
+ after: [{tag: 'hatee', id: 'object'}],
89
+ ordering: {
90
+ name: 'preference',
91
+ marker: 'hate',
92
+ object: 'hater',
93
+ category: 'hatee',
94
+ },
95
+ doAble: true,
96
+ // negation: 'likes',
97
+ config
98
+ })
99
+ /*
100
+ papi.createActionPrefix({
101
+ operator: 'own',
102
+ create: ['own'],
103
+ before: [{tag: 'owner', id: 'object'}],
104
+ after: [{tag: 'ownee', id: 'object'}],
105
+ relation: true,
106
+ config
107
+ })
108
+ */
119
109
  }
120
110
 
121
111
  knowledgeModule( {
112
+ config: { name: 'ordering' },
113
+ api: () => new API(),
114
+ includes: [hierarchy],
115
+ initializer,
116
+
122
117
  module,
123
118
  description: 'ordering related concepts',
124
- createConfig,
125
119
  test: {
126
120
  name: './ordering.test.json',
127
121
  heck: ['children', 'concept', 'parents', 'properties'],
package/common/people.js CHANGED
@@ -1,4 +1,4 @@
1
- const { Config, knowledgeModule, where } = require('./runtime').theprogrammablemind
1
+ const { knowledgeModule, where } = require('./runtime').theprogrammablemind
2
2
  const { defaultContextCheck } = require('./helpers')
3
3
  const hierarchy = require('./hierarchy')
4
4
  const people_tests = require('./people.test.json')
@@ -25,7 +25,7 @@ const template = {
25
25
  // "wendy owns cleo",
26
26
  ],
27
27
  }
28
- let configStruct = {
28
+ let config = {
29
29
  name: 'people',
30
30
  operators: [
31
31
  "([person|person,people])",
@@ -45,11 +45,7 @@ let configStruct = {
45
45
  ],
46
46
  };
47
47
 
48
- const createConfig = async () => {
49
- const config = new Config(configStruct, module)
50
- config.stop_auto_rebuild()
51
- await config.add(hierarchy)
52
- await config.initializer( ({baseConfig, context, apis, isModule}) => {
48
+ const initializer = ({baseConfig, context, apis, isModule}) => {
53
49
  // const api = km('properties').api
54
50
  const api = apis('properties')
55
51
  // setup paraphrase
@@ -65,15 +61,15 @@ const createConfig = async () => {
65
61
  edAble: { operator: 'owned', word: 'owned' },
66
62
  config: baseConfig
67
63
  })
68
- })
69
- await config.restart_auto_rebuild()
70
- return config
71
- }
64
+ }
72
65
 
73
66
  knowledgeModule( {
67
+ config,
68
+ includes: [hierarchy],
69
+ initializer,
70
+
74
71
  module,
75
72
  description: 'about people',
76
- createConfig,
77
73
  test: {
78
74
  name: './people.test.json',
79
75
  contents: people_tests,