tpmkms_4wp 8.0.0-beta.7 → 8.0.0-beta.71
Sign up to get free protection for your applications and to get access to all the features.
- package/common/animals.instance.json +2871 -1379
- package/common/animals.js +17 -20
- package/common/articles.js +103 -0
- package/common/articles.test.json +310 -0
- package/common/avatar.js +5 -9
- package/common/characters.js +22 -28
- package/common/colors.instance.json +7170 -3657
- package/common/colors.js +4 -8
- package/common/colors.test.json +345 -780
- package/common/comparable.instance.json +1750 -0
- package/common/comparable.js +36 -28
- package/common/comparable.test.json +438 -2
- package/common/concept.js +120 -118
- package/common/countable.js +19 -13
- package/common/countable.test.json +1050 -0
- package/common/crew.instance.json +13066 -6469
- package/common/crew.js +36 -41
- package/common/crew.test.json +714 -452
- package/common/currency.js +27 -45
- package/common/dialogues.js +161 -285
- package/common/dimension.instance.json +474 -253
- package/common/dimension.js +16 -22
- package/common/dimension.test.json +446 -1640
- package/common/edible.instance.json +20053 -10093
- package/common/edible.js +3 -8
- package/common/emotions.instance.json +147 -69
- package/common/emotions.js +35 -38
- package/common/evaluate.instance.json +2 -0
- package/common/evaluate.js +49 -0
- package/common/evaluate.test.json +574 -0
- package/common/events.js +10 -14
- package/common/fastfood.instance.json +221166 -111223
- package/common/fastfood.js +75 -85
- package/common/fastfood.test.json +268 -90
- package/common/formulas.instance.json +455 -249
- package/common/formulas.js +19 -26
- package/common/gdefaults.js +24 -26
- package/common/help.js +7 -12
- package/common/help.test.json +63 -8
- package/common/helpers/concept.js +10 -7
- package/common/helpers/dialogues.js +2 -3
- package/common/helpers/properties.js +54 -62
- package/common/helpers.js +6 -5
- package/common/hierarchy.js +16 -24
- package/common/javascript.js +11 -18
- package/common/kirk.instance.json +584 -290
- package/common/kirk.js +5 -8
- package/common/length.instance.json +8834 -4757
- package/common/length.js +4 -8
- package/common/listener.js +48 -0
- package/common/listener.test.json +104 -0
- package/common/math.instance.json +425 -1187
- package/common/math.js +16 -20
- package/common/meta.js +23 -47
- package/common/nameable.instance.json +2 -0
- package/common/nameable.js +144 -0
- package/common/nameable.test.json +3191 -0
- package/common/negation.instance.json +2 -0
- package/common/negation.js +38 -0
- package/common/negation.test.json +308 -0
- package/common/numbers.js +27 -31
- package/common/ordering.instance.json +366 -246
- package/common/ordering.js +80 -86
- package/common/people.instance.json +2074 -1022
- package/common/people.js +8 -13
- package/common/percentages.instance.json +2 -0
- package/common/percentages.js +53 -0
- package/common/percentages.test.json +751 -0
- package/common/pipboy.instance.json +11745 -6329
- package/common/pipboy.js +48 -59
- package/common/pokemon.instance.json +4226 -2081
- package/common/pokemon.js +7 -20
- package/common/pos.js +15 -13
- package/common/pressure.instance.json +2208 -1175
- package/common/pressure.js +4 -8
- package/common/properties.instance.json +131 -61
- package/common/properties.js +57 -134
- package/common/punctuation.js +15 -7
- package/common/reports.instance.json +1018 -530
- package/common/reports.js +77 -100
- package/common/reports.test.json +15623 -10458
- package/common/scorekeeper.js +18 -30
- package/common/sdefaults.js +16 -7
- package/common/sizeable.js +6 -10
- package/common/spock.instance.json +584 -290
- package/common/spock.js +5 -8
- package/common/stgame.js +19 -19
- package/common/stm.js +164 -27
- package/common/stm.test.json +1734 -1
- package/common/tell.js +14 -18
- package/common/temperature.instance.json +2271 -1222
- package/common/temperature.js +4 -8
- package/common/tester.js +15 -4
- package/common/testing.js +8 -12
- package/common/time.js +20 -25
- package/common/tokenize.js +5 -6
- package/common/ui.instance.json +459 -240
- package/common/ui.js +16 -22
- package/common/weight.instance.json +7646 -4026
- package/common/weight.js +4 -8
- package/common/yesno.js +5 -5
- package/main.js +14 -2
- package/package.json +28 -5
@@ -45,6 +45,10 @@ class API {
|
|
45
45
|
}
|
46
46
|
|
47
47
|
if (km('concept')) {
|
48
|
+
if (!km('concept').api) {
|
49
|
+
debugger
|
50
|
+
debugger
|
51
|
+
}
|
48
52
|
km('concept').api.addDefaultTypesForObjectHierarchy([
|
49
53
|
'theAble',
|
50
54
|
'queryable',
|
@@ -136,7 +140,7 @@ class API {
|
|
136
140
|
notes: 'semantic for setting value with constraint',
|
137
141
|
match: ({context, isA}) => isA(context.marker, after[0].tag) && context.evaluate && context.constraints,
|
138
142
|
// match: ({context, isA}) => context.marker == after[0].tag && context.evaluate,
|
139
|
-
apply: ({km, context, e, log, isA
|
143
|
+
apply: async ({km, context, e, log, isA}) => {
|
140
144
|
const constraint = context.constraints[0];
|
141
145
|
const value = constraint.constraint;
|
142
146
|
let property = constraint.property;
|
@@ -151,7 +155,7 @@ class API {
|
|
151
155
|
// value.greg = true
|
152
156
|
// value.ownee.query = true
|
153
157
|
value.query = true
|
154
|
-
let instance = e(value)
|
158
|
+
let instance = await e(value)
|
155
159
|
if (instance.verbatim) {
|
156
160
|
context.evalue = { verbatim: instance.verbatim }
|
157
161
|
return
|
@@ -168,13 +172,13 @@ class API {
|
|
168
172
|
config.addGenerator({
|
169
173
|
notes: 'generator for constraint',
|
170
174
|
match: ({context}) => context.marker == edAble.operator && context.paraphrase && context.constrained,
|
171
|
-
apply: ({context, g}) => {
|
175
|
+
apply: async ({context, g}) => {
|
172
176
|
if (context[before[0].tag].marker == 'by') {
|
173
177
|
// the cat wendy owned
|
174
|
-
return `${g({...context[after[0].tag], paraphrase: true})} ${edAble.word} ${g({...context[before[0].tag], paraphrase: true})}`
|
178
|
+
return `${await g({...context[after[0].tag], paraphrase: true})} ${edAble.word} ${await g({...context[before[0].tag], paraphrase: true})}`
|
175
179
|
} else {
|
176
180
|
// the cat owned by wendy
|
177
|
-
return `${g({...context[after[0].tag], paraphrase: true})} ${edAble.word} ${['by', g({...context[before[0].tag], paraphrase: true})].filter((t) => t).join(' ')}`
|
181
|
+
return `${await g({...context[after[0].tag], paraphrase: true})} ${edAble.word} ${['by', await g({...context[before[0].tag], paraphrase: true})].filter((t) => t).join(' ')}`
|
178
182
|
}
|
179
183
|
},
|
180
184
|
})
|
@@ -194,19 +198,19 @@ class API {
|
|
194
198
|
|
195
199
|
return false;
|
196
200
|
},
|
197
|
-
apply: ({context, g}) => {
|
201
|
+
apply: async ({context, g}) => {
|
198
202
|
const chosen = chooseNumber(context, word.singular, word.plural)
|
199
|
-
return `${g(context[before[0].tag])} ${chosen} ${g(context[after[0].tag])}`
|
203
|
+
return `${await g(context[before[0].tag])} ${chosen} ${await g(context[after[0].tag])}`
|
200
204
|
}
|
201
205
|
})
|
202
206
|
config.addGenerator({
|
203
207
|
match: ({context}) => context.marker == edAble.operator && context.isEd,
|
204
|
-
apply: ({context, g}) => {
|
208
|
+
apply: async ({context, g}) => {
|
205
209
|
const chosen = chooseNumber(context[after[0].tag], 'is', 'are')
|
206
210
|
if (context[before[0].tag].evalue && context[before[0].tag].evalue.marker == 'answerNotKnown') {
|
207
|
-
return g(context[before[0].tag])
|
211
|
+
return await g(context[before[0].tag])
|
208
212
|
}
|
209
|
-
return `${g(context[after[0].tag])} ${chosen} ${edAble.word} by ${g(context[before[0].tag])}`
|
213
|
+
return `${await g(context[after[0].tag])} ${chosen} ${edAble.word} by ${await g(context[before[0].tag])}`
|
210
214
|
}
|
211
215
|
})
|
212
216
|
/*
|
@@ -250,12 +254,10 @@ class API {
|
|
250
254
|
notes: `generator for who/what is X owned by`,
|
251
255
|
// match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.one && context.one.marker == 'ownee' && context.one.constraints && context.one.constraints[0] && context.one.constraints[0].constraint.marker == 'owned' && context.one.constraints[0].constraint.owner.implicit,
|
252
256
|
match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.one && context.one.marker == after[0].tag && context.one.constraints && context.one.constraints[0] && context.one.constraints[0].constraint.marker == edAble.operator && context.one.constraints[0].constraint[before[0].tag].implicit,
|
253
|
-
apply: ({context, g, gs, callId}) => {
|
257
|
+
apply: async ({context, fragments, g, gs, callId}) => {
|
254
258
|
const isToFromM = [{"from":["one"],"to":["two"]},{"from":["two"],"to":["one"]}]
|
255
|
-
const fromF =
|
256
|
-
|
257
|
-
// const toF = config.fragment("owneeVar is owned by ownerVar")
|
258
|
-
const toF = config.fragment(thisIsVerbedByThat)
|
259
|
+
const fromF = fragments(whoIsWhatVerbedBy).contexts()[0]
|
260
|
+
const toF = fragments(thisIsVerbedByThat)
|
259
261
|
const to = toF.contexts()[0]
|
260
262
|
const tm = translationMapping(fromF, to)
|
261
263
|
/*
|
@@ -269,11 +271,11 @@ class API {
|
|
269
271
|
// const from = context.one.constraints[0].constraint
|
270
272
|
const from = context
|
271
273
|
const im = translationMappingToInstantiatorMappings(tmPrime, from, to)
|
272
|
-
const translation = toF.instantiate(im)
|
274
|
+
const translation = await toF.instantiate(im)
|
273
275
|
if (Array.isArray(translation)) {
|
274
|
-
return gs(translation)
|
276
|
+
return await gs(translation)
|
275
277
|
} else {
|
276
|
-
return g(translation)
|
278
|
+
return await g(translation)
|
277
279
|
}
|
278
280
|
}
|
279
281
|
}
|
@@ -383,11 +385,16 @@ class API {
|
|
383
385
|
config.addGenerator({
|
384
386
|
notes: 'ordering generator for paraphrase',
|
385
387
|
match: ({context}) => context.marker == operator && context.paraphrase && !context.query,
|
386
|
-
apply: ({context, gp, g}) => {
|
387
|
-
const beforeGenerator =
|
388
|
-
|
388
|
+
apply: async ({context, gp, g}) => {
|
389
|
+
const beforeGenerator = []
|
390
|
+
for (const arg of before) {
|
391
|
+
beforeGenerator.push(await g(context[arg.tag]))
|
392
|
+
}
|
393
|
+
const afterGenerator = []
|
394
|
+
for (const arg of after) {
|
395
|
+
afterGenerator.push(await gp(context[arg.tag]))
|
396
|
+
}
|
389
397
|
const word = context.word
|
390
|
-
// return beforeGenerator.concat([`${context.word}`]).concat(afterGenerator).join(' ')
|
391
398
|
const sub = []
|
392
399
|
if (context.subphrase) {
|
393
400
|
sub.push(['that'])
|
@@ -399,7 +406,7 @@ class API {
|
|
399
406
|
config.addGenerator({
|
400
407
|
notes: 'ordering generator for response',
|
401
408
|
match: ({context}) => context.marker == operator && context.evalue && context.isResponse,
|
402
|
-
apply: ({context, g, km}) => {
|
409
|
+
apply: async ({context, g, km}) => {
|
403
410
|
const brief = km("dialogues").api.getBrief()
|
404
411
|
|
405
412
|
const { evalue } = context
|
@@ -414,7 +421,7 @@ class API {
|
|
414
421
|
if (evalue.truthValueOnly || brief) {
|
415
422
|
return `${yesno}`
|
416
423
|
} else {
|
417
|
-
return `${yesno} ${g(Object.assign({}, evalue, { paraphrase: true }))}`
|
424
|
+
return `${yesno} ${await g(Object.assign({}, evalue, { paraphrase: true }))}`
|
418
425
|
}
|
419
426
|
}
|
420
427
|
})
|
@@ -628,8 +635,8 @@ class API {
|
|
628
635
|
setValue: ([object, property], value, has) => {
|
629
636
|
return this.setProperty(object, property, value, has, true)
|
630
637
|
},
|
631
|
-
getValue: ([object, property]) => {
|
632
|
-
return this.getPropertyDirectly(object, property)
|
638
|
+
getValue: async ([object, property]) => {
|
639
|
+
return await this.getPropertyDirectly(object, property)
|
633
640
|
},
|
634
641
|
})
|
635
642
|
}
|
@@ -645,16 +652,18 @@ class API {
|
|
645
652
|
error.code = 'ReadOnly'
|
646
653
|
throw error
|
647
654
|
},
|
648
|
-
getValue: ([object, property]) => {
|
649
|
-
return this.getPropertyDirectly(object, property)
|
655
|
+
getValue: async ([object, property]) => {
|
656
|
+
return await this.getPropertyDirectly(object, property)
|
650
657
|
},
|
651
658
|
})
|
652
659
|
this.propertiesFH.setHandler(path, handler)
|
653
660
|
}
|
654
661
|
|
655
|
-
|
662
|
+
/*
|
663
|
+
async getObject(object) {
|
656
664
|
return this.propertiesFH.getValue([object])
|
657
665
|
}
|
666
|
+
*/
|
658
667
|
|
659
668
|
getHandler(object, property) {
|
660
669
|
return this.propertiesFH.getHandler([object, property])
|
@@ -671,34 +680,33 @@ class API {
|
|
671
680
|
// return context.value
|
672
681
|
}
|
673
682
|
|
674
|
-
getProperty(object, property, g) {
|
683
|
+
async getProperty(object, property, g) {
|
675
684
|
object = this.toValue(object)
|
676
685
|
property = this.toValue(property)
|
677
686
|
const handler = this.propertiesFH.getHandler([object, property])
|
678
687
|
if (handler) {
|
679
|
-
return handler.getValue([object, property])
|
688
|
+
return await handler.getValue([object, property])
|
680
689
|
}
|
681
|
-
return this.getPropertyDirectly(object, property, g)
|
690
|
+
return await this.getPropertyDirectly(object, property, g)
|
682
691
|
}
|
683
692
|
|
684
|
-
getPropertyDirectly(object, property, g) {
|
693
|
+
async getPropertyDirectly(object, property, g) {
|
685
694
|
if (property == 'property') {
|
686
|
-
const objectProps = this.propertiesFH.getValue([object])
|
695
|
+
const objectProps = await this.propertiesFH.getValue([object])
|
687
696
|
const values = []
|
688
697
|
for (let key of Object.keys(objectProps)) {
|
689
698
|
if (objectProps[key].has) {
|
690
|
-
|
691
|
-
values.push(`${g(key)}: ${g({ ...objectProps[key].value, paraphrase: true })}`)
|
699
|
+
values.push(`${await g(key)}: ${await g({ ...objectProps[key].value, paraphrase: true })}`)
|
692
700
|
}
|
693
701
|
}
|
694
702
|
return { marker: 'list', value: values }
|
695
703
|
} else {
|
696
|
-
return this.propertiesFH.getValue([object, property]).value
|
704
|
+
return (await this.propertiesFH.getValue([object, property])).value
|
697
705
|
}
|
698
706
|
}
|
699
707
|
|
700
|
-
hasProperty(object, property, has) {
|
701
|
-
return this.propertiesFH.getValue([object, property]).has
|
708
|
+
async hasProperty(object, property, has) {
|
709
|
+
return (await this.propertiesFH.getValue([object, property])).has
|
702
710
|
}
|
703
711
|
|
704
712
|
setProperty(object, property, value, has, skipHandler) {
|
@@ -726,7 +734,7 @@ class API {
|
|
726
734
|
}
|
727
735
|
}
|
728
736
|
|
729
|
-
knownObject(object) {
|
737
|
+
async knownObject(object) {
|
730
738
|
if (object == 'property') {
|
731
739
|
return object
|
732
740
|
}
|
@@ -735,10 +743,10 @@ class API {
|
|
735
743
|
}
|
736
744
|
const path = [object]
|
737
745
|
// return this.knownPropertyNew(path)
|
738
|
-
return this.propertiesFH.knownProperty(path)
|
746
|
+
return await this.propertiesFH.knownProperty(path)
|
739
747
|
}
|
740
748
|
|
741
|
-
hasProperty(object, property) {
|
749
|
+
async hasProperty(object, property) {
|
742
750
|
if (property == 'property') {
|
743
751
|
return true;
|
744
752
|
}
|
@@ -748,7 +756,7 @@ class API {
|
|
748
756
|
const seen = [object];
|
749
757
|
while (todo.length > 0) {
|
750
758
|
const next = todo.pop();
|
751
|
-
if ((this.propertiesFH.getValue([next, property], false) || {}).has) {
|
759
|
+
if ((await this.propertiesFH.getValue([next, property], false) || {}).has) {
|
752
760
|
return true
|
753
761
|
}
|
754
762
|
const parents = this._objects.parents[next] || [];
|
@@ -763,11 +771,11 @@ class API {
|
|
763
771
|
}
|
764
772
|
|
765
773
|
// NOT DONE
|
766
|
-
knownProperty(object, property) {
|
774
|
+
async knownProperty(object, property) {
|
767
775
|
object = this.toValue(object)
|
768
776
|
property = this.toValue(property)
|
769
777
|
if (property == 'property') {
|
770
|
-
const objectProps = this.propertiesFH.getValue([object])
|
778
|
+
const objectProps = await this.propertiesFH.getValue([object])
|
771
779
|
return !_.isEmpty(objectProps)
|
772
780
|
}
|
773
781
|
|
@@ -776,7 +784,7 @@ class API {
|
|
776
784
|
const seen = [object];
|
777
785
|
while (todo.length > 0) {
|
778
786
|
const next = todo.pop();
|
779
|
-
if ((this.propertiesFH.getValue([next, property], false) || {}).has) {
|
787
|
+
if ((await this.propertiesFH.getValue([next, property], false) || {}).has) {
|
780
788
|
return true
|
781
789
|
}
|
782
790
|
const parents = this._objects.parents[next] || [];
|
@@ -911,22 +919,6 @@ class API {
|
|
911
919
|
|
912
920
|
set config(config) {
|
913
921
|
this._config = config
|
914
|
-
/*
|
915
|
-
const toJSON = (h) => {
|
916
|
-
if (h.child && h.parent) {
|
917
|
-
return h
|
918
|
-
} else {
|
919
|
-
return { child: h[0], parent: h[1] }
|
920
|
-
}
|
921
|
-
}
|
922
|
-
for (const tuple of [...config().config.hierarchy]) {
|
923
|
-
const h = toJSON(tuple);
|
924
|
-
// TODO should this notice development flag?
|
925
|
-
if (this.isOperator(h.child) && this.isOperator(h.parent)) {
|
926
|
-
this.rememberIsA(h.child, h.parent)
|
927
|
-
}
|
928
|
-
}
|
929
|
-
*/
|
930
922
|
}
|
931
923
|
|
932
924
|
get config() {
|
package/common/helpers.js
CHANGED
@@ -131,12 +131,12 @@ const toEValue = (context) => {
|
|
131
131
|
return context;
|
132
132
|
}
|
133
133
|
|
134
|
-
const
|
134
|
+
const defaultContextCheckProperties = ['marker', 'text', 'verbatim', 'isResponse', { property: 'response', filter: ['marker', 'text', 'verbatim'] }]
|
135
135
|
const defaultContextCheck = [
|
136
|
-
...
|
136
|
+
...defaultContextCheckProperties,
|
137
137
|
(object) => {
|
138
138
|
if (typeof object.value == 'object') {
|
139
|
-
return { property: 'value', filter:
|
139
|
+
return { property: 'value', filter: defaultContextCheckProperties }
|
140
140
|
} else {
|
141
141
|
return 'value'
|
142
142
|
}
|
@@ -146,16 +146,17 @@ const defaultContextCheck = [
|
|
146
146
|
return
|
147
147
|
}
|
148
148
|
if (typeof object.modifiers[0] == 'object') {
|
149
|
-
return { property: 'modifiers', filter:
|
149
|
+
return { property: 'modifiers', filter: defaultContextCheckProperties }
|
150
150
|
} else {
|
151
151
|
return 'modifiers'
|
152
152
|
}
|
153
153
|
},
|
154
|
-
{ property: 'modifiers', isPropertyList: true, filter:
|
154
|
+
{ property: 'modifiers', isPropertyList: true, filter: defaultContextCheckProperties }
|
155
155
|
]
|
156
156
|
|
157
157
|
module.exports = {
|
158
158
|
defaultContextCheck,
|
159
|
+
defaultContextCheckProperties,
|
159
160
|
toEValue,
|
160
161
|
millisecondsUntilHourOfDay,
|
161
162
|
indent,
|
package/common/hierarchy.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
const {
|
1
|
+
const { knowledgeModule, where } = require('./runtime').theprogrammablemind
|
2
2
|
const { defaultContextCheck } = require('./helpers')
|
3
3
|
const properties = require('./properties')
|
4
4
|
const hierarchy_tests = require('./hierarchy.test.json')
|
@@ -32,7 +32,7 @@ const getTypes = ( km, concept, instance ) => {
|
|
32
32
|
|
33
33
|
// TODO the types of rank are x y z ....
|
34
34
|
// TODO x is a kind of y
|
35
|
-
let
|
35
|
+
let config = {
|
36
36
|
name: 'hierarchy',
|
37
37
|
operators: [
|
38
38
|
// "([hierarchyAble|])",
|
@@ -61,7 +61,7 @@ let configStruct = {
|
|
61
61
|
notes: 'what type is pikachu',
|
62
62
|
where: where(),
|
63
63
|
match: ({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query && !['what'].includes(context.one.marker) && !['what'].includes(context.two.marker) && (context.one.query || context.two.query),
|
64
|
-
apply: ({context, hierarchy, km, log, e
|
64
|
+
apply: async ({context, hierarchy, km, log, e}) => {
|
65
65
|
const one = context.one;
|
66
66
|
const two = context.two;
|
67
67
|
let concept, value;
|
@@ -72,7 +72,7 @@ let configStruct = {
|
|
72
72
|
concept = two;
|
73
73
|
value = one;
|
74
74
|
}
|
75
|
-
let instance = e(value)
|
75
|
+
let instance = await e(value)
|
76
76
|
if (instance.verbatim) {
|
77
77
|
context.evalue = { verbatim: instance.verbatim }
|
78
78
|
context.isResponse = true
|
@@ -80,9 +80,6 @@ let configStruct = {
|
|
80
80
|
}
|
81
81
|
instance = getTypes(km, concept, instance)
|
82
82
|
|
83
|
-
// instance.focusable = ['one', 'two']
|
84
|
-
// concept = JSON.parse(JSON.stringify(value))
|
85
|
-
// greg
|
86
83
|
concept = _.cloneDeep(value)
|
87
84
|
concept.isQuery = undefined
|
88
85
|
|
@@ -106,10 +103,10 @@ let configStruct = {
|
|
106
103
|
notes: 'type of pikachu', // the types of type is the next one
|
107
104
|
where: where(),
|
108
105
|
match: ({context}) => context.marker == 'type' && context.evaluate && context.object && context.objects[context.objects.length-1].number == 'one' && pluralize.isSingular(context.objects[0].word),
|
109
|
-
apply: ({context, objects, e, gs, km, log
|
106
|
+
apply: async ({context, objects, e, gs, km, log}) => {
|
110
107
|
const concept = context.objects[0];
|
111
108
|
const value = context.objects[1];
|
112
|
-
let instance = e(value)
|
109
|
+
let instance = await e(value)
|
113
110
|
if (instance.verbatim) {
|
114
111
|
context.evalue = { verbatim: instance.verbatim }
|
115
112
|
return
|
@@ -135,14 +132,14 @@ let configStruct = {
|
|
135
132
|
}
|
136
133
|
return hierarchy.isA(context.marker, 'is') && context.query && args( { types: ['hierarchyAble', 'hierarchyAble'], properties: ['one', 'two'] } )
|
137
134
|
},
|
138
|
-
apply: ({context, km, objects, g}) => {
|
135
|
+
apply: async ({context, km, objects, g}) => {
|
139
136
|
const api = km('properties').api
|
140
137
|
const one = context.one
|
141
138
|
const two = context.two
|
142
139
|
const oneId = pluralize.singular(one.value);
|
143
140
|
if (!api.conceptExists(oneId)) {
|
144
141
|
context.evalue = {
|
145
|
-
verbatim: `I don't know about ${g({ ...one, paraphrase: true})}`
|
142
|
+
verbatim: `I don't know about ${await g({ ...one, paraphrase: true})}`
|
146
143
|
}
|
147
144
|
context.isResponse = true
|
148
145
|
return
|
@@ -150,7 +147,7 @@ let configStruct = {
|
|
150
147
|
const twoId = pluralize.singular(two.value);
|
151
148
|
if (!api.conceptExists(twoId)) {
|
152
149
|
context.evalue = {
|
153
|
-
verbatim: `I don't know about ${g({ ...two, paraphrase: true})}`
|
150
|
+
verbatim: `I don't know about ${await g({ ...two, paraphrase: true})}`
|
154
151
|
}
|
155
152
|
context.isResponse = true
|
156
153
|
return
|
@@ -201,7 +198,6 @@ let configStruct = {
|
|
201
198
|
},
|
202
199
|
{
|
203
200
|
notes: 'humans are mammels',
|
204
|
-
// match: ({context, listable}) => listable(context, 'unknown') && context.same,
|
205
201
|
where: where(),
|
206
202
|
match: ({context, listable, hierarchy, isA, callId}) => {
|
207
203
|
if (!context.same) {
|
@@ -270,7 +266,7 @@ let configStruct = {
|
|
270
266
|
notes: 'types of type', // what are the types of animals
|
271
267
|
where: where(),
|
272
268
|
match: ({context}) => context.marker == 'type' && context.evaluate && context.object,
|
273
|
-
apply: ({context, objects,
|
269
|
+
apply: ({context, objects, km, isA}) => {
|
274
270
|
const api = km('properties').api
|
275
271
|
const conceptApi = km('concept').api
|
276
272
|
const type = pluralize.singular(context.object.value);
|
@@ -288,23 +284,19 @@ let configStruct = {
|
|
288
284
|
]
|
289
285
|
};
|
290
286
|
|
291
|
-
const
|
292
|
-
const config = new Config(configStruct, module)
|
293
|
-
config.stop_auto_rebuild()
|
294
|
-
config.add(properties())
|
295
|
-
config.initializer( ({apis, hierarchy}) => {
|
287
|
+
const initializer = ({apis, hierarchy}) => {
|
296
288
|
apis('stm').addIsA( (child, parent) => {
|
297
289
|
return hierarchy.isA(child, parent)
|
298
290
|
})
|
299
|
-
}
|
300
|
-
config.restart_auto_rebuild()
|
301
|
-
return config
|
302
|
-
}
|
291
|
+
}
|
303
292
|
|
304
293
|
knowledgeModule( {
|
294
|
+
config,
|
295
|
+
includes: [properties],
|
296
|
+
initializer,
|
297
|
+
|
305
298
|
module,
|
306
299
|
description: 'hierarchy of objects',
|
307
|
-
createConfig,
|
308
300
|
test: {
|
309
301
|
name: './hierarchy.test.json',
|
310
302
|
contents: hierarchy_tests,
|
package/common/javascript.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
const {
|
1
|
+
const { knowledgeModule, where } = require('./runtime').theprogrammablemind
|
2
2
|
const { defaultContextCheck } = require('./helpers')
|
3
3
|
const dialogues = require('./dialogues')
|
4
4
|
const javascript_tests = require('./javascript.test.json')
|
5
5
|
|
6
|
-
let
|
6
|
+
let config = {
|
7
7
|
name: 'javascript',
|
8
8
|
operators: [
|
9
9
|
"((<let> ([variable|])) [assignment|] (value))",
|
@@ -36,14 +36,14 @@ let configStruct = {
|
|
36
36
|
{
|
37
37
|
where: where(),
|
38
38
|
match: ({context}) => context.marker == 'assignment' && context.paraphrase,
|
39
|
-
apply: ({context, g}) => `let ${g(context.variable)} = ${g(context.value)}`
|
39
|
+
apply: async ({context, g}) => `let ${await g(context.variable)} = ${await g(context.value)}`
|
40
40
|
},
|
41
41
|
{
|
42
42
|
where: where(),
|
43
43
|
match: ({context}) => context.marker == 'assignment' && context.isResponse,
|
44
|
-
apply: ({context, g}) => {
|
45
|
-
const value = g(context.variable)
|
46
|
-
return `${g(context.variable)} == ${g(context.value)}`
|
44
|
+
apply: async ({context, g}) => {
|
45
|
+
// const value = await g(context.variable)
|
46
|
+
return `${await g(context.variable)} == ${await g(context.value)}`
|
47
47
|
}
|
48
48
|
},
|
49
49
|
],
|
@@ -60,22 +60,15 @@ let configStruct = {
|
|
60
60
|
],
|
61
61
|
};
|
62
62
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
config.initializer( ({objects, uuid}) => {
|
63
|
+
knowledgeModule( {
|
64
|
+
config,
|
65
|
+
includes: [dialogues],
|
66
|
+
initializer: ({objects, uuid}) => {
|
69
67
|
objects.variables = {}
|
70
|
-
}
|
71
|
-
config.restart_auto_rebuild()
|
72
|
-
return config
|
73
|
-
}
|
68
|
+
},
|
74
69
|
|
75
|
-
knowledgeModule( {
|
76
70
|
module,
|
77
71
|
description: 'javascript interpreter',
|
78
|
-
createConfig,
|
79
72
|
test: {
|
80
73
|
name: './javascript.test.json',
|
81
74
|
contents: javascript_tests,
|