ekms 8.0.0-beta.0 → 8.0.0-beta.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. package/common/animals.instance.json +2634 -1477
  2. package/common/characters.js +0 -1
  3. package/common/colors.instance.json +25327 -0
  4. package/common/colors.js +71 -0
  5. package/common/colors.test.json +4860 -0
  6. package/common/concept.js +2 -2
  7. package/common/crew.instance.json +15918 -9384
  8. package/common/crew.js +4 -2
  9. package/common/crew.test.json +714 -452
  10. package/common/dialogues.js +36 -25
  11. package/common/dialogues.test.json +1053 -33
  12. package/common/dimension.instance.json +261 -290
  13. package/common/dimension.test.json +476 -687
  14. package/common/edible.instance.json +19462 -10130
  15. package/common/emotions.instance.json +125 -68
  16. package/common/fastfood.instance.json +219732 -110803
  17. package/common/fastfood.js +1 -1
  18. package/common/fastfood.test.json +7941 -3647
  19. package/common/formulas.instance.json +219 -249
  20. package/common/formulas.js +2 -2
  21. package/common/formulas.test.json +1027 -955
  22. package/common/help.test.json +20 -28
  23. package/common/helpers/concept.js +31 -10
  24. package/common/helpers/dialogues.js +17 -1
  25. package/common/helpers/formulas.js +0 -14
  26. package/common/helpers/meta.js +0 -1
  27. package/common/helpers/properties.js +6 -13
  28. package/common/kirk.instance.json +567 -289
  29. package/common/length.instance.json +5232 -4726
  30. package/common/math.instance.json +143 -1181
  31. package/common/math.js +4 -4
  32. package/common/meta.js +0 -2
  33. package/common/negation.instance.json +2 -0
  34. package/common/negation.js +38 -0
  35. package/common/negation.test.json +308 -0
  36. package/common/ordering.instance.json +298 -160
  37. package/common/people.instance.json +1930 -1068
  38. package/common/pipboy.instance.json +7868 -6548
  39. package/common/pokemon.instance.json +4074 -2152
  40. package/common/pressure.instance.json +1299 -1237
  41. package/common/properties.instance.json +109 -60
  42. package/common/properties.js +9 -7
  43. package/common/properties.test.json +17605 -4030
  44. package/common/punctuation.js +8 -0
  45. package/common/punctuation.test.json +233 -5
  46. package/common/reports.instance.json +566 -560
  47. package/common/reports.js +0 -2
  48. package/common/sizeable.js +7 -2
  49. package/common/spock.instance.json +567 -289
  50. package/common/stm.js +16 -5
  51. package/common/temperature.instance.json +1337 -1263
  52. package/common/testing.js +0 -1
  53. package/common/tokenize.js +2 -1
  54. package/common/tokenize.test.json +86 -1
  55. package/common/ui.instance.json +241 -258
  56. package/common/ui.js +0 -1
  57. package/common/weight.instance.json +4996 -4206
  58. package/common/weight.test.json +242 -238
  59. package/main.js +50 -45
  60. package/package.json +13 -6
@@ -19,24 +19,6 @@
19
19
  0
20
20
  ]
21
21
  ],
22
- [
23
- [
24
- "help",
25
- 0
26
- ],
27
- [
28
- "km",
29
- 0
30
- ],
31
- [
32
- "list",
33
- 0
34
- ],
35
- [
36
- "withKM",
37
- 0
38
- ]
39
- ],
40
22
  [
41
23
  [
42
24
  "help",
@@ -120,7 +102,7 @@
120
102
  }
121
103
  ],
122
104
  "generatedParenthesized": [
123
- "( NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n)"
105
+ "( NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n setidsuffix greg\n setidsuffix greg resetidsuffix\n setidsuffix greg makeObject banana\\nbanana\n setidsuffix _suffy\n)"
124
106
  ],
125
107
  "metadata": {
126
108
  "opChoices": [
@@ -216,13 +198,16 @@
216
198
  "gdefaults": "gdefaults2",
217
199
  "help": "help1",
218
200
  "meta": "meta2",
201
+ "negation": "negation2",
219
202
  "pos": "pos2",
220
203
  "punctuation": "punctuation2",
221
204
  "sdefaults": "sdefaults2",
222
- "stm": "stm2"
205
+ "stm": "stm2",
206
+ "tokenize": "tokenize2"
223
207
  },
224
208
  "namespaced": {
225
209
  "dialogues2": {
210
+ "idSuffix": "",
226
211
  "mentioned": [
227
212
  ],
228
213
  "variables": {
@@ -234,6 +219,8 @@
234
219
  },
235
220
  "meta2": {
236
221
  },
222
+ "negation2": {
223
+ },
237
224
  "pos2": {
238
225
  },
239
226
  "punctuation2": {
@@ -245,6 +232,8 @@
245
232
  ],
246
233
  "variables": {
247
234
  }
235
+ },
236
+ "tokenize2": {
248
237
  }
249
238
  },
250
239
  "processed": [
@@ -312,11 +301,11 @@
312
301
  "value": "help",
313
302
  "word": "help"
314
303
  },
315
- "generatedParenthesized": "( NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n)",
304
+ "generatedParenthesized": "( NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n setidsuffix greg\n setidsuffix greg resetidsuffix\n setidsuffix greg makeObject banana\\nbanana\n setidsuffix _suffy\n)",
316
305
  "paraphrases": "help",
317
306
  "paraphrasesParenthesized": "(help)",
318
307
  "responses": [
319
- " NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n"
308
+ " NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n setidsuffix greg\n setidsuffix greg resetidsuffix\n setidsuffix greg makeObject banana\\nbanana\n setidsuffix _suffy\n"
320
309
  ]
321
310
  }
322
311
  ]
@@ -329,7 +318,7 @@
329
318
  ],
330
319
  "query": "help with help and dialogues",
331
320
  "responses": [
332
- " NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n"
321
+ " NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n setidsuffix greg\n setidsuffix greg resetidsuffix\n setidsuffix greg makeObject banana\\nbanana\n setidsuffix _suffy\n"
333
322
  ]
334
323
  },
335
324
  {
@@ -356,9 +345,8 @@
356
345
  "word": "help"
357
346
  }
358
347
  ],
359
- "developerTest": false,
360
348
  "generatedParenthesized": [
361
- "( NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n\n\n\n\n NAME: meta\n DESCRIPTION: Ways of defining new language elements\n\n SAMPLE SENTENCES\n\n a means b\n a means x\n if f then g gq\n undefined means defined\n\n NAME: punctuation\n DESCRIPTION: punctuation\n\n SAMPLE SENTENCES\n\n (a)\n :\n\n\n)"
349
+ "( NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n setidsuffix greg\n setidsuffix greg resetidsuffix\n setidsuffix greg makeObject banana\\nbanana\n setidsuffix _suffy\n\n\n NAME: negation\n DESCRIPTION: negation\n\n SAMPLE SENTENCES\n\n not negatable\n not negatables\n\n\n NAME: meta\n DESCRIPTION: Ways of defining new language elements\n\n SAMPLE SENTENCES\n\n a means b\n a means x\n if f then g gq\n undefined means defined\n\n NAME: punctuation\n DESCRIPTION: punctuation\n\n SAMPLE SENTENCES\n\n (a)\n :\n \"hi man\"\n\n\n\n NAME: tokenize\n DESCRIPTION: tokenize\n\n SAMPLE SENTENCES\n\n hello_world\n)"
362
350
  ],
363
351
  "metadata": {
364
352
  "opChoices": [
@@ -383,6 +371,7 @@
383
371
  "gdefaults": "gdefaults2",
384
372
  "help": "help1",
385
373
  "meta": "meta2",
374
+ "negation": "negation2",
386
375
  "pos": "pos2",
387
376
  "punctuation": "punctuation2",
388
377
  "sdefaults": "sdefaults2",
@@ -391,6 +380,7 @@
391
380
  },
392
381
  "namespaced": {
393
382
  "dialogues2": {
383
+ "idSuffix": "",
394
384
  "mentioned": [
395
385
  ],
396
386
  "variables": {
@@ -402,6 +392,8 @@
402
392
  },
403
393
  "meta2": {
404
394
  },
395
+ "negation2": {
396
+ },
405
397
  "pos2": {
406
398
  },
407
399
  "punctuation2": {
@@ -436,11 +428,11 @@
436
428
  "value": "help",
437
429
  "word": "help"
438
430
  },
439
- "generatedParenthesized": "( NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n\n\n\n\n NAME: meta\n DESCRIPTION: Ways of defining new language elements\n\n SAMPLE SENTENCES\n\n a means b\n a means x\n if f then g gq\n undefined means defined\n\n NAME: punctuation\n DESCRIPTION: punctuation\n\n SAMPLE SENTENCES\n\n (a)\n :\n\n\n)",
431
+ "generatedParenthesized": "( NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n setidsuffix greg\n setidsuffix greg resetidsuffix\n setidsuffix greg makeObject banana\\nbanana\n setidsuffix _suffy\n\n\n NAME: negation\n DESCRIPTION: negation\n\n SAMPLE SENTENCES\n\n not negatable\n not negatables\n\n\n NAME: meta\n DESCRIPTION: Ways of defining new language elements\n\n SAMPLE SENTENCES\n\n a means b\n a means x\n if f then g gq\n undefined means defined\n\n NAME: punctuation\n DESCRIPTION: punctuation\n\n SAMPLE SENTENCES\n\n (a)\n :\n \"hi man\"\n\n\n\n NAME: tokenize\n DESCRIPTION: tokenize\n\n SAMPLE SENTENCES\n\n hello_world\n)",
440
432
  "paraphrases": "help",
441
433
  "paraphrasesParenthesized": "(help)",
442
434
  "responses": [
443
- " NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n\n\n\n\n NAME: meta\n DESCRIPTION: Ways of defining new language elements\n\n SAMPLE SENTENCES\n\n a means b\n a means x\n if f then g gq\n undefined means defined\n\n NAME: punctuation\n DESCRIPTION: punctuation\n\n SAMPLE SENTENCES\n\n (a)\n :\n\n\n"
435
+ " NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n setidsuffix greg\n setidsuffix greg resetidsuffix\n setidsuffix greg makeObject banana\\nbanana\n setidsuffix _suffy\n\n\n NAME: negation\n DESCRIPTION: negation\n\n SAMPLE SENTENCES\n\n not negatable\n not negatables\n\n\n NAME: meta\n DESCRIPTION: Ways of defining new language elements\n\n SAMPLE SENTENCES\n\n a means b\n a means x\n if f then g gq\n undefined means defined\n\n NAME: punctuation\n DESCRIPTION: punctuation\n\n SAMPLE SENTENCES\n\n (a)\n :\n \"hi man\"\n\n\n\n NAME: tokenize\n DESCRIPTION: tokenize\n\n SAMPLE SENTENCES\n\n hello_world\n"
444
436
  ]
445
437
  }
446
438
  ]
@@ -453,7 +445,7 @@
453
445
  ],
454
446
  "query": "help",
455
447
  "responses": [
456
- " NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n\n\n\n\n NAME: meta\n DESCRIPTION: Ways of defining new language elements\n\n SAMPLE SENTENCES\n\n a means b\n a means x\n if f then g gq\n undefined means defined\n\n NAME: punctuation\n DESCRIPTION: punctuation\n\n SAMPLE SENTENCES\n\n (a)\n :\n\n\n"
448
+ " NAME: help\n DESCRIPTION: Help the user with the current knowledge modules\n\n SAMPLE SENTENCES\n\n help with help and dialogues\n help\n\n NAME: dialogues\n DESCRIPTION: framework for dialogues\n\n SAMPLE SENTENCES\n\n 1 2 and 3\n be brief\n be brief greg\n is x y\n no\n what is it\n x is y?\n yes\n x is 3 what is x\n x is 3 what is x what is it\n be brief x is 3 what is x what is it\n to it\n why\n nevermindTestSetup accept nevermind hi\n nevermindTestSetup reject nevermind hi\n setidsuffix greg\n setidsuffix greg resetidsuffix\n setidsuffix greg makeObject banana\\nbanana\n setidsuffix _suffy\n\n\n NAME: negation\n DESCRIPTION: negation\n\n SAMPLE SENTENCES\n\n not negatable\n not negatables\n\n\n NAME: meta\n DESCRIPTION: Ways of defining new language elements\n\n SAMPLE SENTENCES\n\n a means b\n a means x\n if f then g gq\n undefined means defined\n\n NAME: punctuation\n DESCRIPTION: punctuation\n\n SAMPLE SENTENCES\n\n (a)\n :\n \"hi man\"\n\n\n\n NAME: tokenize\n DESCRIPTION: tokenize\n\n SAMPLE SENTENCES\n\n hello_world\n"
457
449
  ]
458
450
  }
459
451
  ]
@@ -1,6 +1,6 @@
1
1
  const pluralize = require('pluralize')
2
2
  const deepEqual = require('deep-equal')
3
- const { chooseNumber } = require('../helpers.js')
3
+ const { chooseNumber, zip } = require('../helpers.js')
4
4
  const { compose, translationMapping, translationMappingToInstantiatorMappings } = require('./meta.js')
5
5
 
6
6
  class API {
@@ -31,13 +31,25 @@ class API {
31
31
  // for example, "crew member" or "photon torpedo"
32
32
  // TODO account for modifier a complex phrase for example "hot (chicken strips)"
33
33
  kindOfConcept({ config, modifiers, object }) {
34
- const objectId = pluralize.singular(object)
34
+ // TODO make the modifiers objects then below for add words for modifiers only do if !unknown
35
+ // const objectId = pluralize.singular(object)
36
+ const objectId = this.args.kms.dialogues.api.toScopedId(object)
37
+
35
38
  // const modifierIds = modifiers.map( (modifier) => pluralize.singular(modifier) )
36
- const modifierIds = modifiers
37
- const modifiersObjectId = `${modifierIds.join("_")}_${objectId}`
39
+ const modifierIds = modifiers.map( (modifier) => this.args.kms.dialogues.api.toScopedId(modifier) )
40
+ const modifiersObjectId = `${modifiers.join("_")}_${objectId}`
38
41
 
39
- const objectSingular = pluralize.singular(object)
40
- const objectPlural = pluralize.plural(object)
42
+ const toWord = (object) => {
43
+ if (typeof object == 'string') {
44
+ return object
45
+ }
46
+ return object.text
47
+ }
48
+ const objectWord = toWord(object)
49
+ // const objectWord = object
50
+ // TODO call evaluator to pick up overrides
51
+ const objectSingular = pluralize.singular(objectWord)
52
+ const objectPlural = pluralize.plural(objectWord)
41
53
  // config.addOperator({ pattern: `(${modifierIds.map((modifierId) => `(${modifierId}/*)`).join(' ')} [${modifiersObjectId}] (${objectId}/0))`, allowDups: true })
42
54
  config.addOperator({ pattern: `(${modifierIds.map((modifierId) => `(${modifierId}/*)`).join(' ')} [${modifiersObjectId}] (${objectId}/*))`, allowDups: true })
43
55
  // config.addOperator({ pattern: `(<${modifierId}|> ([${objectId}|]))`, allowDups: true })
@@ -59,10 +71,18 @@ class API {
59
71
  config.addOperator({ pattern: `([${objectId}|])`, allowDups: true })
60
72
  }
61
73
 
74
+ if (object.unknown) {
75
+ config.addWord(objectSingular, { id: objectId, initial: `{ value: '${objectId}', number: 'one' }`})
76
+ config.addWord(objectPlural, { id: objectId, initial: `{ value: '${objectId}', number: 'many' }`})
77
+ }
62
78
 
63
- config.addWord(objectSingular, { id: objectId, initial: `{ value: '${objectId}', number: 'one' }`})
64
- config.addWord(objectPlural, { id: objectId, initial: `{ value: '${objectId}', number: 'many' }`})
65
- modifierIds.forEach((modifierId) => config.addWord(modifierId, { id: modifierId, initial: `{ value: '${modifierId}' }`}))
79
+ zip(modifiers, modifierIds).forEach(([modifierWord, modifierId]) => {
80
+ // config.addWord(modifier, { id: modifierId, initial: `{ value: '${modifierId}' }`})
81
+ // TODO call evaluator to pick up overrides
82
+ config.addWord(pluralize.singular(modifierWord), { id: modifierId, initial: `{ value: '${modifierId}', number: 'one' }`})
83
+ config.addWord(pluralize.plural(modifierWord), { id: modifierId, initial: `{ value: '${modifierId}', number: 'many' }`})
84
+ })
85
+ // modifierds.forEach((modifierId) => config.addWord(modifierId, { id: modifierId, initial: `{ value: '${modifierId}' }`}))
66
86
 
67
87
  modifierIds.forEach((modifierId) => config.addBridge({ id: modifierId, level: 0, bridge: `{ ...next(operator), value: '${modifierId}' }`, allowDups: true }))
68
88
  config.addBridge({ id: objectId, level: 0, bridge: `{ ...next(operator), value: '${objectId}' }`, allowDups: true })
@@ -74,7 +94,8 @@ class API {
74
94
  id: modifiersObjectId,
75
95
  level: 0,
76
96
  convolution: true,
77
- isA: ['adjective'],
97
+ isA: [{ parent: 'adjective', instance: true }],
98
+ // isA: ['adjective'],
78
99
  before: ['verby'],
79
100
  bridge: `{ ...after[0], ${modifierProperties}, atomic: true, dead: true, marker: next(operator('${modifiersObjectId}')), value: '${modifiersObjectId}', modifiers: append([${modifierList}], after[0].modifiers)}`,
80
101
  allowDups: true })
@@ -4,6 +4,21 @@ const { indent, focus } = require('../helpers')
4
4
  class API {
5
5
  initialize({ objects }) {
6
6
  this._objects = objects
7
+ this._objects.idSuffix = ''
8
+ }
9
+
10
+ setIdSuffix(idSuffix) {
11
+ this._objects.idSuffix = idSuffix
12
+ }
13
+
14
+ toScopedId(context) {
15
+ if (typeof context == 'string') {
16
+ return pluralize.singular(context) + this._objects.idSuffix
17
+ } else {
18
+ const { unknown, value, word } = context;
19
+ // return unknown ? pluralize.singular(word) + this._objects.idSuffix : pluralize.singular(value || word)
20
+ return unknown ? pluralize.singular(word) + this._objects.idSuffix : value || pluralize.singular(word)
21
+ }
7
22
  }
8
23
 
9
24
  warningNotEvaluated(log, value) {
@@ -64,7 +79,8 @@ class API {
64
79
  if (!value) {
65
80
  return
66
81
  }
67
- const concept = pluralize.singular(value)
82
+ // const concept = pluralize.singular(value)
83
+ const concept = this.toScopedId(context)
68
84
  if (config.exists(concept)) {
69
85
  return concept
70
86
  }
@@ -42,11 +42,9 @@ const unify = (rule, value) => {
42
42
 
43
43
  const f = (values, variable) => (value) => {
44
44
  if (!value) {
45
- debugger
46
45
  throw new Error("Value not present")
47
46
  }
48
47
  if (values[variable] && values[variable] != value) {
49
- debugger
50
48
  throw new Error("Variable already set to different value")
51
49
  }
52
50
  values[variable] = value
@@ -80,18 +78,6 @@ function solveFor(expression, variable, isVariable = (expression) => typeof expr
80
78
  return c1.value == c2.value
81
79
  }
82
80
 
83
- /*
84
- for (let rule of rules) {
85
- debugger
86
- const body = unify(rule, expression)
87
- const lVars = getVariables(body.left, isVariable)
88
- const rVars = getVariables(body.right, isVariable)
89
- if (lVars.length == 1 && sameVar(lVars[0], variable) && !rVars.some((c) => sameVar(c, variable))) {
90
- return body
91
- }
92
- }
93
- */
94
-
95
81
  const lVars = getVariables(expression.left, isVariable)
96
82
  const rVars = getVariables(expression.right, isVariable)
97
83
  if (lVars.length == 1 && sameVar(lVars[0], variable) && !rVars.some((c) => sameVar(c, variable))) {
@@ -104,7 +104,6 @@ const translationMappingToInstantiatorMappings = (translationMapping, from , to
104
104
  match: ({context}) => context[tm.to],
105
105
  apply: ({context}) => {
106
106
  // Object.assign(context[tm.to], from[tm.from])
107
- // debugger;
108
107
  context[tm.to] = from[tm.from]
109
108
  if (context[tm.to]) {
110
109
  context[tm.to].instantiated = true
@@ -81,7 +81,6 @@ class API {
81
81
  match: ({context}) => context[tm.to],
82
82
  apply: ({context}) => {
83
83
  // Object.assign(context[tm.to], from[tm.from])
84
- // debugger;
85
84
  context[tm.to] = from[tm.from]
86
85
  if (context[tm.to]) {
87
86
  context[tm.to].instantiated = true
@@ -501,12 +500,6 @@ class API {
501
500
  for (let argument of context.focusable || []) {
502
501
  const value = api.toValue(context[argument])
503
502
  if (value) {
504
- /*
505
- if (value == 'cleo') {
506
- debugger;
507
- hierarchy.isA()
508
- }
509
- */
510
503
  const minimas = hierarchy.minima(context[argument].types)
511
504
  for (let type of minimas) {
512
505
  if (config.exists(value)) {
@@ -689,7 +682,7 @@ class API {
689
682
  }
690
683
 
691
684
  getPropertyDirectly(object, property, g) {
692
- if (property == 'properties') {
685
+ if (property == 'property') {
693
686
  const objectProps = this.propertiesFH.getValue([object])
694
687
  const values = []
695
688
  for (let key of Object.keys(objectProps)) {
@@ -734,7 +727,7 @@ class API {
734
727
  }
735
728
 
736
729
  knownObject(object) {
737
- if (object == 'properties') {
730
+ if (object == 'property') {
738
731
  return object
739
732
  }
740
733
  if ((object || {}).value) {
@@ -746,7 +739,7 @@ class API {
746
739
  }
747
740
 
748
741
  hasProperty(object, property) {
749
- if (property == 'properties') {
742
+ if (property == 'property') {
750
743
  return true;
751
744
  }
752
745
 
@@ -773,8 +766,9 @@ class API {
773
766
  knownProperty(object, property) {
774
767
  object = this.toValue(object)
775
768
  property = this.toValue(property)
776
- if (property == 'properties') {
777
- return true;
769
+ if (property == 'property') {
770
+ const objectProps = this.propertiesFH.getValue([object])
771
+ return !_.isEmpty(objectProps)
778
772
  }
779
773
 
780
774
  // go up the hierarchy
@@ -916,7 +910,6 @@ class API {
916
910
  }
917
911
 
918
912
  set config(config) {
919
- debugger
920
913
  this._config = config
921
914
  /*
922
915
  const toJSON = (h) => {