tpmkms_4wp 9.5.1-beta.3 → 9.5.1-beta.31

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 (114) hide show
  1. package/common/animals.instance.json +21 -61
  2. package/common/asking.js +112 -102
  3. package/common/avatar.test.json +1001 -860
  4. package/common/can.instance.json +2174 -0
  5. package/common/can.js +254 -0
  6. package/common/can.test.json +51307 -0
  7. package/common/characters.js +3 -3
  8. package/common/colors.instance.json +10 -10
  9. package/common/comparable.instance.json +2 -2
  10. package/common/concept.js +19 -22
  11. package/common/concept.test.json +54 -40
  12. package/common/conjunction.js +13 -5
  13. package/common/conjunction.test.json +32 -42
  14. package/common/crew.instance.json +164 -150
  15. package/common/crew.js +1 -1
  16. package/common/currency.js +1 -1
  17. package/common/dateTimeSelectors.instance.json +2 -2
  18. package/common/dateTimeSelectors.js +3 -3
  19. package/common/dateTimeSelectors.test.json +76935 -35739
  20. package/common/dates.instance.json +3 -3
  21. package/common/dates.test.json +284 -287
  22. package/common/dialogues.js +41 -119
  23. package/common/dialogues.test.json +1171 -996
  24. package/common/dimension.instance.json +21374 -562
  25. package/common/dimension.js +145 -51
  26. package/common/dimension.test.json +8753 -3495
  27. package/common/drone.instance.json +23710 -0
  28. package/common/drone.js +429 -0
  29. package/common/drone.test.json +61113 -0
  30. package/common/edible.instance.json +23 -95
  31. package/common/emotions.instance.json +53 -80
  32. package/common/emotions.js +1 -1
  33. package/common/english_helpers.js +277 -67
  34. package/common/fastfood.instance.json +180 -372
  35. package/common/fastfood.js +4 -4
  36. package/common/fastfood.test.json +6970 -6829
  37. package/common/formulas.instance.json +1 -1
  38. package/common/gdefaults.js +94 -17
  39. package/common/help.js +11 -11
  40. package/common/help.test.json +65 -11
  41. package/common/helpers/concept.js +1 -1
  42. package/common/helpers/conjunction.js +54 -44
  43. package/common/helpers/dateTimeSelectors.js +2 -2
  44. package/common/helpers/dialogues.js +7 -2
  45. package/common/helpers/formulas.js +13 -11
  46. package/common/helpers/menus.js +12 -12
  47. package/common/helpers/meta.js +8 -8
  48. package/common/helpers/properties.js +104 -23
  49. package/common/helpers.js +114 -48
  50. package/common/hierarchy.js +6 -4
  51. package/common/kirk.instance.json +1 -1
  52. package/common/kirk.test.json +600 -424
  53. package/common/latin.instance.json +10 -10
  54. package/common/latin.js +5 -5
  55. package/common/length.instance.json +27612 -2890
  56. package/common/length.js +6 -1
  57. package/common/length.test.json +45315 -3925
  58. package/common/math.instance.json +20 -20
  59. package/common/math.js +45 -44
  60. package/common/menus.instance.json +6 -9
  61. package/common/menus.js +2 -9
  62. package/common/meta.js +50 -33
  63. package/common/nameable.js +13 -6
  64. package/common/nameable.test.json +436 -0
  65. package/common/numbers.js +1 -1
  66. package/common/ordering.instance.json +20 -30
  67. package/common/ordering.js +1 -1
  68. package/common/ordering.test.json +414 -426
  69. package/common/people.instance.json +82 -348
  70. package/common/people.js +1 -1
  71. package/common/people.test.json +952 -681
  72. package/common/pipboy.instance.json +16 -16
  73. package/common/pokemon.instance.json +8 -8
  74. package/common/pokemon.js +1 -1
  75. package/common/pressure.instance.json +3579 -1610
  76. package/common/pressure.test.json +433 -477
  77. package/common/properties.instance.json +6 -17
  78. package/common/properties.js +19 -6
  79. package/common/properties.test.json +8746 -6638
  80. package/common/rates.instance.json +59 -0
  81. package/common/rates.js +97 -0
  82. package/common/rates.test.json +27702 -0
  83. package/common/reminders.js +1 -1
  84. package/common/reminders.test.json +64635 -25787
  85. package/common/reports.instance.json +3 -3
  86. package/common/reports.js +18 -16
  87. package/common/scorekeeper.js +4 -4
  88. package/common/sdefaults.js +22 -2
  89. package/common/spock.instance.json +1 -1
  90. package/common/spock.test.json +606 -430
  91. package/common/stgame.js +1 -1
  92. package/common/stm.js +15 -4
  93. package/common/tell.js +1 -1
  94. package/common/temperature.instance.json +3786 -1705
  95. package/common/temperature.test.json +433 -477
  96. package/common/tester.js +3 -3
  97. package/common/time.instance.json +24762 -0
  98. package/common/time.js +137 -141
  99. package/common/time.test.json +31876 -3757
  100. package/common/tokenize.js +1 -1
  101. package/common/ui.instance.json +2 -5
  102. package/common/ui.js +1 -8
  103. package/common/weight.instance.json +10359 -4077
  104. package/common/weight.test.json +2601 -2263
  105. package/common/words.instance.json +9 -0
  106. package/common/words.js +53 -0
  107. package/common/words.test.json +2 -0
  108. package/common/wp.instance.json +336 -8
  109. package/common/wp.js +8 -4
  110. package/common/wp.test.json +7385 -6906
  111. package/main.js +4 -2
  112. package/package.json +18 -5
  113. package/common/listener.js +0 -50
  114. package/common/listener.test.json +0 -142
package/common/can.js ADDED
@@ -0,0 +1,254 @@
1
+ const { knowledgeModule, where } = require('./runtime').theprogrammablemind
2
+ const { defaultContextCheck, propertyToArray } = require('./helpers')
3
+ const hierarchy = require("./hierarchy")
4
+ const tests = require('./can.test.json')
5
+ const instance = require('./can.instance.json')
6
+
7
+ /*
8
+ you can make these coffees -> list of coffees
9
+ the coffees you can make are list of coffees
10
+ fred can fly these planes.
11
+ what can you make?
12
+ what can fred fly?
13
+ you can order a product
14
+ you can modify a document
15
+ what can you do
16
+ what can you do with a document
17
+ i order a product
18
+
19
+ fred bob and stan can make coffee
20
+ fred can make capucino bob americano and stan lattes
21
+ ask someone to make me an americano
22
+ who do I ask to make an american
23
+
24
+ have a way to convert from active to passive
25
+
26
+ DONE what can fred make
27
+ DONE can bob make coffee
28
+
29
+ DONE coffee can be made by joe
30
+ DONE who can coffee be made by
31
+ DONE who can make coffee and tea
32
+
33
+ DONE can bob make coffee
34
+ DONE what can bob make
35
+ */
36
+
37
+ const config = {
38
+ name: 'can',
39
+ operators: [
40
+ // "([can] (canableAction && context.infinitive))",
41
+ "((*) [canableAction] (*))",
42
+ "(<canStatement|can> (canableAction/0))",
43
+ "(<canQuestion|can> (canableAction/1))",
44
+ // what can joe make
45
+ "((*) [whatCanQuestion|can] (*) (canableAction))",
46
+ // who can coffee be made by
47
+ "((*) [whatCanQuestionPassive|can] (*) ([beCanPassive|be]) (canableAction) ([byCanPassive|by]))",
48
+ "((*) [canPassive|can] ([beCanPassive|be]) (canableAction) ([byCanPassive|by]) (*))",
49
+ ],
50
+ bridges: [
51
+ { id: 'beCanPassive' },
52
+ { id: 'byCanPassive' },
53
+ {
54
+ id: "canableAction",
55
+ isA: ['verb'],
56
+ },
57
+ {
58
+ id: "canStatement",
59
+ before: ['verb'],
60
+ bridge: "{ ...after[0], can: operator, verb: after[0], voice: 'active', interpolate: [{ property: 'can' }, { property: 'verb', context: { number: 'one' } }]}",
61
+ },
62
+ {
63
+ id: "canQuestion",
64
+ before: ['verb'],
65
+ bridge: "{ ...after[0], operator.form: 'infinitive', voice: 'active', truthValueOnly: true, query: true, can: operator, interpolate: append([{ property: 'can'}], after[0].interpolate)}",
66
+ },
67
+ {
68
+ // "((*) [canPassive|can] ([beCanPassive|be]) (canableAction) ([byCanPassive|by]) (*))",
69
+ id: "canPassive",
70
+ before: ['verb'],
71
+ bridge: [
72
+ // { "apply": true, "bridge": "{ ...after[1], can: operator, operator: after[1], interpolate: [{ property: 'can' }, { property: 'operator' }] }", "set": "operator" },
73
+ { "apply": true, "bridge": "{ ...after[1], can: operator, be: after[0], operator: after[1], by: after[2] }", "set": "operator" },
74
+ {
75
+ "rewire": [
76
+ { "from": 'before[0]', "to": 'after[0]' },
77
+ { "from": 'after[3]', "to": 'before[0]' },
78
+ ]
79
+ },
80
+ { "apply": true, "operator": "operator", "set": "context" },
81
+ { "apply": true, "bridge": "{ ...context, voice: 'passive', interpolate: [context.interpolate[2], { word: { marker: 'canPassive' } }, { word: { marker: 'beCanPassive' } }, context.interpolate[1], { word: { marker: 'byCanPassive' } }, context.interpolate[0]] }", "set": "context" },
82
+ // { "apply": true, "bridge": "{ ...context, interpolate: [context.interpolate[2], context.interpolate[0], context.interpolate[1]] }", set: "context" },
83
+ ],
84
+ },
85
+ {
86
+ // "((*) [whatCanQuestionPassive|can] (*) ([beCanPassive|be]) (canableAction) ([byCanPassive|by]))",
87
+ id: "whatCanQuestionPassive",
88
+ before: ['verb'],
89
+ bridge: [
90
+ // { "apply": true, "bridge": "{ ...after[1], can: operator, operator: after[1], interpolate: [{ property: 'can' }, { property: 'operator' }] }", "set": "operator" },
91
+ { "apply": true, "bridge": "{ ...after[2], can: operator, be: after[1], operator: after[2], by: after[3] }", "set": "operator" },
92
+ { "apply": true, "operator": "operator", "set": "context" },
93
+ { "apply": true, "bridge": "{ ...context, voice: 'passive', interpolate: [context.interpolate[0], { word: { marker: 'canPassive' } }, context.interpolate[2], { word: { marker: 'beCanPassive' } }, context.interpolate[1], { word: { marker: 'byCanPassive' } }] }", "set": "context" },
94
+ // { "apply": true, "bridge": "{ ...context, interpolate: [context.interpolate[2], context.interpolate[0], context.interpolate[1]] }", set: "context" },
95
+ ],
96
+ },
97
+ {
98
+ id: "whatCanQuestion",
99
+ before: ['verb'],
100
+ bridge: [
101
+ // { "apply": true, "bridge": "{ ...after[1], can: operator, operator: after[1], interpolate: [{ property: 'can' }, { property: 'operator' }] }", "set": "operator" },
102
+ { "apply": true, "bridge": "{ ...after[1], can: operator, voice: 'active', operator: after[1] }", "set": "operator" },
103
+ {
104
+ "rewire": [
105
+ { "from": 'before[0]', "to": 'after[0]' },
106
+ { "from": 'after[0]', "to": 'before[0]' },
107
+ ]
108
+ },
109
+ { "apply": true, "operator": "operator", "set": "context" },
110
+ { "apply": true, "bridge": "{ ...context, operator.form: 'infinitive', interpolate: [context.interpolate[2], { property: 'can' }, context.interpolate[0], context.interpolate[1]] }", "set": "context" },
111
+ // { "apply": true, "bridge": "{ ...context, interpolate: [context.interpolate[2], context.interpolate[0], context.interpolate[1]] }", set: "context" },
112
+ ],
113
+ },
114
+ ],
115
+ semantics: [
116
+ {
117
+ match: ({context}) => context.toVoice == 'passive',
118
+ apply: async ({g, context, fragmentMapper}) => {
119
+ for (const element of propertyToArray(context)) {
120
+ if (!element.voice) {
121
+ continue
122
+ }
123
+ if (element.voice === 'passive') {
124
+ continue
125
+ }
126
+ // From
127
+ // [{"property":"canSubject"},{"property":"operator","number":"canSubject"},{"property":"canObject"}]
128
+ element.interpolate = [
129
+ element.interpolate[2],
130
+ { word: { marker: "canPassive" } },
131
+ { word: { marker: "beCanPassive" } },
132
+ // { tense: "perfect", property: "verb" },
133
+ { semantic: [{ property: "verb" }, { overrides: { tense: "perfect", evaluateWord: true } }] },
134
+ { word: { marker: "byCanPassive" } },
135
+ element.interpolate[0],
136
+ ]
137
+ element.voice = 'passive'
138
+ }
139
+ }
140
+ },
141
+ {
142
+ match: ({context}) => context.toVoice == 'active',
143
+ apply: async ({g, context, fragmentMapper}) => {
144
+ // From
145
+ // [{"property":"canSubject"},{"property":"operator","number":"canSubject"},{"property":"canObject"}]
146
+ for (const element of propertyToArray(context)) {
147
+ if (!element.voice) {
148
+ continue
149
+ }
150
+ if (element.voice === 'active') {
151
+ continue
152
+ }
153
+ element.interpolate = [
154
+ element.interpolate[5],
155
+ { "word": { "marker": "canPassive" } },
156
+ // { "number": element.interpolate[5].property, "property": "operator" },
157
+ { semantic: [{ property: "operator" }, { overrides: { form: "infinitive", evaluateWord: true } }] },
158
+ element.interpolate[0],
159
+ ]
160
+ element.voice = 'active'
161
+ }
162
+ }
163
+ },
164
+ ],
165
+ };
166
+
167
+ const template = {
168
+ fragments: [
169
+ "canobject can be canverb by cansubject",
170
+ "cansubject can canverb canobject",
171
+ ],
172
+
173
+ configs: [
174
+ ({isProcess, isTesting, testModuleName, apis, config, addHierarchy}) => {
175
+ if (isProcess || isTesting) {
176
+ const api = apis('properties')
177
+ api.createActionPrefix({
178
+ before: [{tag: 'maker', id: 'maker'}],
179
+ operator: 'make',
180
+ after: [{tag: 'makeable', id: 'makeable'}],
181
+ relation: true,
182
+ flatten: true,
183
+ can: true,
184
+ create: [
185
+ {
186
+ id: 'make',
187
+ infinitive: 'make',
188
+ },
189
+ 'makeable',
190
+ 'maker'
191
+ ],
192
+ localHierarchy: [
193
+ ['unknown', 'maker'],
194
+ ['unknown', 'makeable'],
195
+ ],
196
+ config,
197
+ })
198
+ }
199
+ const api = apis('properties')
200
+ api.createActionPrefix({
201
+ before: [{tag: 'canSubject', id: 'canSubject'}],
202
+ operator: 'canVerb',
203
+ after: [{tag: 'canObject', id: 'canObject'}],
204
+ relation: true,
205
+ flatten: true,
206
+ can: true,
207
+ create: [
208
+ {
209
+ id: 'canVerb',
210
+ },
211
+ 'canObject',
212
+ 'canSubject'
213
+ ],
214
+ localHierarchy: [
215
+ ['unknown', 'canObject'],
216
+ ['unknown', 'canSubject'],
217
+ ],
218
+ config,
219
+ })
220
+ },
221
+ async ({fragments, addWordToDictionary}) => {
222
+ const fragment = await fragments("canobject can be canverb by cansubject")
223
+ // only run after rebuild template
224
+ if (fragment) {
225
+ const context = fragment.contexts()[0]
226
+ addWordToDictionary(context.be)
227
+ addWordToDictionary(context.by)
228
+ addWordToDictionary(context.can)
229
+ }
230
+ },
231
+ ]
232
+ }
233
+
234
+ knowledgeModule( {
235
+ config,
236
+ includes: [hierarchy],
237
+
238
+ module,
239
+ description: 'talk about what can be done',
240
+ test: {
241
+ name: './can.test.json',
242
+ contents: tests,
243
+ checks: {
244
+ context: [
245
+ defaultContextCheck({ extra: ['can', 'evalue', 'makeable', 'maker', 'operator', 'interpolate', 'number', 'property', 'word'] }),
246
+ ],
247
+ },
248
+ },
249
+ template: {
250
+ template,
251
+ instance,
252
+ },
253
+
254
+ })