tpmkms_4wp 8.0.0-beta.1 → 8.0.0-beta.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. package/common/animals.instance.json +2542 -1375
  2. package/common/colors.instance.json +6796 -3773
  3. package/common/crew.instance.json +12836 -6611
  4. package/common/crew.test.json +714 -452
  5. package/common/dialogues.js +2 -18
  6. package/common/dimension.instance.json +242 -261
  7. package/common/dimension.test.json +314 -502
  8. package/common/edible.instance.json +19280 -10008
  9. package/common/emotions.instance.json +122 -129
  10. package/common/fastfood.instance.json +218824 -110556
  11. package/common/formulas.instance.json +216 -250
  12. package/common/formulas.js +2 -2
  13. package/common/help.test.json +10 -22
  14. package/common/helpers/concept.js +2 -1
  15. package/common/kirk.instance.json +564 -290
  16. package/common/length.instance.json +5153 -4677
  17. package/common/math.instance.json +140 -1157
  18. package/common/math.js +4 -4
  19. package/common/negation.instance.json +2 -0
  20. package/common/negation.js +38 -0
  21. package/common/negation.test.json +308 -0
  22. package/common/numbers.js +2 -2
  23. package/common/ordering.instance.json +292 -162
  24. package/common/people.instance.json +1902 -1015
  25. package/common/percentages.instance.json +2 -0
  26. package/common/percentages.js +57 -0
  27. package/common/percentages.test.json +751 -0
  28. package/common/pipboy.instance.json +7690 -6356
  29. package/common/pokemon.instance.json +3954 -2081
  30. package/common/pressure.instance.json +1265 -1193
  31. package/common/properties.instance.json +106 -61
  32. package/common/properties.js +2 -0
  33. package/common/reports.instance.json +557 -559
  34. package/common/sdefaults.js +10 -0
  35. package/common/spock.instance.json +564 -290
  36. package/common/temperature.instance.json +1297 -1209
  37. package/common/ui.instance.json +238 -259
  38. package/common/weight.instance.json +4905 -4166
  39. package/main.js +51 -46
  40. package/package.json +13 -6
@@ -95,6 +95,7 @@
95
95
  "hierarchy": "hierarchy2",
96
96
  "math": "math2",
97
97
  "meta": "meta2",
98
+ "negation": "negation2",
98
99
  "numbers": "numbers2",
99
100
  "pos": "pos2",
100
101
  "properties": "properties2",
@@ -136,6 +137,8 @@
136
137
  },
137
138
  "meta2": {
138
139
  },
140
+ "negation2": {
141
+ },
139
142
  "numbers2": {
140
143
  },
141
144
  "pos2": {
@@ -170,9 +173,6 @@
170
173
  "/",
171
174
  "-"
172
175
  ],
173
- "notAble": [
174
- "unknown"
175
- ],
176
176
  "object": [
177
177
  "unknown",
178
178
  "what",
@@ -259,7 +259,6 @@
259
259
  "a",
260
260
  "articlePOS",
261
261
  "the",
262
- "notAble",
263
262
  "whatAble",
264
263
  "is",
265
264
  "toAble",
@@ -383,7 +382,6 @@
383
382
  "unknown": [
384
383
  "hierarchyAble",
385
384
  "object",
386
- "notAble",
387
385
  "theAble",
388
386
  "queryable"
389
387
  ],
@@ -447,8 +445,6 @@
447
445
  },
448
446
  "modifies": {
449
447
  },
450
- "notAble": {
451
- },
452
448
  "noun": {
453
449
  },
454
450
  "number": {
@@ -571,6 +567,8 @@
571
567
  "marker": "is",
572
568
  "number": "many",
573
569
  "one": {
570
+ "default": true,
571
+ "isList": true,
574
572
  "level": 1,
575
573
  "listable": true,
576
574
  "marker": "list",
@@ -579,7 +577,7 @@
579
577
  "end": 30,
580
578
  "start": 0
581
579
  },
582
- "text": "dimension and unit are concepts",
580
+ "text": "dimension and unit",
583
581
  "types": [
584
582
  "list",
585
583
  "unknown"
@@ -587,7 +585,7 @@
587
585
  "value": [
588
586
  {
589
587
  "dead": true,
590
- "level": 2,
588
+ "level": 1,
591
589
  "marker": "unknown",
592
590
  "range": {
593
591
  "end": 8,
@@ -600,7 +598,7 @@
600
598
  },
601
599
  {
602
600
  "dead": true,
603
- "level": 2,
601
+ "level": 1,
604
602
  "marker": "unknown",
605
603
  "range": {
606
604
  "end": 17,
@@ -611,7 +609,8 @@
611
609
  "value": "unit",
612
610
  "word": "unit"
613
611
  }
614
- ]
612
+ ],
613
+ "word": "and"
615
614
  },
616
615
  "range": {
617
616
  "end": 30,
@@ -720,6 +719,8 @@
720
719
  "marker": "is",
721
720
  "number": "many",
722
721
  "one": {
722
+ "default": true,
723
+ "isList": true,
723
724
  "level": 1,
724
725
  "listable": true,
725
726
  "marker": "list",
@@ -728,7 +729,7 @@
728
729
  "end": 37,
729
730
  "start": 0
730
731
  },
731
- "text": "* +",
732
+ "text": "* + / and -",
732
733
  "types": [
733
734
  "list",
734
735
  "unknown"
@@ -762,7 +763,7 @@
762
763
  },
763
764
  {
764
765
  "dead": true,
765
- "level": 2,
766
+ "level": 1,
766
767
  "marker": "unknown",
767
768
  "range": {
768
769
  "end": 4,
@@ -775,7 +776,7 @@
775
776
  },
776
777
  {
777
778
  "dead": true,
778
- "level": 2,
779
+ "level": 1,
779
780
  "marker": "unknown",
780
781
  "range": {
781
782
  "end": 10,
@@ -786,7 +787,8 @@
786
787
  "value": "-",
787
788
  "word": "-"
788
789
  }
789
- ]
790
+ ],
791
+ "word": "and"
790
792
  },
791
793
  "range": {
792
794
  "end": 37,
@@ -809,6 +811,7 @@
809
811
  "modifier_mathematical": {
810
812
  "level": 0,
811
813
  "marker": "mathematical",
814
+ "number": "one",
812
815
  "range": {
813
816
  "end": 27,
814
817
  "start": 16
@@ -970,6 +973,7 @@
970
973
  "hierarchy": "hierarchy2",
971
974
  "math": "math2",
972
975
  "meta": "meta2",
976
+ "negation": "negation2",
973
977
  "numbers": "numbers2",
974
978
  "pos": "pos2",
975
979
  "properties": "properties2",
@@ -1011,6 +1015,8 @@
1011
1015
  },
1012
1016
  "meta2": {
1013
1017
  },
1018
+ "negation2": {
1019
+ },
1014
1020
  "numbers2": {
1015
1021
  },
1016
1022
  "pos2": {
@@ -1045,9 +1051,6 @@
1045
1051
  "/",
1046
1052
  "-"
1047
1053
  ],
1048
- "notAble": [
1049
- "unknown"
1050
- ],
1051
1054
  "object": [
1052
1055
  "unknown",
1053
1056
  "what",
@@ -1134,7 +1137,6 @@
1134
1137
  "a",
1135
1138
  "articlePOS",
1136
1139
  "the",
1137
- "notAble",
1138
1140
  "whatAble",
1139
1141
  "is",
1140
1142
  "toAble",
@@ -1258,7 +1260,6 @@
1258
1260
  "unknown": [
1259
1261
  "hierarchyAble",
1260
1262
  "object",
1261
- "notAble",
1262
1263
  "theAble",
1263
1264
  "queryable"
1264
1265
  ],
@@ -1322,8 +1323,6 @@
1322
1323
  },
1323
1324
  "modifies": {
1324
1325
  },
1325
- "notAble": {
1326
- },
1327
1326
  "noun": {
1328
1327
  },
1329
1328
  "number": {
@@ -1429,6 +1428,8 @@
1429
1428
  "marker": "is",
1430
1429
  "number": "many",
1431
1430
  "one": {
1431
+ "default": true,
1432
+ "isList": true,
1432
1433
  "level": 1,
1433
1434
  "listable": true,
1434
1435
  "marker": "list",
@@ -1437,7 +1438,7 @@
1437
1438
  "end": 30,
1438
1439
  "start": 0
1439
1440
  },
1440
- "text": "dimension and unit are concepts",
1441
+ "text": "dimension and unit",
1441
1442
  "types": [
1442
1443
  "list",
1443
1444
  "unknown"
@@ -1445,7 +1446,7 @@
1445
1446
  "value": [
1446
1447
  {
1447
1448
  "dead": true,
1448
- "level": 2,
1449
+ "level": 1,
1449
1450
  "marker": "unknown",
1450
1451
  "range": {
1451
1452
  "end": 8,
@@ -1458,7 +1459,7 @@
1458
1459
  },
1459
1460
  {
1460
1461
  "dead": true,
1461
- "level": 2,
1462
+ "level": 1,
1462
1463
  "marker": "unknown",
1463
1464
  "range": {
1464
1465
  "end": 17,
@@ -1469,7 +1470,8 @@
1469
1470
  "value": "unit",
1470
1471
  "word": "unit"
1471
1472
  }
1472
- ]
1473
+ ],
1474
+ "word": "and"
1473
1475
  },
1474
1476
  "range": {
1475
1477
  "end": 30,
@@ -1578,6 +1580,8 @@
1578
1580
  "marker": "is",
1579
1581
  "number": "many",
1580
1582
  "one": {
1583
+ "default": true,
1584
+ "isList": true,
1581
1585
  "level": 1,
1582
1586
  "listable": true,
1583
1587
  "marker": "list",
@@ -1586,7 +1590,7 @@
1586
1590
  "end": 37,
1587
1591
  "start": 0
1588
1592
  },
1589
- "text": "* +",
1593
+ "text": "* + / and -",
1590
1594
  "types": [
1591
1595
  "list",
1592
1596
  "unknown"
@@ -1620,7 +1624,7 @@
1620
1624
  },
1621
1625
  {
1622
1626
  "dead": true,
1623
- "level": 2,
1627
+ "level": 1,
1624
1628
  "marker": "unknown",
1625
1629
  "range": {
1626
1630
  "end": 4,
@@ -1633,7 +1637,7 @@
1633
1637
  },
1634
1638
  {
1635
1639
  "dead": true,
1636
- "level": 2,
1640
+ "level": 1,
1637
1641
  "marker": "unknown",
1638
1642
  "range": {
1639
1643
  "end": 10,
@@ -1644,7 +1648,8 @@
1644
1648
  "value": "-",
1645
1649
  "word": "-"
1646
1650
  }
1647
- ]
1651
+ ],
1652
+ "word": "and"
1648
1653
  },
1649
1654
  "range": {
1650
1655
  "end": 37,
@@ -1667,6 +1672,7 @@
1667
1672
  "modifier_mathematical": {
1668
1673
  "level": 0,
1669
1674
  "marker": "mathematical",
1675
+ "number": "one",
1670
1676
  "range": {
1671
1677
  "end": 27,
1672
1678
  "start": 16
@@ -1864,6 +1870,8 @@
1864
1870
  "marker": "is",
1865
1871
  "number": "many",
1866
1872
  "one": {
1873
+ "default": true,
1874
+ "isList": true,
1867
1875
  "level": 1,
1868
1876
  "listable": true,
1869
1877
  "marker": "list",
@@ -1872,7 +1880,7 @@
1872
1880
  "end": 53,
1873
1881
  "start": 0
1874
1882
  },
1875
- "text": "fahrenheit",
1883
+ "text": "fahrenheit celcuis and kelvin",
1876
1884
  "types": [
1877
1885
  "list",
1878
1886
  "unknown"
@@ -1893,7 +1901,7 @@
1893
1901
  },
1894
1902
  {
1895
1903
  "dead": true,
1896
- "level": 2,
1904
+ "level": 1,
1897
1905
  "marker": "unknown",
1898
1906
  "range": {
1899
1907
  "end": 17,
@@ -1906,7 +1914,7 @@
1906
1914
  },
1907
1915
  {
1908
1916
  "dead": true,
1909
- "level": 2,
1917
+ "level": 1,
1910
1918
  "marker": "unknown",
1911
1919
  "range": {
1912
1920
  "end": 28,
@@ -1917,7 +1925,8 @@
1917
1925
  "value": "kelvin",
1918
1926
  "word": "kelvin"
1919
1927
  }
1920
- ]
1928
+ ],
1929
+ "word": "and"
1921
1930
  },
1922
1931
  "range": {
1923
1932
  "end": 53,
@@ -2309,10 +2318,6 @@
2309
2318
  "list",
2310
2319
  1
2311
2320
  ],
2312
- [
2313
- "list",
2314
- 1
2315
- ],
2316
2321
  [
2317
2322
  "propertyOf",
2318
2323
  0
@@ -2329,35 +2334,6 @@
2329
2334
  },
2330
2335
  {
2331
2336
  "counter": 6,
2332
- "op": [
2333
- "list",
2334
- 1
2335
- ],
2336
- "ops": [
2337
- [
2338
- "is",
2339
- 0
2340
- ],
2341
- [
2342
- "list",
2343
- 1
2344
- ],
2345
- [
2346
- "propertyOf",
2347
- 0
2348
- ],
2349
- [
2350
- "temperature",
2351
- 0
2352
- ],
2353
- [
2354
- "unit",
2355
- 0
2356
- ]
2357
- ]
2358
- },
2359
- {
2360
- "counter": 7,
2361
2337
  "op": [
2362
2338
  "unit",
2363
2339
  0
@@ -2382,7 +2358,7 @@
2382
2358
  ]
2383
2359
  },
2384
2360
  {
2385
- "counter": 8,
2361
+ "counter": 7,
2386
2362
  "op": [
2387
2363
  "temperature",
2388
2364
  0
@@ -2403,7 +2379,7 @@
2403
2379
  ]
2404
2380
  },
2405
2381
  {
2406
- "counter": 9,
2382
+ "counter": 8,
2407
2383
  "op": [
2408
2384
  "propertyOf",
2409
2385
  0
@@ -2420,7 +2396,7 @@
2420
2396
  ]
2421
2397
  },
2422
2398
  {
2423
- "counter": 10,
2399
+ "counter": 9,
2424
2400
  "op": [
2425
2401
  "propertyOf",
2426
2402
  1
@@ -2437,7 +2413,7 @@
2437
2413
  ]
2438
2414
  },
2439
2415
  {
2440
- "counter": 11,
2416
+ "counter": 10,
2441
2417
  "op": [
2442
2418
  "is",
2443
2419
  0
@@ -2450,7 +2426,7 @@
2450
2426
  ]
2451
2427
  },
2452
2428
  {
2453
- "counter": 12,
2429
+ "counter": 11,
2454
2430
  "op": [
2455
2431
  "is",
2456
2432
  1
@@ -2557,6 +2533,7 @@
2557
2533
  "hierarchy": "hierarchy2",
2558
2534
  "math": "math2",
2559
2535
  "meta": "meta2",
2536
+ "negation": "negation2",
2560
2537
  "numbers": "numbers2",
2561
2538
  "pos": "pos2",
2562
2539
  "properties": "properties2",
@@ -2598,6 +2575,8 @@
2598
2575
  },
2599
2576
  "meta2": {
2600
2577
  },
2578
+ "negation2": {
2579
+ },
2601
2580
  "numbers2": {
2602
2581
  },
2603
2582
  "pos2": {
@@ -2635,9 +2614,6 @@
2635
2614
  "/",
2636
2615
  "-"
2637
2616
  ],
2638
- "notAble": [
2639
- "unknown"
2640
- ],
2641
2617
  "object": [
2642
2618
  "unknown",
2643
2619
  "what",
@@ -2729,7 +2705,6 @@
2729
2705
  "a",
2730
2706
  "articlePOS",
2731
2707
  "the",
2732
- "notAble",
2733
2708
  "whatAble",
2734
2709
  "is",
2735
2710
  "toAble",
@@ -2869,7 +2844,6 @@
2869
2844
  "unknown": [
2870
2845
  "hierarchyAble",
2871
2846
  "object",
2872
- "notAble",
2873
2847
  "theAble",
2874
2848
  "queryable"
2875
2849
  ],
@@ -2939,8 +2913,6 @@
2939
2913
  },
2940
2914
  "modifies": {
2941
2915
  },
2942
- "notAble": {
2943
- },
2944
2916
  "noun": {
2945
2917
  },
2946
2918
  "number": {
@@ -3095,6 +3067,8 @@
3095
3067
  "marker": "is",
3096
3068
  "number": "many",
3097
3069
  "one": {
3070
+ "default": true,
3071
+ "isList": true,
3098
3072
  "level": 1,
3099
3073
  "listable": true,
3100
3074
  "marker": "list",
@@ -3103,7 +3077,7 @@
3103
3077
  "end": 53,
3104
3078
  "start": 0
3105
3079
  },
3106
- "text": "fahrenheit",
3080
+ "text": "fahrenheit celcuis and kelvin",
3107
3081
  "types": [
3108
3082
  "list",
3109
3083
  "unknown"
@@ -3124,7 +3098,7 @@
3124
3098
  },
3125
3099
  {
3126
3100
  "dead": true,
3127
- "level": 2,
3101
+ "level": 1,
3128
3102
  "marker": "unknown",
3129
3103
  "range": {
3130
3104
  "end": 17,
@@ -3137,7 +3111,7 @@
3137
3111
  },
3138
3112
  {
3139
3113
  "dead": true,
3140
- "level": 2,
3114
+ "level": 1,
3141
3115
  "marker": "unknown",
3142
3116
  "range": {
3143
3117
  "end": 28,
@@ -3148,7 +3122,8 @@
3148
3122
  "value": "kelvin",
3149
3123
  "word": "kelvin"
3150
3124
  }
3151
- ]
3125
+ ],
3126
+ "word": "and"
3152
3127
  },
3153
3128
  "range": {
3154
3129
  "end": 53,
@@ -3316,6 +3291,8 @@
3316
3291
  "marker": "is",
3317
3292
  "number": "many",
3318
3293
  "one": {
3294
+ "default": true,
3295
+ "isList": true,
3319
3296
  "level": 1,
3320
3297
  "listable": true,
3321
3298
  "marker": "list",
@@ -3324,7 +3301,7 @@
3324
3301
  "end": 30,
3325
3302
  "start": 0
3326
3303
  },
3327
- "text": "dimension and unit are concepts",
3304
+ "text": "dimension and unit",
3328
3305
  "types": [
3329
3306
  "list",
3330
3307
  "unknown"
@@ -3332,7 +3309,7 @@
3332
3309
  "value": [
3333
3310
  {
3334
3311
  "dead": true,
3335
- "level": 2,
3312
+ "level": 1,
3336
3313
  "marker": "unknown",
3337
3314
  "range": {
3338
3315
  "end": 8,
@@ -3345,7 +3322,7 @@
3345
3322
  },
3346
3323
  {
3347
3324
  "dead": true,
3348
- "level": 2,
3325
+ "level": 1,
3349
3326
  "marker": "unknown",
3350
3327
  "range": {
3351
3328
  "end": 17,
@@ -3356,7 +3333,8 @@
3356
3333
  "value": "unit",
3357
3334
  "word": "unit"
3358
3335
  }
3359
- ]
3336
+ ],
3337
+ "word": "and"
3360
3338
  },
3361
3339
  "range": {
3362
3340
  "end": 30,
@@ -3465,6 +3443,8 @@
3465
3443
  "marker": "is",
3466
3444
  "number": "many",
3467
3445
  "one": {
3446
+ "default": true,
3447
+ "isList": true,
3468
3448
  "level": 1,
3469
3449
  "listable": true,
3470
3450
  "marker": "list",
@@ -3473,7 +3453,7 @@
3473
3453
  "end": 37,
3474
3454
  "start": 0
3475
3455
  },
3476
- "text": "* +",
3456
+ "text": "* + / and -",
3477
3457
  "types": [
3478
3458
  "list",
3479
3459
  "unknown"
@@ -3507,7 +3487,7 @@
3507
3487
  },
3508
3488
  {
3509
3489
  "dead": true,
3510
- "level": 2,
3490
+ "level": 1,
3511
3491
  "marker": "unknown",
3512
3492
  "range": {
3513
3493
  "end": 4,
@@ -3520,7 +3500,7 @@
3520
3500
  },
3521
3501
  {
3522
3502
  "dead": true,
3523
- "level": 2,
3503
+ "level": 1,
3524
3504
  "marker": "unknown",
3525
3505
  "range": {
3526
3506
  "end": 10,
@@ -3531,7 +3511,8 @@
3531
3511
  "value": "-",
3532
3512
  "word": "-"
3533
3513
  }
3534
- ]
3514
+ ],
3515
+ "word": "and"
3535
3516
  },
3536
3517
  "range": {
3537
3518
  "end": 37,
@@ -3554,6 +3535,7 @@
3554
3535
  "modifier_mathematical": {
3555
3536
  "level": 0,
3556
3537
  "marker": "mathematical",
3538
+ "number": "one",
3557
3539
  "range": {
3558
3540
  "end": 27,
3559
3541
  "start": 16
@@ -3709,6 +3691,8 @@
3709
3691
  "marker": "is",
3710
3692
  "number": "many",
3711
3693
  "one": {
3694
+ "default": true,
3695
+ "isList": true,
3712
3696
  "level": 1,
3713
3697
  "listable": true,
3714
3698
  "marker": "list",
@@ -3717,7 +3701,7 @@
3717
3701
  "end": 53,
3718
3702
  "start": 0
3719
3703
  },
3720
- "text": "fahrenheit",
3704
+ "text": "fahrenheit celcuis and kelvin",
3721
3705
  "types": [
3722
3706
  "list",
3723
3707
  "unknown"
@@ -3738,7 +3722,7 @@
3738
3722
  },
3739
3723
  {
3740
3724
  "dead": true,
3741
- "level": 2,
3725
+ "level": 1,
3742
3726
  "marker": "unknown",
3743
3727
  "range": {
3744
3728
  "end": 17,
@@ -3751,7 +3735,7 @@
3751
3735
  },
3752
3736
  {
3753
3737
  "dead": true,
3754
- "level": 2,
3738
+ "level": 1,
3755
3739
  "marker": "unknown",
3756
3740
  "range": {
3757
3741
  "end": 28,
@@ -3762,7 +3746,8 @@
3762
3746
  "value": "kelvin",
3763
3747
  "word": "kelvin"
3764
3748
  }
3765
- ]
3749
+ ],
3750
+ "word": "and"
3766
3751
  },
3767
3752
  "range": {
3768
3753
  "end": 53,
@@ -4138,10 +4123,6 @@
4138
4123
  "list",
4139
4124
  1
4140
4125
  ],
4141
- [
4142
- "list",
4143
- 1
4144
- ],
4145
4126
  [
4146
4127
  "propertyOf",
4147
4128
  0
@@ -4158,35 +4139,6 @@
4158
4139
  },
4159
4140
  {
4160
4141
  "counter": 6,
4161
- "op": [
4162
- "list",
4163
- 1
4164
- ],
4165
- "ops": [
4166
- [
4167
- "is",
4168
- 0
4169
- ],
4170
- [
4171
- "list",
4172
- 1
4173
- ],
4174
- [
4175
- "propertyOf",
4176
- 0
4177
- ],
4178
- [
4179
- "temperature",
4180
- 0
4181
- ],
4182
- [
4183
- "unit",
4184
- 0
4185
- ]
4186
- ]
4187
- },
4188
- {
4189
- "counter": 7,
4190
4142
  "op": [
4191
4143
  "unit",
4192
4144
  0
@@ -4211,7 +4163,7 @@
4211
4163
  ]
4212
4164
  },
4213
4165
  {
4214
- "counter": 8,
4166
+ "counter": 7,
4215
4167
  "op": [
4216
4168
  "temperature",
4217
4169
  0
@@ -4232,7 +4184,7 @@
4232
4184
  ]
4233
4185
  },
4234
4186
  {
4235
- "counter": 9,
4187
+ "counter": 8,
4236
4188
  "op": [
4237
4189
  "propertyOf",
4238
4190
  0
@@ -4249,7 +4201,7 @@
4249
4201
  ]
4250
4202
  },
4251
4203
  {
4252
- "counter": 10,
4204
+ "counter": 9,
4253
4205
  "op": [
4254
4206
  "propertyOf",
4255
4207
  1
@@ -4266,7 +4218,7 @@
4266
4218
  ]
4267
4219
  },
4268
4220
  {
4269
- "counter": 11,
4221
+ "counter": 10,
4270
4222
  "op": [
4271
4223
  "is",
4272
4224
  0
@@ -4279,7 +4231,7 @@
4279
4231
  ]
4280
4232
  },
4281
4233
  {
4282
- "counter": 12,
4234
+ "counter": 11,
4283
4235
  "op": [
4284
4236
  "is",
4285
4237
  1
@@ -4361,6 +4313,7 @@
4361
4313
  "hierarchy": "hierarchy2",
4362
4314
  "math": "math2",
4363
4315
  "meta": "meta2",
4316
+ "negation": "negation2",
4364
4317
  "numbers": "numbers2",
4365
4318
  "pos": "pos2",
4366
4319
  "properties": "properties2",
@@ -4402,6 +4355,8 @@
4402
4355
  },
4403
4356
  "meta2": {
4404
4357
  },
4358
+ "negation2": {
4359
+ },
4405
4360
  "numbers2": {
4406
4361
  },
4407
4362
  "pos2": {
@@ -4439,9 +4394,6 @@
4439
4394
  "/",
4440
4395
  "-"
4441
4396
  ],
4442
- "notAble": [
4443
- "unknown"
4444
- ],
4445
4397
  "object": [
4446
4398
  "unknown",
4447
4399
  "what",
@@ -4533,7 +4485,6 @@
4533
4485
  "a",
4534
4486
  "articlePOS",
4535
4487
  "the",
4536
- "notAble",
4537
4488
  "whatAble",
4538
4489
  "is",
4539
4490
  "toAble",
@@ -4673,7 +4624,6 @@
4673
4624
  "unknown": [
4674
4625
  "hierarchyAble",
4675
4626
  "object",
4676
- "notAble",
4677
4627
  "theAble",
4678
4628
  "queryable"
4679
4629
  ],
@@ -4743,8 +4693,6 @@
4743
4693
  },
4744
4694
  "modifies": {
4745
4695
  },
4746
- "notAble": {
4747
- },
4748
4696
  "noun": {
4749
4697
  },
4750
4698
  "number": {
@@ -4883,6 +4831,8 @@
4883
4831
  "marker": "is",
4884
4832
  "number": "many",
4885
4833
  "one": {
4834
+ "default": true,
4835
+ "isList": true,
4886
4836
  "level": 1,
4887
4837
  "listable": true,
4888
4838
  "marker": "list",
@@ -4891,7 +4841,7 @@
4891
4841
  "end": 53,
4892
4842
  "start": 0
4893
4843
  },
4894
- "text": "fahrenheit",
4844
+ "text": "fahrenheit celcuis and kelvin",
4895
4845
  "types": [
4896
4846
  "list",
4897
4847
  "unknown"
@@ -4912,7 +4862,7 @@
4912
4862
  },
4913
4863
  {
4914
4864
  "dead": true,
4915
- "level": 2,
4865
+ "level": 1,
4916
4866
  "marker": "unknown",
4917
4867
  "range": {
4918
4868
  "end": 17,
@@ -4925,7 +4875,7 @@
4925
4875
  },
4926
4876
  {
4927
4877
  "dead": true,
4928
- "level": 2,
4878
+ "level": 1,
4929
4879
  "marker": "unknown",
4930
4880
  "range": {
4931
4881
  "end": 28,
@@ -4936,7 +4886,8 @@
4936
4886
  "value": "kelvin",
4937
4887
  "word": "kelvin"
4938
4888
  }
4939
- ]
4889
+ ],
4890
+ "word": "and"
4940
4891
  },
4941
4892
  "range": {
4942
4893
  "end": 53,
@@ -5104,6 +5055,8 @@
5104
5055
  "marker": "is",
5105
5056
  "number": "many",
5106
5057
  "one": {
5058
+ "default": true,
5059
+ "isList": true,
5107
5060
  "level": 1,
5108
5061
  "listable": true,
5109
5062
  "marker": "list",
@@ -5112,7 +5065,7 @@
5112
5065
  "end": 30,
5113
5066
  "start": 0
5114
5067
  },
5115
- "text": "dimension and unit are concepts",
5068
+ "text": "dimension and unit",
5116
5069
  "types": [
5117
5070
  "list",
5118
5071
  "unknown"
@@ -5120,7 +5073,7 @@
5120
5073
  "value": [
5121
5074
  {
5122
5075
  "dead": true,
5123
- "level": 2,
5076
+ "level": 1,
5124
5077
  "marker": "unknown",
5125
5078
  "range": {
5126
5079
  "end": 8,
@@ -5133,7 +5086,7 @@
5133
5086
  },
5134
5087
  {
5135
5088
  "dead": true,
5136
- "level": 2,
5089
+ "level": 1,
5137
5090
  "marker": "unknown",
5138
5091
  "range": {
5139
5092
  "end": 17,
@@ -5144,7 +5097,8 @@
5144
5097
  "value": "unit",
5145
5098
  "word": "unit"
5146
5099
  }
5147
- ]
5100
+ ],
5101
+ "word": "and"
5148
5102
  },
5149
5103
  "range": {
5150
5104
  "end": 30,
@@ -5253,6 +5207,8 @@
5253
5207
  "marker": "is",
5254
5208
  "number": "many",
5255
5209
  "one": {
5210
+ "default": true,
5211
+ "isList": true,
5256
5212
  "level": 1,
5257
5213
  "listable": true,
5258
5214
  "marker": "list",
@@ -5261,7 +5217,7 @@
5261
5217
  "end": 37,
5262
5218
  "start": 0
5263
5219
  },
5264
- "text": "* +",
5220
+ "text": "* + / and -",
5265
5221
  "types": [
5266
5222
  "list",
5267
5223
  "unknown"
@@ -5295,7 +5251,7 @@
5295
5251
  },
5296
5252
  {
5297
5253
  "dead": true,
5298
- "level": 2,
5254
+ "level": 1,
5299
5255
  "marker": "unknown",
5300
5256
  "range": {
5301
5257
  "end": 4,
@@ -5308,7 +5264,7 @@
5308
5264
  },
5309
5265
  {
5310
5266
  "dead": true,
5311
- "level": 2,
5267
+ "level": 1,
5312
5268
  "marker": "unknown",
5313
5269
  "range": {
5314
5270
  "end": 10,
@@ -5319,7 +5275,8 @@
5319
5275
  "value": "-",
5320
5276
  "word": "-"
5321
5277
  }
5322
- ]
5278
+ ],
5279
+ "word": "and"
5323
5280
  },
5324
5281
  "range": {
5325
5282
  "end": 37,
@@ -5342,6 +5299,7 @@
5342
5299
  "modifier_mathematical": {
5343
5300
  "level": 0,
5344
5301
  "marker": "mathematical",
5302
+ "number": "one",
5345
5303
  "range": {
5346
5304
  "end": 27,
5347
5305
  "start": 16
@@ -5515,6 +5473,8 @@
5515
5473
  "marker": "is",
5516
5474
  "number": "many",
5517
5475
  "one": {
5476
+ "default": true,
5477
+ "isList": true,
5518
5478
  "level": 1,
5519
5479
  "listable": true,
5520
5480
  "marker": "list",
@@ -5523,7 +5483,7 @@
5523
5483
  "end": 53,
5524
5484
  "start": 0
5525
5485
  },
5526
- "text": "fahrenheit",
5486
+ "text": "fahrenheit celcuis and kelvin",
5527
5487
  "types": [
5528
5488
  "list",
5529
5489
  "unknown"
@@ -5544,7 +5504,7 @@
5544
5504
  },
5545
5505
  {
5546
5506
  "dead": true,
5547
- "level": 2,
5507
+ "level": 1,
5548
5508
  "marker": "unknown",
5549
5509
  "range": {
5550
5510
  "end": 17,
@@ -5557,7 +5517,7 @@
5557
5517
  },
5558
5518
  {
5559
5519
  "dead": true,
5560
- "level": 2,
5520
+ "level": 1,
5561
5521
  "marker": "unknown",
5562
5522
  "range": {
5563
5523
  "end": 28,
@@ -5568,7 +5528,8 @@
5568
5528
  "value": "kelvin",
5569
5529
  "word": "kelvin"
5570
5530
  }
5571
- ]
5531
+ ],
5532
+ "word": "and"
5572
5533
  },
5573
5534
  "range": {
5574
5535
  "end": 53,
@@ -5960,10 +5921,6 @@
5960
5921
  "list",
5961
5922
  1
5962
5923
  ],
5963
- [
5964
- "list",
5965
- 1
5966
- ],
5967
5924
  [
5968
5925
  "propertyOf",
5969
5926
  0
@@ -5980,35 +5937,6 @@
5980
5937
  },
5981
5938
  {
5982
5939
  "counter": 6,
5983
- "op": [
5984
- "list",
5985
- 1
5986
- ],
5987
- "ops": [
5988
- [
5989
- "is",
5990
- 0
5991
- ],
5992
- [
5993
- "list",
5994
- 1
5995
- ],
5996
- [
5997
- "propertyOf",
5998
- 0
5999
- ],
6000
- [
6001
- "temperature",
6002
- 0
6003
- ],
6004
- [
6005
- "unit",
6006
- 0
6007
- ]
6008
- ]
6009
- },
6010
- {
6011
- "counter": 7,
6012
5940
  "op": [
6013
5941
  "unit",
6014
5942
  0
@@ -6033,7 +5961,7 @@
6033
5961
  ]
6034
5962
  },
6035
5963
  {
6036
- "counter": 8,
5964
+ "counter": 7,
6037
5965
  "op": [
6038
5966
  "temperature",
6039
5967
  0
@@ -6054,7 +5982,7 @@
6054
5982
  ]
6055
5983
  },
6056
5984
  {
6057
- "counter": 9,
5985
+ "counter": 8,
6058
5986
  "op": [
6059
5987
  "propertyOf",
6060
5988
  0
@@ -6071,7 +5999,7 @@
6071
5999
  ]
6072
6000
  },
6073
6001
  {
6074
- "counter": 10,
6002
+ "counter": 9,
6075
6003
  "op": [
6076
6004
  "propertyOf",
6077
6005
  1
@@ -6088,7 +6016,7 @@
6088
6016
  ]
6089
6017
  },
6090
6018
  {
6091
- "counter": 11,
6019
+ "counter": 10,
6092
6020
  "op": [
6093
6021
  "is",
6094
6022
  0
@@ -6101,7 +6029,7 @@
6101
6029
  ]
6102
6030
  },
6103
6031
  {
6104
- "counter": 12,
6032
+ "counter": 11,
6105
6033
  "op": [
6106
6034
  "is",
6107
6035
  1
@@ -6204,6 +6132,7 @@
6204
6132
  "hierarchy": "hierarchy2",
6205
6133
  "math": "math2",
6206
6134
  "meta": "meta2",
6135
+ "negation": "negation2",
6207
6136
  "numbers": "numbers2",
6208
6137
  "pos": "pos2",
6209
6138
  "properties": "properties2",
@@ -6245,6 +6174,8 @@
6245
6174
  },
6246
6175
  "meta2": {
6247
6176
  },
6177
+ "negation2": {
6178
+ },
6248
6179
  "numbers2": {
6249
6180
  },
6250
6181
  "pos2": {
@@ -6282,9 +6213,6 @@
6282
6213
  "/",
6283
6214
  "-"
6284
6215
  ],
6285
- "notAble": [
6286
- "unknown"
6287
- ],
6288
6216
  "object": [
6289
6217
  "unknown",
6290
6218
  "what",
@@ -6376,7 +6304,6 @@
6376
6304
  "a",
6377
6305
  "articlePOS",
6378
6306
  "the",
6379
- "notAble",
6380
6307
  "whatAble",
6381
6308
  "is",
6382
6309
  "toAble",
@@ -6516,7 +6443,6 @@
6516
6443
  "unknown": [
6517
6444
  "hierarchyAble",
6518
6445
  "object",
6519
- "notAble",
6520
6446
  "theAble",
6521
6447
  "queryable"
6522
6448
  ],
@@ -6586,8 +6512,6 @@
6586
6512
  },
6587
6513
  "modifies": {
6588
6514
  },
6589
- "notAble": {
6590
- },
6591
6515
  "noun": {
6592
6516
  },
6593
6517
  "number": {
@@ -6742,6 +6666,8 @@
6742
6666
  "marker": "is",
6743
6667
  "number": "many",
6744
6668
  "one": {
6669
+ "default": true,
6670
+ "isList": true,
6745
6671
  "level": 1,
6746
6672
  "listable": true,
6747
6673
  "marker": "list",
@@ -6750,7 +6676,7 @@
6750
6676
  "end": 53,
6751
6677
  "start": 0
6752
6678
  },
6753
- "text": "fahrenheit",
6679
+ "text": "fahrenheit celcuis and kelvin",
6754
6680
  "types": [
6755
6681
  "list",
6756
6682
  "unknown"
@@ -6771,7 +6697,7 @@
6771
6697
  },
6772
6698
  {
6773
6699
  "dead": true,
6774
- "level": 2,
6700
+ "level": 1,
6775
6701
  "marker": "unknown",
6776
6702
  "range": {
6777
6703
  "end": 17,
@@ -6784,7 +6710,7 @@
6784
6710
  },
6785
6711
  {
6786
6712
  "dead": true,
6787
- "level": 2,
6713
+ "level": 1,
6788
6714
  "marker": "unknown",
6789
6715
  "range": {
6790
6716
  "end": 28,
@@ -6795,7 +6721,8 @@
6795
6721
  "value": "kelvin",
6796
6722
  "word": "kelvin"
6797
6723
  }
6798
- ]
6724
+ ],
6725
+ "word": "and"
6799
6726
  },
6800
6727
  "range": {
6801
6728
  "end": 53,
@@ -6963,6 +6890,8 @@
6963
6890
  "marker": "is",
6964
6891
  "number": "many",
6965
6892
  "one": {
6893
+ "default": true,
6894
+ "isList": true,
6966
6895
  "level": 1,
6967
6896
  "listable": true,
6968
6897
  "marker": "list",
@@ -6971,7 +6900,7 @@
6971
6900
  "end": 30,
6972
6901
  "start": 0
6973
6902
  },
6974
- "text": "dimension and unit are concepts",
6903
+ "text": "dimension and unit",
6975
6904
  "types": [
6976
6905
  "list",
6977
6906
  "unknown"
@@ -6979,7 +6908,7 @@
6979
6908
  "value": [
6980
6909
  {
6981
6910
  "dead": true,
6982
- "level": 2,
6911
+ "level": 1,
6983
6912
  "marker": "unknown",
6984
6913
  "range": {
6985
6914
  "end": 8,
@@ -6992,7 +6921,7 @@
6992
6921
  },
6993
6922
  {
6994
6923
  "dead": true,
6995
- "level": 2,
6924
+ "level": 1,
6996
6925
  "marker": "unknown",
6997
6926
  "range": {
6998
6927
  "end": 17,
@@ -7003,7 +6932,8 @@
7003
6932
  "value": "unit",
7004
6933
  "word": "unit"
7005
6934
  }
7006
- ]
6935
+ ],
6936
+ "word": "and"
7007
6937
  },
7008
6938
  "range": {
7009
6939
  "end": 30,
@@ -7112,6 +7042,8 @@
7112
7042
  "marker": "is",
7113
7043
  "number": "many",
7114
7044
  "one": {
7045
+ "default": true,
7046
+ "isList": true,
7115
7047
  "level": 1,
7116
7048
  "listable": true,
7117
7049
  "marker": "list",
@@ -7120,7 +7052,7 @@
7120
7052
  "end": 37,
7121
7053
  "start": 0
7122
7054
  },
7123
- "text": "* +",
7055
+ "text": "* + / and -",
7124
7056
  "types": [
7125
7057
  "list",
7126
7058
  "unknown"
@@ -7154,7 +7086,7 @@
7154
7086
  },
7155
7087
  {
7156
7088
  "dead": true,
7157
- "level": 2,
7089
+ "level": 1,
7158
7090
  "marker": "unknown",
7159
7091
  "range": {
7160
7092
  "end": 4,
@@ -7167,7 +7099,7 @@
7167
7099
  },
7168
7100
  {
7169
7101
  "dead": true,
7170
- "level": 2,
7102
+ "level": 1,
7171
7103
  "marker": "unknown",
7172
7104
  "range": {
7173
7105
  "end": 10,
@@ -7178,7 +7110,8 @@
7178
7110
  "value": "-",
7179
7111
  "word": "-"
7180
7112
  }
7181
- ]
7113
+ ],
7114
+ "word": "and"
7182
7115
  },
7183
7116
  "range": {
7184
7117
  "end": 37,
@@ -7201,6 +7134,7 @@
7201
7134
  "modifier_mathematical": {
7202
7135
  "level": 0,
7203
7136
  "marker": "mathematical",
7137
+ "number": "one",
7204
7138
  "range": {
7205
7139
  "end": 27,
7206
7140
  "start": 16
@@ -7406,6 +7340,8 @@
7406
7340
  "marker": "is",
7407
7341
  "number": "many",
7408
7342
  "one": {
7343
+ "default": true,
7344
+ "isList": true,
7409
7345
  "level": 1,
7410
7346
  "listable": true,
7411
7347
  "marker": "list",
@@ -7414,7 +7350,7 @@
7414
7350
  "end": 53,
7415
7351
  "start": 0
7416
7352
  },
7417
- "text": "fahrenheit",
7353
+ "text": "fahrenheit celcuis and kelvin",
7418
7354
  "types": [
7419
7355
  "list",
7420
7356
  "unknown"
@@ -7435,7 +7371,7 @@
7435
7371
  },
7436
7372
  {
7437
7373
  "dead": true,
7438
- "level": 2,
7374
+ "level": 1,
7439
7375
  "marker": "unknown",
7440
7376
  "range": {
7441
7377
  "end": 17,
@@ -7448,7 +7384,7 @@
7448
7384
  },
7449
7385
  {
7450
7386
  "dead": true,
7451
- "level": 2,
7387
+ "level": 1,
7452
7388
  "marker": "unknown",
7453
7389
  "range": {
7454
7390
  "end": 28,
@@ -7459,7 +7395,8 @@
7459
7395
  "value": "kelvin",
7460
7396
  "word": "kelvin"
7461
7397
  }
7462
- ]
7398
+ ],
7399
+ "word": "and"
7463
7400
  },
7464
7401
  "range": {
7465
7402
  "end": 53,
@@ -7882,10 +7819,6 @@
7882
7819
  "list",
7883
7820
  1
7884
7821
  ],
7885
- [
7886
- "list",
7887
- 1
7888
- ],
7889
7822
  [
7890
7823
  "propertyOf",
7891
7824
  0
@@ -7902,35 +7835,6 @@
7902
7835
  },
7903
7836
  {
7904
7837
  "counter": 6,
7905
- "op": [
7906
- "list",
7907
- 1
7908
- ],
7909
- "ops": [
7910
- [
7911
- "is",
7912
- 0
7913
- ],
7914
- [
7915
- "list",
7916
- 1
7917
- ],
7918
- [
7919
- "propertyOf",
7920
- 0
7921
- ],
7922
- [
7923
- "temperature",
7924
- 0
7925
- ],
7926
- [
7927
- "unit",
7928
- 0
7929
- ]
7930
- ]
7931
- },
7932
- {
7933
- "counter": 7,
7934
7838
  "op": [
7935
7839
  "unit",
7936
7840
  0
@@ -7955,7 +7859,7 @@
7955
7859
  ]
7956
7860
  },
7957
7861
  {
7958
- "counter": 8,
7862
+ "counter": 7,
7959
7863
  "op": [
7960
7864
  "temperature",
7961
7865
  0
@@ -7976,7 +7880,7 @@
7976
7880
  ]
7977
7881
  },
7978
7882
  {
7979
- "counter": 9,
7883
+ "counter": 8,
7980
7884
  "op": [
7981
7885
  "propertyOf",
7982
7886
  0
@@ -7993,7 +7897,7 @@
7993
7897
  ]
7994
7898
  },
7995
7899
  {
7996
- "counter": 10,
7900
+ "counter": 9,
7997
7901
  "op": [
7998
7902
  "propertyOf",
7999
7903
  1
@@ -8010,7 +7914,7 @@
8010
7914
  ]
8011
7915
  },
8012
7916
  {
8013
- "counter": 11,
7917
+ "counter": 10,
8014
7918
  "op": [
8015
7919
  "is",
8016
7920
  0
@@ -8023,7 +7927,7 @@
8023
7927
  ]
8024
7928
  },
8025
7929
  {
8026
- "counter": 12,
7930
+ "counter": 11,
8027
7931
  "op": [
8028
7932
  "is",
8029
7933
  1
@@ -8192,6 +8096,7 @@
8192
8096
  "hierarchy": "hierarchy2",
8193
8097
  "math": "math2",
8194
8098
  "meta": "meta2",
8099
+ "negation": "negation2",
8195
8100
  "numbers": "numbers2",
8196
8101
  "pos": "pos2",
8197
8102
  "properties": "properties2",
@@ -8233,6 +8138,8 @@
8233
8138
  },
8234
8139
  "meta2": {
8235
8140
  },
8141
+ "negation2": {
8142
+ },
8236
8143
  "numbers2": {
8237
8144
  },
8238
8145
  "pos2": {
@@ -8270,9 +8177,6 @@
8270
8177
  "/",
8271
8178
  "-"
8272
8179
  ],
8273
- "notAble": [
8274
- "unknown"
8275
- ],
8276
8180
  "object": [
8277
8181
  "unknown",
8278
8182
  "what",
@@ -8364,7 +8268,6 @@
8364
8268
  "a",
8365
8269
  "articlePOS",
8366
8270
  "the",
8367
- "notAble",
8368
8271
  "whatAble",
8369
8272
  "is",
8370
8273
  "toAble",
@@ -8504,7 +8407,6 @@
8504
8407
  "unknown": [
8505
8408
  "hierarchyAble",
8506
8409
  "object",
8507
- "notAble",
8508
8410
  "theAble",
8509
8411
  "queryable"
8510
8412
  ],
@@ -8574,8 +8476,6 @@
8574
8476
  },
8575
8477
  "modifies": {
8576
8478
  },
8577
- "notAble": {
8578
- },
8579
8479
  "noun": {
8580
8480
  },
8581
8481
  "number": {
@@ -8761,6 +8661,8 @@
8761
8661
  "marker": "is",
8762
8662
  "number": "many",
8763
8663
  "one": {
8664
+ "default": true,
8665
+ "isList": true,
8764
8666
  "level": 1,
8765
8667
  "listable": true,
8766
8668
  "marker": "list",
@@ -8769,7 +8671,7 @@
8769
8671
  "end": 53,
8770
8672
  "start": 0
8771
8673
  },
8772
- "text": "fahrenheit",
8674
+ "text": "fahrenheit celcuis and kelvin",
8773
8675
  "types": [
8774
8676
  "list",
8775
8677
  "unknown"
@@ -8790,7 +8692,7 @@
8790
8692
  },
8791
8693
  {
8792
8694
  "dead": true,
8793
- "level": 2,
8695
+ "level": 1,
8794
8696
  "marker": "unknown",
8795
8697
  "range": {
8796
8698
  "end": 17,
@@ -8803,7 +8705,7 @@
8803
8705
  },
8804
8706
  {
8805
8707
  "dead": true,
8806
- "level": 2,
8708
+ "level": 1,
8807
8709
  "marker": "unknown",
8808
8710
  "range": {
8809
8711
  "end": 28,
@@ -8814,7 +8716,8 @@
8814
8716
  "value": "kelvin",
8815
8717
  "word": "kelvin"
8816
8718
  }
8817
- ]
8719
+ ],
8720
+ "word": "and"
8818
8721
  },
8819
8722
  "range": {
8820
8723
  "end": 53,
@@ -8982,6 +8885,8 @@
8982
8885
  "marker": "is",
8983
8886
  "number": "many",
8984
8887
  "one": {
8888
+ "default": true,
8889
+ "isList": true,
8985
8890
  "level": 1,
8986
8891
  "listable": true,
8987
8892
  "marker": "list",
@@ -8990,7 +8895,7 @@
8990
8895
  "end": 30,
8991
8896
  "start": 0
8992
8897
  },
8993
- "text": "dimension and unit are concepts",
8898
+ "text": "dimension and unit",
8994
8899
  "types": [
8995
8900
  "list",
8996
8901
  "unknown"
@@ -8998,7 +8903,7 @@
8998
8903
  "value": [
8999
8904
  {
9000
8905
  "dead": true,
9001
- "level": 2,
8906
+ "level": 1,
9002
8907
  "marker": "unknown",
9003
8908
  "range": {
9004
8909
  "end": 8,
@@ -9011,7 +8916,7 @@
9011
8916
  },
9012
8917
  {
9013
8918
  "dead": true,
9014
- "level": 2,
8919
+ "level": 1,
9015
8920
  "marker": "unknown",
9016
8921
  "range": {
9017
8922
  "end": 17,
@@ -9022,7 +8927,8 @@
9022
8927
  "value": "unit",
9023
8928
  "word": "unit"
9024
8929
  }
9025
- ]
8930
+ ],
8931
+ "word": "and"
9026
8932
  },
9027
8933
  "range": {
9028
8934
  "end": 30,
@@ -9131,6 +9037,8 @@
9131
9037
  "marker": "is",
9132
9038
  "number": "many",
9133
9039
  "one": {
9040
+ "default": true,
9041
+ "isList": true,
9134
9042
  "level": 1,
9135
9043
  "listable": true,
9136
9044
  "marker": "list",
@@ -9139,7 +9047,7 @@
9139
9047
  "end": 37,
9140
9048
  "start": 0
9141
9049
  },
9142
- "text": "* +",
9050
+ "text": "* + / and -",
9143
9051
  "types": [
9144
9052
  "list",
9145
9053
  "unknown"
@@ -9173,7 +9081,7 @@
9173
9081
  },
9174
9082
  {
9175
9083
  "dead": true,
9176
- "level": 2,
9084
+ "level": 1,
9177
9085
  "marker": "unknown",
9178
9086
  "range": {
9179
9087
  "end": 4,
@@ -9186,7 +9094,7 @@
9186
9094
  },
9187
9095
  {
9188
9096
  "dead": true,
9189
- "level": 2,
9097
+ "level": 1,
9190
9098
  "marker": "unknown",
9191
9099
  "range": {
9192
9100
  "end": 10,
@@ -9197,7 +9105,8 @@
9197
9105
  "value": "-",
9198
9106
  "word": "-"
9199
9107
  }
9200
- ]
9108
+ ],
9109
+ "word": "and"
9201
9110
  },
9202
9111
  "range": {
9203
9112
  "end": 37,
@@ -9220,6 +9129,7 @@
9220
9129
  "modifier_mathematical": {
9221
9130
  "level": 0,
9222
9131
  "marker": "mathematical",
9132
+ "number": "one",
9223
9133
  "range": {
9224
9134
  "end": 27,
9225
9135
  "start": 16
@@ -9485,6 +9395,8 @@
9485
9395
  "marker": "is",
9486
9396
  "number": "many",
9487
9397
  "one": {
9398
+ "default": true,
9399
+ "isList": true,
9488
9400
  "level": 1,
9489
9401
  "listable": true,
9490
9402
  "marker": "list",
@@ -9493,7 +9405,7 @@
9493
9405
  "end": 53,
9494
9406
  "start": 0
9495
9407
  },
9496
- "text": "fahrenheit",
9408
+ "text": "fahrenheit celcuis and kelvin",
9497
9409
  "types": [
9498
9410
  "list",
9499
9411
  "unknown"
@@ -9514,7 +9426,7 @@
9514
9426
  },
9515
9427
  {
9516
9428
  "dead": true,
9517
- "level": 2,
9429
+ "level": 1,
9518
9430
  "marker": "unknown",
9519
9431
  "range": {
9520
9432
  "end": 17,
@@ -9527,7 +9439,7 @@
9527
9439
  },
9528
9440
  {
9529
9441
  "dead": true,
9530
- "level": 2,
9442
+ "level": 1,
9531
9443
  "marker": "unknown",
9532
9444
  "range": {
9533
9445
  "end": 28,
@@ -9538,7 +9450,8 @@
9538
9450
  "value": "kelvin",
9539
9451
  "word": "kelvin"
9540
9452
  }
9541
- ]
9453
+ ],
9454
+ "word": "and"
9542
9455
  },
9543
9456
  "range": {
9544
9457
  "end": 53,
@@ -9770,7 +9683,7 @@
9770
9683
  "touchedBy": [
9771
9684
  "dimension#call2"
9772
9685
  ],
9773
- "value": "=",
9686
+ "value": "equals",
9774
9687
  "word": "="
9775
9688
  },
9776
9689
  {
@@ -10511,10 +10424,6 @@
10511
10424
  "list",
10512
10425
  1
10513
10426
  ],
10514
- [
10515
- "list",
10516
- 1
10517
- ],
10518
10427
  [
10519
10428
  "propertyOf",
10520
10429
  0
@@ -10531,35 +10440,6 @@
10531
10440
  },
10532
10441
  {
10533
10442
  "counter": 6,
10534
- "op": [
10535
- "list",
10536
- 1
10537
- ],
10538
- "ops": [
10539
- [
10540
- "is",
10541
- 0
10542
- ],
10543
- [
10544
- "list",
10545
- 1
10546
- ],
10547
- [
10548
- "propertyOf",
10549
- 0
10550
- ],
10551
- [
10552
- "temperature",
10553
- 0
10554
- ],
10555
- [
10556
- "unit",
10557
- 0
10558
- ]
10559
- ]
10560
- },
10561
- {
10562
- "counter": 7,
10563
10443
  "op": [
10564
10444
  "unit",
10565
10445
  0
@@ -10584,7 +10464,7 @@
10584
10464
  ]
10585
10465
  },
10586
10466
  {
10587
- "counter": 8,
10467
+ "counter": 7,
10588
10468
  "op": [
10589
10469
  "temperature",
10590
10470
  0
@@ -10605,7 +10485,7 @@
10605
10485
  ]
10606
10486
  },
10607
10487
  {
10608
- "counter": 9,
10488
+ "counter": 8,
10609
10489
  "op": [
10610
10490
  "propertyOf",
10611
10491
  0
@@ -10622,7 +10502,7 @@
10622
10502
  ]
10623
10503
  },
10624
10504
  {
10625
- "counter": 10,
10505
+ "counter": 9,
10626
10506
  "op": [
10627
10507
  "propertyOf",
10628
10508
  1
@@ -10639,7 +10519,7 @@
10639
10519
  ]
10640
10520
  },
10641
10521
  {
10642
- "counter": 11,
10522
+ "counter": 10,
10643
10523
  "op": [
10644
10524
  "is",
10645
10525
  0
@@ -10652,7 +10532,7 @@
10652
10532
  ]
10653
10533
  },
10654
10534
  {
10655
- "counter": 12,
10535
+ "counter": 11,
10656
10536
  "op": [
10657
10537
  "is",
10658
10538
  1
@@ -11177,6 +11057,7 @@
11177
11057
  "hierarchy": "hierarchy2",
11178
11058
  "math": "math2",
11179
11059
  "meta": "meta2",
11060
+ "negation": "negation2",
11180
11061
  "numbers": "numbers2",
11181
11062
  "pos": "pos2",
11182
11063
  "properties": "properties2",
@@ -11362,7 +11243,7 @@
11362
11243
  "touchedBy": [
11363
11244
  "dimension#call2"
11364
11245
  ],
11365
- "value": "=",
11246
+ "value": "equals",
11366
11247
  "word": "="
11367
11248
  },
11368
11249
  "formula": {
@@ -11516,6 +11397,8 @@
11516
11397
  },
11517
11398
  "meta2": {
11518
11399
  },
11400
+ "negation2": {
11401
+ },
11519
11402
  "numbers2": {
11520
11403
  },
11521
11404
  "pos2": {
@@ -11553,9 +11436,6 @@
11553
11436
  "/",
11554
11437
  "-"
11555
11438
  ],
11556
- "notAble": [
11557
- "unknown"
11558
- ],
11559
11439
  "object": [
11560
11440
  "unknown",
11561
11441
  "what",
@@ -11647,7 +11527,6 @@
11647
11527
  "a",
11648
11528
  "articlePOS",
11649
11529
  "the",
11650
- "notAble",
11651
11530
  "whatAble",
11652
11531
  "is",
11653
11532
  "toAble",
@@ -11787,7 +11666,6 @@
11787
11666
  "unknown": [
11788
11667
  "hierarchyAble",
11789
11668
  "object",
11790
- "notAble",
11791
11669
  "theAble",
11792
11670
  "queryable"
11793
11671
  ],
@@ -11857,8 +11735,6 @@
11857
11735
  },
11858
11736
  "modifies": {
11859
11737
  },
11860
- "notAble": {
11861
- },
11862
11738
  "noun": {
11863
11739
  },
11864
11740
  "number": {
@@ -12621,7 +12497,7 @@
12621
12497
  "touchedBy": [
12622
12498
  "dimension#call2"
12623
12499
  ],
12624
- "value": "=",
12500
+ "value": "equals",
12625
12501
  "word": "="
12626
12502
  },
12627
12503
  "generatedParenthesized": "",
@@ -12638,6 +12514,8 @@
12638
12514
  "marker": "is",
12639
12515
  "number": "many",
12640
12516
  "one": {
12517
+ "default": true,
12518
+ "isList": true,
12641
12519
  "level": 1,
12642
12520
  "listable": true,
12643
12521
  "marker": "list",
@@ -12646,7 +12524,7 @@
12646
12524
  "end": 53,
12647
12525
  "start": 0
12648
12526
  },
12649
- "text": "fahrenheit",
12527
+ "text": "fahrenheit celcuis and kelvin",
12650
12528
  "types": [
12651
12529
  "list",
12652
12530
  "unknown"
@@ -12667,7 +12545,7 @@
12667
12545
  },
12668
12546
  {
12669
12547
  "dead": true,
12670
- "level": 2,
12548
+ "level": 1,
12671
12549
  "marker": "unknown",
12672
12550
  "range": {
12673
12551
  "end": 17,
@@ -12680,7 +12558,7 @@
12680
12558
  },
12681
12559
  {
12682
12560
  "dead": true,
12683
- "level": 2,
12561
+ "level": 1,
12684
12562
  "marker": "unknown",
12685
12563
  "range": {
12686
12564
  "end": 28,
@@ -12691,7 +12569,8 @@
12691
12569
  "value": "kelvin",
12692
12570
  "word": "kelvin"
12693
12571
  }
12694
- ]
12572
+ ],
12573
+ "word": "and"
12695
12574
  },
12696
12575
  "range": {
12697
12576
  "end": 53,
@@ -12859,6 +12738,8 @@
12859
12738
  "marker": "is",
12860
12739
  "number": "many",
12861
12740
  "one": {
12741
+ "default": true,
12742
+ "isList": true,
12862
12743
  "level": 1,
12863
12744
  "listable": true,
12864
12745
  "marker": "list",
@@ -12867,7 +12748,7 @@
12867
12748
  "end": 30,
12868
12749
  "start": 0
12869
12750
  },
12870
- "text": "dimension and unit are concepts",
12751
+ "text": "dimension and unit",
12871
12752
  "types": [
12872
12753
  "list",
12873
12754
  "unknown"
@@ -12875,7 +12756,7 @@
12875
12756
  "value": [
12876
12757
  {
12877
12758
  "dead": true,
12878
- "level": 2,
12759
+ "level": 1,
12879
12760
  "marker": "unknown",
12880
12761
  "range": {
12881
12762
  "end": 8,
@@ -12888,7 +12769,7 @@
12888
12769
  },
12889
12770
  {
12890
12771
  "dead": true,
12891
- "level": 2,
12772
+ "level": 1,
12892
12773
  "marker": "unknown",
12893
12774
  "range": {
12894
12775
  "end": 17,
@@ -12899,7 +12780,8 @@
12899
12780
  "value": "unit",
12900
12781
  "word": "unit"
12901
12782
  }
12902
- ]
12783
+ ],
12784
+ "word": "and"
12903
12785
  },
12904
12786
  "range": {
12905
12787
  "end": 30,
@@ -13067,20 +12949,6 @@
13067
12949
  0
13068
12950
  ]
13069
12951
  ],
13070
- [
13071
- [
13072
- "convertToUnits",
13073
- 0
13074
- ],
13075
- [
13076
- "is",
13077
- 0
13078
- ],
13079
- [
13080
- "what",
13081
- 0
13082
- ]
13083
- ],
13084
12952
  [
13085
12953
  [
13086
12954
  "convertToUnits",
@@ -13171,6 +13039,8 @@
13171
13039
  "marker": "is",
13172
13040
  "number": "many",
13173
13041
  "one": {
13042
+ "default": true,
13043
+ "isList": true,
13174
13044
  "level": 1,
13175
13045
  "listable": true,
13176
13046
  "marker": "list",
@@ -13179,7 +13049,7 @@
13179
13049
  "end": 24,
13180
13050
  "start": 0
13181
13051
  },
13182
- "text": "a1 and b1 are units of d1",
13052
+ "text": "a1 and b1",
13183
13053
  "types": [
13184
13054
  "list",
13185
13055
  "unknown"
@@ -13187,7 +13057,7 @@
13187
13057
  "value": [
13188
13058
  {
13189
13059
  "dead": true,
13190
- "level": 2,
13060
+ "level": 1,
13191
13061
  "marker": "unknown",
13192
13062
  "range": {
13193
13063
  "end": 1,
@@ -13200,7 +13070,7 @@
13200
13070
  },
13201
13071
  {
13202
13072
  "dead": true,
13203
- "level": 2,
13073
+ "level": 1,
13204
13074
  "marker": "unknown",
13205
13075
  "range": {
13206
13076
  "end": 8,
@@ -13211,7 +13081,8 @@
13211
13081
  "value": "b1",
13212
13082
  "word": "b1"
13213
13083
  }
13214
- ]
13084
+ ],
13085
+ "word": "and"
13215
13086
  },
13216
13087
  "range": {
13217
13088
  "end": 24,
@@ -13407,7 +13278,7 @@
13407
13278
  "word": "are"
13408
13279
  },
13409
13280
  "error": [
13410
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:345:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:978:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:756:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
13281
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:374:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:1007:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:740:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
13411
13282
  ],
13412
13283
  "evalue": "That is not known because there is no conversion between a1 and b1",
13413
13284
  "isResponse": true,
@@ -13681,31 +13552,6 @@
13681
13552
  },
13682
13553
  {
13683
13554
  "counter": 5,
13684
- "op": [
13685
- "list",
13686
- 1
13687
- ],
13688
- "ops": [
13689
- [
13690
- "is",
13691
- 0
13692
- ],
13693
- [
13694
- "list",
13695
- 1
13696
- ],
13697
- [
13698
- "propertyOf",
13699
- 0
13700
- ],
13701
- [
13702
- "unit",
13703
- 0
13704
- ]
13705
- ]
13706
- },
13707
- {
13708
- "counter": 6,
13709
13555
  "op": [
13710
13556
  "unit",
13711
13557
  0
@@ -13726,7 +13572,7 @@
13726
13572
  ]
13727
13573
  },
13728
13574
  {
13729
- "counter": 7,
13575
+ "counter": 6,
13730
13576
  "op": [
13731
13577
  "propertyOf",
13732
13578
  0
@@ -13743,7 +13589,7 @@
13743
13589
  ]
13744
13590
  },
13745
13591
  {
13746
- "counter": 8,
13592
+ "counter": 7,
13747
13593
  "op": [
13748
13594
  "propertyOf",
13749
13595
  1
@@ -13760,7 +13606,7 @@
13760
13606
  ]
13761
13607
  },
13762
13608
  {
13763
- "counter": 9,
13609
+ "counter": 8,
13764
13610
  "op": [
13765
13611
  "is",
13766
13612
  0
@@ -13773,7 +13619,7 @@
13773
13619
  ]
13774
13620
  },
13775
13621
  {
13776
- "counter": 10,
13622
+ "counter": 9,
13777
13623
  "op": [
13778
13624
  "is",
13779
13625
  1
@@ -14004,6 +13850,7 @@
14004
13850
  "hierarchy": "hierarchy2",
14005
13851
  "math": "math2",
14006
13852
  "meta": "meta2",
13853
+ "negation": "negation2",
14007
13854
  "numbers": "numbers2",
14008
13855
  "pos": "pos2",
14009
13856
  "properties": "properties2",
@@ -14045,6 +13892,8 @@
14045
13892
  },
14046
13893
  "meta2": {
14047
13894
  },
13895
+ "negation2": {
13896
+ },
14048
13897
  "numbers2": {
14049
13898
  },
14050
13899
  "pos2": {
@@ -14082,9 +13931,6 @@
14082
13931
  "/",
14083
13932
  "-"
14084
13933
  ],
14085
- "notAble": [
14086
- "unknown"
14087
- ],
14088
13934
  "object": [
14089
13935
  "unknown",
14090
13936
  "what",
@@ -14175,7 +14021,6 @@
14175
14021
  "a",
14176
14022
  "articlePOS",
14177
14023
  "the",
14178
- "notAble",
14179
14024
  "whatAble",
14180
14025
  "is",
14181
14026
  "toAble",
@@ -14311,7 +14156,6 @@
14311
14156
  "unknown": [
14312
14157
  "hierarchyAble",
14313
14158
  "object",
14314
- "notAble",
14315
14159
  "theAble",
14316
14160
  "queryable"
14317
14161
  ],
@@ -14381,8 +14225,6 @@
14381
14225
  },
14382
14226
  "modifies": {
14383
14227
  },
14384
- "notAble": {
14385
- },
14386
14228
  "noun": {
14387
14229
  },
14388
14230
  "number": {
@@ -14618,7 +14460,7 @@
14618
14460
  "word": "are"
14619
14461
  },
14620
14462
  "error": [
14621
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:345:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:978:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:756:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
14463
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:374:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:1007:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:740:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
14622
14464
  ],
14623
14465
  "evalue": "That is not known because there is no conversion between a1 and b1",
14624
14466
  "isResponse": true,
@@ -14683,6 +14525,8 @@
14683
14525
  "marker": "is",
14684
14526
  "number": "many",
14685
14527
  "one": {
14528
+ "default": true,
14529
+ "isList": true,
14686
14530
  "level": 1,
14687
14531
  "listable": true,
14688
14532
  "marker": "list",
@@ -14691,7 +14535,7 @@
14691
14535
  "end": 24,
14692
14536
  "start": 0
14693
14537
  },
14694
- "text": "a1 and b1 are units of d1",
14538
+ "text": "a1 and b1",
14695
14539
  "types": [
14696
14540
  "list",
14697
14541
  "unknown"
@@ -14699,7 +14543,7 @@
14699
14543
  "value": [
14700
14544
  {
14701
14545
  "dead": true,
14702
- "level": 2,
14546
+ "level": 1,
14703
14547
  "marker": "unknown",
14704
14548
  "range": {
14705
14549
  "end": 1,
@@ -14712,7 +14556,7 @@
14712
14556
  },
14713
14557
  {
14714
14558
  "dead": true,
14715
- "level": 2,
14559
+ "level": 1,
14716
14560
  "marker": "unknown",
14717
14561
  "range": {
14718
14562
  "end": 8,
@@ -14723,7 +14567,8 @@
14723
14567
  "value": "b1",
14724
14568
  "word": "b1"
14725
14569
  }
14726
- ]
14570
+ ],
14571
+ "word": "and"
14727
14572
  },
14728
14573
  "range": {
14729
14574
  "end": 24,
@@ -14891,6 +14736,8 @@
14891
14736
  "marker": "is",
14892
14737
  "number": "many",
14893
14738
  "one": {
14739
+ "default": true,
14740
+ "isList": true,
14894
14741
  "level": 1,
14895
14742
  "listable": true,
14896
14743
  "marker": "list",
@@ -14899,7 +14746,7 @@
14899
14746
  "end": 30,
14900
14747
  "start": 0
14901
14748
  },
14902
- "text": "dimension and unit are concepts",
14749
+ "text": "dimension and unit",
14903
14750
  "types": [
14904
14751
  "list",
14905
14752
  "unknown"
@@ -14907,7 +14754,7 @@
14907
14754
  "value": [
14908
14755
  {
14909
14756
  "dead": true,
14910
- "level": 2,
14757
+ "level": 1,
14911
14758
  "marker": "unknown",
14912
14759
  "range": {
14913
14760
  "end": 8,
@@ -14920,7 +14767,7 @@
14920
14767
  },
14921
14768
  {
14922
14769
  "dead": true,
14923
- "level": 2,
14770
+ "level": 1,
14924
14771
  "marker": "unknown",
14925
14772
  "range": {
14926
14773
  "end": 17,
@@ -14931,7 +14778,8 @@
14931
14778
  "value": "unit",
14932
14779
  "word": "unit"
14933
14780
  }
14934
- ]
14781
+ ],
14782
+ "word": "and"
14935
14783
  },
14936
14784
  "range": {
14937
14785
  "end": 30,
@@ -15040,6 +14888,8 @@
15040
14888
  "marker": "is",
15041
14889
  "number": "many",
15042
14890
  "one": {
14891
+ "default": true,
14892
+ "isList": true,
15043
14893
  "level": 1,
15044
14894
  "listable": true,
15045
14895
  "marker": "list",
@@ -15048,7 +14898,7 @@
15048
14898
  "end": 37,
15049
14899
  "start": 0
15050
14900
  },
15051
- "text": "* +",
14901
+ "text": "* + / and -",
15052
14902
  "types": [
15053
14903
  "list",
15054
14904
  "unknown"
@@ -15082,7 +14932,7 @@
15082
14932
  },
15083
14933
  {
15084
14934
  "dead": true,
15085
- "level": 2,
14935
+ "level": 1,
15086
14936
  "marker": "unknown",
15087
14937
  "range": {
15088
14938
  "end": 4,
@@ -15095,7 +14945,7 @@
15095
14945
  },
15096
14946
  {
15097
14947
  "dead": true,
15098
- "level": 2,
14948
+ "level": 1,
15099
14949
  "marker": "unknown",
15100
14950
  "range": {
15101
14951
  "end": 10,
@@ -15106,7 +14956,8 @@
15106
14956
  "value": "-",
15107
14957
  "word": "-"
15108
14958
  }
15109
- ]
14959
+ ],
14960
+ "word": "and"
15110
14961
  },
15111
14962
  "range": {
15112
14963
  "end": 37,
@@ -15129,6 +14980,7 @@
15129
14980
  "modifier_mathematical": {
15130
14981
  "level": 0,
15131
14982
  "marker": "mathematical",
14983
+ "number": "one",
15132
14984
  "range": {
15133
14985
  "end": 27,
15134
14986
  "start": 16
@@ -15306,6 +15158,8 @@
15306
15158
  "marker": "is",
15307
15159
  "number": "many",
15308
15160
  "one": {
15161
+ "default": true,
15162
+ "isList": true,
15309
15163
  "level": 1,
15310
15164
  "listable": true,
15311
15165
  "marker": "list",
@@ -15314,7 +15168,7 @@
15314
15168
  "end": 24,
15315
15169
  "start": 0
15316
15170
  },
15317
- "text": "a1 and b1 are units of d1",
15171
+ "text": "a1 and b1",
15318
15172
  "types": [
15319
15173
  "list",
15320
15174
  "unknown"
@@ -15322,7 +15176,7 @@
15322
15176
  "value": [
15323
15177
  {
15324
15178
  "dead": true,
15325
- "level": 2,
15179
+ "level": 1,
15326
15180
  "marker": "unknown",
15327
15181
  "range": {
15328
15182
  "end": 1,
@@ -15335,7 +15189,7 @@
15335
15189
  },
15336
15190
  {
15337
15191
  "dead": true,
15338
- "level": 2,
15192
+ "level": 1,
15339
15193
  "marker": "unknown",
15340
15194
  "range": {
15341
15195
  "end": 8,
@@ -15346,7 +15200,8 @@
15346
15200
  "value": "b1",
15347
15201
  "word": "b1"
15348
15202
  }
15349
- ]
15203
+ ],
15204
+ "word": "and"
15350
15205
  },
15351
15206
  "range": {
15352
15207
  "end": 24,
@@ -15542,7 +15397,7 @@
15542
15397
  "word": "are"
15543
15398
  },
15544
15399
  "error": [
15545
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:345:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:978:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:756:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
15400
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:374:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:1007:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:740:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
15546
15401
  ],
15547
15402
  "evalue": "That is not known because there is no conversion between a1 and b1",
15548
15403
  "isResponse": true,
@@ -16030,31 +15885,6 @@
16030
15885
  },
16031
15886
  {
16032
15887
  "counter": 5,
16033
- "op": [
16034
- "list",
16035
- 1
16036
- ],
16037
- "ops": [
16038
- [
16039
- "is",
16040
- 0
16041
- ],
16042
- [
16043
- "list",
16044
- 1
16045
- ],
16046
- [
16047
- "propertyOf",
16048
- 0
16049
- ],
16050
- [
16051
- "unit",
16052
- 0
16053
- ]
16054
- ]
16055
- },
16056
- {
16057
- "counter": 6,
16058
15888
  "op": [
16059
15889
  "unit",
16060
15890
  0
@@ -16075,7 +15905,7 @@
16075
15905
  ]
16076
15906
  },
16077
15907
  {
16078
- "counter": 7,
15908
+ "counter": 6,
16079
15909
  "op": [
16080
15910
  "propertyOf",
16081
15911
  0
@@ -16092,7 +15922,7 @@
16092
15922
  ]
16093
15923
  },
16094
15924
  {
16095
- "counter": 8,
15925
+ "counter": 7,
16096
15926
  "op": [
16097
15927
  "propertyOf",
16098
15928
  1
@@ -16109,7 +15939,7 @@
16109
15939
  ]
16110
15940
  },
16111
15941
  {
16112
- "counter": 9,
15942
+ "counter": 8,
16113
15943
  "op": [
16114
15944
  "is",
16115
15945
  0
@@ -16122,7 +15952,7 @@
16122
15952
  ]
16123
15953
  },
16124
15954
  {
16125
- "counter": 10,
15955
+ "counter": 9,
16126
15956
  "op": [
16127
15957
  "is",
16128
15958
  1
@@ -16442,6 +16272,7 @@
16442
16272
  "hierarchy": "hierarchy2",
16443
16273
  "math": "math2",
16444
16274
  "meta": "meta2",
16275
+ "negation": "negation2",
16445
16276
  "numbers": "numbers2",
16446
16277
  "pos": "pos2",
16447
16278
  "properties": "properties2",
@@ -16483,6 +16314,8 @@
16483
16314
  },
16484
16315
  "meta2": {
16485
16316
  },
16317
+ "negation2": {
16318
+ },
16486
16319
  "numbers2": {
16487
16320
  },
16488
16321
  "pos2": {
@@ -16520,9 +16353,6 @@
16520
16353
  "/",
16521
16354
  "-"
16522
16355
  ],
16523
- "notAble": [
16524
- "unknown"
16525
- ],
16526
16356
  "object": [
16527
16357
  "unknown",
16528
16358
  "what",
@@ -16613,7 +16443,6 @@
16613
16443
  "a",
16614
16444
  "articlePOS",
16615
16445
  "the",
16616
- "notAble",
16617
16446
  "whatAble",
16618
16447
  "is",
16619
16448
  "toAble",
@@ -16749,7 +16578,6 @@
16749
16578
  "unknown": [
16750
16579
  "hierarchyAble",
16751
16580
  "object",
16752
- "notAble",
16753
16581
  "theAble",
16754
16582
  "queryable"
16755
16583
  ],
@@ -16819,8 +16647,6 @@
16819
16647
  },
16820
16648
  "modifies": {
16821
16649
  },
16822
- "notAble": {
16823
- },
16824
16650
  "noun": {
16825
16651
  },
16826
16652
  "number": {
@@ -17277,7 +17103,7 @@
17277
17103
  "word": "are"
17278
17104
  },
17279
17105
  "error": [
17280
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:345:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:978:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:756:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
17106
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:374:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:1007:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:740:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
17281
17107
  ],
17282
17108
  "evalue": "That is not known because there is no conversion between a1 and b1",
17283
17109
  "isResponse": true,
@@ -17342,6 +17168,8 @@
17342
17168
  "marker": "is",
17343
17169
  "number": "many",
17344
17170
  "one": {
17171
+ "default": true,
17172
+ "isList": true,
17345
17173
  "level": 1,
17346
17174
  "listable": true,
17347
17175
  "marker": "list",
@@ -17350,7 +17178,7 @@
17350
17178
  "end": 24,
17351
17179
  "start": 0
17352
17180
  },
17353
- "text": "a1 and b1 are units of d1",
17181
+ "text": "a1 and b1",
17354
17182
  "types": [
17355
17183
  "list",
17356
17184
  "unknown"
@@ -17358,7 +17186,7 @@
17358
17186
  "value": [
17359
17187
  {
17360
17188
  "dead": true,
17361
- "level": 2,
17189
+ "level": 1,
17362
17190
  "marker": "unknown",
17363
17191
  "range": {
17364
17192
  "end": 1,
@@ -17371,7 +17199,7 @@
17371
17199
  },
17372
17200
  {
17373
17201
  "dead": true,
17374
- "level": 2,
17202
+ "level": 1,
17375
17203
  "marker": "unknown",
17376
17204
  "range": {
17377
17205
  "end": 8,
@@ -17382,7 +17210,8 @@
17382
17210
  "value": "b1",
17383
17211
  "word": "b1"
17384
17212
  }
17385
- ]
17213
+ ],
17214
+ "word": "and"
17386
17215
  },
17387
17216
  "range": {
17388
17217
  "end": 24,
@@ -17550,6 +17379,8 @@
17550
17379
  "marker": "is",
17551
17380
  "number": "many",
17552
17381
  "one": {
17382
+ "default": true,
17383
+ "isList": true,
17553
17384
  "level": 1,
17554
17385
  "listable": true,
17555
17386
  "marker": "list",
@@ -17558,7 +17389,7 @@
17558
17389
  "end": 30,
17559
17390
  "start": 0
17560
17391
  },
17561
- "text": "dimension and unit are concepts",
17392
+ "text": "dimension and unit",
17562
17393
  "types": [
17563
17394
  "list",
17564
17395
  "unknown"
@@ -17566,7 +17397,7 @@
17566
17397
  "value": [
17567
17398
  {
17568
17399
  "dead": true,
17569
- "level": 2,
17400
+ "level": 1,
17570
17401
  "marker": "unknown",
17571
17402
  "range": {
17572
17403
  "end": 8,
@@ -17579,7 +17410,7 @@
17579
17410
  },
17580
17411
  {
17581
17412
  "dead": true,
17582
- "level": 2,
17413
+ "level": 1,
17583
17414
  "marker": "unknown",
17584
17415
  "range": {
17585
17416
  "end": 17,
@@ -17590,7 +17421,8 @@
17590
17421
  "value": "unit",
17591
17422
  "word": "unit"
17592
17423
  }
17593
- ]
17424
+ ],
17425
+ "word": "and"
17594
17426
  },
17595
17427
  "range": {
17596
17428
  "end": 30,
@@ -17792,6 +17624,8 @@
17792
17624
  "marker": "is",
17793
17625
  "number": "many",
17794
17626
  "one": {
17627
+ "default": true,
17628
+ "isList": true,
17795
17629
  "level": 1,
17796
17630
  "listable": true,
17797
17631
  "marker": "list",
@@ -17800,7 +17634,7 @@
17800
17634
  "end": 24,
17801
17635
  "start": 0
17802
17636
  },
17803
- "text": "a1 and b1 are units of d1",
17637
+ "text": "a1 and b1",
17804
17638
  "types": [
17805
17639
  "list",
17806
17640
  "unknown"
@@ -17808,7 +17642,7 @@
17808
17642
  "value": [
17809
17643
  {
17810
17644
  "dead": true,
17811
- "level": 2,
17645
+ "level": 1,
17812
17646
  "marker": "unknown",
17813
17647
  "range": {
17814
17648
  "end": 1,
@@ -17821,7 +17655,7 @@
17821
17655
  },
17822
17656
  {
17823
17657
  "dead": true,
17824
- "level": 2,
17658
+ "level": 1,
17825
17659
  "marker": "unknown",
17826
17660
  "range": {
17827
17661
  "end": 8,
@@ -17832,7 +17666,8 @@
17832
17666
  "value": "b1",
17833
17667
  "word": "b1"
17834
17668
  }
17835
- ]
17669
+ ],
17670
+ "word": "and"
17836
17671
  },
17837
17672
  "range": {
17838
17673
  "end": 24,
@@ -18028,7 +17863,7 @@
18028
17863
  "word": "are"
18029
17864
  },
18030
17865
  "error": [
18031
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:345:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:978:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:756:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
17866
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:374:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:1007:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:740:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
18032
17867
  ],
18033
17868
  "evalue": "That is not known because there is no conversion between a1 and b1",
18034
17869
  "isResponse": true,
@@ -18360,31 +18195,6 @@
18360
18195
  },
18361
18196
  {
18362
18197
  "counter": 5,
18363
- "op": [
18364
- "list",
18365
- 1
18366
- ],
18367
- "ops": [
18368
- [
18369
- "is",
18370
- 0
18371
- ],
18372
- [
18373
- "list",
18374
- 1
18375
- ],
18376
- [
18377
- "propertyOf",
18378
- 0
18379
- ],
18380
- [
18381
- "unit",
18382
- 0
18383
- ]
18384
- ]
18385
- },
18386
- {
18387
- "counter": 6,
18388
18198
  "op": [
18389
18199
  "unit",
18390
18200
  0
@@ -18405,7 +18215,7 @@
18405
18215
  ]
18406
18216
  },
18407
18217
  {
18408
- "counter": 7,
18218
+ "counter": 6,
18409
18219
  "op": [
18410
18220
  "propertyOf",
18411
18221
  0
@@ -18422,7 +18232,7 @@
18422
18232
  ]
18423
18233
  },
18424
18234
  {
18425
- "counter": 8,
18235
+ "counter": 7,
18426
18236
  "op": [
18427
18237
  "propertyOf",
18428
18238
  1
@@ -18439,7 +18249,7 @@
18439
18249
  ]
18440
18250
  },
18441
18251
  {
18442
- "counter": 9,
18252
+ "counter": 8,
18443
18253
  "op": [
18444
18254
  "is",
18445
18255
  0
@@ -18452,7 +18262,7 @@
18452
18262
  ]
18453
18263
  },
18454
18264
  {
18455
- "counter": 10,
18265
+ "counter": 9,
18456
18266
  "op": [
18457
18267
  "is",
18458
18268
  1
@@ -18696,6 +18506,7 @@
18696
18506
  "hierarchy": "hierarchy2",
18697
18507
  "math": "math2",
18698
18508
  "meta": "meta2",
18509
+ "negation": "negation2",
18699
18510
  "numbers": "numbers2",
18700
18511
  "pos": "pos2",
18701
18512
  "properties": "properties2",
@@ -18737,6 +18548,8 @@
18737
18548
  },
18738
18549
  "meta2": {
18739
18550
  },
18551
+ "negation2": {
18552
+ },
18740
18553
  "numbers2": {
18741
18554
  },
18742
18555
  "pos2": {
@@ -18774,9 +18587,6 @@
18774
18587
  "/",
18775
18588
  "-"
18776
18589
  ],
18777
- "notAble": [
18778
- "unknown"
18779
- ],
18780
18590
  "object": [
18781
18591
  "unknown",
18782
18592
  "what",
@@ -18867,7 +18677,6 @@
18867
18677
  "a",
18868
18678
  "articlePOS",
18869
18679
  "the",
18870
- "notAble",
18871
18680
  "whatAble",
18872
18681
  "is",
18873
18682
  "toAble",
@@ -19003,7 +18812,6 @@
19003
18812
  "unknown": [
19004
18813
  "hierarchyAble",
19005
18814
  "object",
19006
- "notAble",
19007
18815
  "theAble",
19008
18816
  "queryable"
19009
18817
  ],
@@ -19073,8 +18881,6 @@
19073
18881
  },
19074
18882
  "modifies": {
19075
18883
  },
19076
- "notAble": {
19077
- },
19078
18884
  "noun": {
19079
18885
  },
19080
18886
  "number": {
@@ -19375,7 +19181,7 @@
19375
19181
  "word": "are"
19376
19182
  },
19377
19183
  "error": [
19378
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:733'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:345:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:978:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:756:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
19184
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717\"\n to\n {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"text\": \"what are 10 a1 in b1\",\n \"marker\": \"is\",\n \"word\": \"are\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"one\": {\n \"query\": [\n \"what\"\n ],\n \"number\": \"many\",\n \"marker\": \"what\",\n \"value\": \"what\",\n \"default\": true,\n \"text\": \"what\",\n \"word\": \"what\",\n \"range\": {\n \"start\": 0,\n \"end\": 19\n },\n \"dead\": true,\n \"determined\": true,\n \"types\": [\n \"what\"\n ],\n \"level\": 1\n },\n \"two\": {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1\n },\n \"dead\": true,\n \"level\": 2,\n \"topLevel\": true\n}.\nError applying semantics 'what x is y?/home/dev/code/theprogrammablemind/kms/common/dialogues.js:717'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:117\"\n to\n {\n \"marker\": \"convertToUnits\",\n \"default\": true,\n \"word\": \"in\",\n \"text\": \"10 a1 in b1\",\n \"range\": {\n \"start\": 9,\n \"end\": 19\n },\n \"dead\": true,\n \"from\": {\n \"marker\": \"dimension\",\n \"unit\": {\n \"value\": \"a1\",\n \"number\": \"one\",\n \"text\": \"a1\",\n \"marker\": \"a1\",\n \"word\": \"a1\",\n \"range\": {\n \"start\": 12,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"a1\"\n ],\n \"level\": 1\n },\n \"value\": 10,\n \"amount\": {\n \"value\": 10,\n \"instance\": true,\n \"text\": \"10\",\n \"marker\": \"number\",\n \"word\": \"10\",\n \"range\": {\n \"start\": 9,\n \"end\": 10\n },\n \"dead\": true,\n \"types\": [\n \"number\"\n ],\n \"level\": 1\n },\n \"text\": \"10 a1\",\n \"range\": {\n \"start\": 9,\n \"end\": 13\n },\n \"dead\": true,\n \"types\": [\n \"dimension\"\n ],\n \"level\": 1\n },\n \"to\": {\n \"value\": \"b1\",\n \"number\": \"one\",\n \"text\": \"b1\",\n \"marker\": \"b1\",\n \"word\": \"b1\",\n \"range\": {\n \"start\": 18,\n \"end\": 19\n },\n \"dead\": true,\n \"types\": [\n \"b1\"\n ],\n \"level\": 1\n },\n \"types\": [\n \"convertToUnits\"\n ],\n \"level\": 1,\n \"evaluate\": true\n}.\nError applying semantics '/home/dev/code/theprogrammablemind/kms/common/dimension.js:117'. Error is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true} stack is Error: {\"marker\":\"reason\",\"focusableForPhrase\":true,\"evalue\":{\"marker\":\"noconversion\",\"from\":{\"value\":\"a1\",\"number\":\"one\",\"text\":\"a1\",\"marker\":\"a1\",\"word\":\"a1\",\"range\":{\"start\":12,\"end\":13},\"dead\":true,\"types\":[\"a1\"],\"level\":1},\"to\":{\"value\":\"b1\",\"number\":\"one\",\"text\":\"b1\",\"marker\":\"b1\",\"word\":\"b1\",\"range\":{\"start\":18,\"end\":19},\"dead\":true,\"types\":[\"b1\"],\"level\":1}},\"pullFromContext\":false,\"fromSTM\":true}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:169:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:144:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:374:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:127:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:207:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:325:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:192:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:1007:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:203:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:740:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n const from = context.from;\n const to = context.to;\n let evalue;\n let efrom = from\n if (!from.unit) {\n efrom = e(from).evalue\n }\n if (to.value == efrom.unit.value) {\n evalue = efrom.amount\n } else {\n const formula = kms.formulas.api.get(to, [efrom.unit])\n if (!formula) {\n const reason = { marker: 'reason', focusableForPhrase: true, evalue: { marker: 'noconversion', from: efrom.unit, to } }\n kms.stm.api.mentioned(reason)\n error(reason)\n }\n kms.stm.api.setVariable(efrom.unit.value, efrom.amount)\n evalue = e(formula)\n }\n /*\n '{\n \"marker\":\"dimension\",\n \"unit\":{\"marker\":\"unit\",\"range\":{\"start\":19,\"end\":25},\"word\":\"celcius\",\"text\":\"celcius\",\"value\":\"celcius\",\"unknown\":true,\"types\":[\"unit\",\"unknown\"]},\n \"value\":10,\n \"amount\":{\"word\":\"degrees\",\"number\":\"many\",\"text\":\"10 degrees\",\"marker\":\"degree\",\"range\":{\"start\":8,\"end\":17},\"value\":10,\"amount\":{\"value\":10,\"text\":\"10\",\"marker\":\"number\",\"word\":\"10\",\"range\":{\"start\":8,\"end\":9},\"types\":[\"number\"]}},\n \"text\":\"10 degrees celcius\",\"range\":{\"start\":8,\"end\":25}}'\n */\n context.evalue = { \n paraphrase: true,\n marker: 'dimension',\n level: 1,\n unit: to,\n amount: { evalue, paraphrase: undefined }\n }\n })\nsee the evaluator property. The error has a retryCall property that will recall the function that failed.'. Semantic is Semantic(({context, hierarchy}) => hierarchy.isA(context.marker, 'is') && context.query, ({context, s, log, km, objects, e}) => {\n const one = context.one;\n const two = context.two;\n let concept, value;\n if (one.query) {\n concept = one;\n value = two;\n } else {\n concept = two;\n value = one;\n }\n // km('dialogues').api.mentioned(concept)\n // TODO wtf is the next line?\n value = JSON.parse(JSON.stringify(value))\n let instance = e(value)\n if (false && instance.evalue) {\n km('stm').api.mentioned(value)\n }\n if (instance.verbatim) {\n context.evalue = { verbatim: instance.verbatim }\n context.isResponse = true\n return\n }\n // instance.focusable = ['one', 'two']\n // concept = JSON.parse(JSON.stringify(value)) \n concept = _.cloneDeep(value) \n concept.isQuery = undefined\n // greg101\n // instance.focusableForPhrase = true\n instance.focus = true\n if (concept.hierarchy) {\n concept.focusableForPhrase = true\n }\n // concept.focus = true\n\n const many = isMany(concept) || isMany(instance)\n const evalue = {\n \"default\": true,\n \"marker\": \"is\",\n \"one\": concept,\n \"two\": instance,\n \"focusable\": ['two', 'one'],\n \"word\": many ? \"are\" : \"is\",\n \"number\": many ? \"many\" : undefined,\n }\n context.evalue = evalue\n context.isResponse = true\n }). The error has a retryCall property that will recall the function that failed.'"
19379
19185
  ],
19380
19186
  "evalue": "That is not known because there is no conversion between a1 and b1",
19381
19187
  "isResponse": true,
@@ -19440,6 +19246,8 @@
19440
19246
  "marker": "is",
19441
19247
  "number": "many",
19442
19248
  "one": {
19249
+ "default": true,
19250
+ "isList": true,
19443
19251
  "level": 1,
19444
19252
  "listable": true,
19445
19253
  "marker": "list",
@@ -19448,7 +19256,7 @@
19448
19256
  "end": 24,
19449
19257
  "start": 0
19450
19258
  },
19451
- "text": "a1 and b1 are units of d1",
19259
+ "text": "a1 and b1",
19452
19260
  "types": [
19453
19261
  "list",
19454
19262
  "unknown"
@@ -19456,7 +19264,7 @@
19456
19264
  "value": [
19457
19265
  {
19458
19266
  "dead": true,
19459
- "level": 2,
19267
+ "level": 1,
19460
19268
  "marker": "unknown",
19461
19269
  "range": {
19462
19270
  "end": 1,
@@ -19469,7 +19277,7 @@
19469
19277
  },
19470
19278
  {
19471
19279
  "dead": true,
19472
- "level": 2,
19280
+ "level": 1,
19473
19281
  "marker": "unknown",
19474
19282
  "range": {
19475
19283
  "end": 8,
@@ -19480,7 +19288,8 @@
19480
19288
  "value": "b1",
19481
19289
  "word": "b1"
19482
19290
  }
19483
- ]
19291
+ ],
19292
+ "word": "and"
19484
19293
  },
19485
19294
  "range": {
19486
19295
  "end": 24,
@@ -19648,6 +19457,8 @@
19648
19457
  "marker": "is",
19649
19458
  "number": "many",
19650
19459
  "one": {
19460
+ "default": true,
19461
+ "isList": true,
19651
19462
  "level": 1,
19652
19463
  "listable": true,
19653
19464
  "marker": "list",
@@ -19656,7 +19467,7 @@
19656
19467
  "end": 30,
19657
19468
  "start": 0
19658
19469
  },
19659
- "text": "dimension and unit are concepts",
19470
+ "text": "dimension and unit",
19660
19471
  "types": [
19661
19472
  "list",
19662
19473
  "unknown"
@@ -19664,7 +19475,7 @@
19664
19475
  "value": [
19665
19476
  {
19666
19477
  "dead": true,
19667
- "level": 2,
19478
+ "level": 1,
19668
19479
  "marker": "unknown",
19669
19480
  "range": {
19670
19481
  "end": 8,
@@ -19677,7 +19488,7 @@
19677
19488
  },
19678
19489
  {
19679
19490
  "dead": true,
19680
- "level": 2,
19491
+ "level": 1,
19681
19492
  "marker": "unknown",
19682
19493
  "range": {
19683
19494
  "end": 17,
@@ -19688,7 +19499,8 @@
19688
19499
  "value": "unit",
19689
19500
  "word": "unit"
19690
19501
  }
19691
- ]
19502
+ ],
19503
+ "word": "and"
19692
19504
  },
19693
19505
  "range": {
19694
19506
  "end": 30,