ekms 7.12.2 → 7.12.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -555,6 +555,8 @@
555
555
  "marker": "is",
556
556
  "number": "many",
557
557
  "one": {
558
+ "default": true,
559
+ "isList": true,
558
560
  "level": 1,
559
561
  "listable": true,
560
562
  "marker": "list",
@@ -563,15 +565,16 @@
563
565
  "end": 30,
564
566
  "start": 0
565
567
  },
568
+ "text": "dimension and unit",
566
569
  "types": [
567
570
  "list",
568
- "unknown"
571
+ "type"
569
572
  ],
570
573
  "value": [
571
574
  {
572
575
  "dead": true,
573
- "level": 2,
574
- "marker": "unknown",
576
+ "level": 1,
577
+ "marker": "type",
575
578
  "range": {
576
579
  "end": 8,
577
580
  "start": 0
@@ -583,8 +586,8 @@
583
586
  },
584
587
  {
585
588
  "dead": true,
586
- "level": 2,
587
- "marker": "unknown",
589
+ "level": 1,
590
+ "marker": "type",
588
591
  "range": {
589
592
  "end": 17,
590
593
  "start": 14
@@ -594,13 +597,14 @@
594
597
  "value": "unit",
595
598
  "word": "unit"
596
599
  }
597
- ]
600
+ ],
601
+ "word": "and"
598
602
  },
599
603
  "range": {
600
604
  "end": 30,
601
605
  "start": 0
602
606
  },
603
- "text": " are concepts",
607
+ "text": "dimension and unit are concepts",
604
608
  "topLevel": true,
605
609
  "touchedBy": [
606
610
  "dimensionTemplate#call2",
@@ -777,7 +781,7 @@
777
781
  "end": 37,
778
782
  "start": 0
779
783
  },
780
- "text": "* + are mathematical operators",
784
+ "text": "* + / and - are mathematical operators",
781
785
  "topLevel": true,
782
786
  "touchedBy": [
783
787
  "mathTemplate#call2",
@@ -792,7 +796,7 @@
792
796
  "dead": true,
793
797
  "level": 1,
794
798
  "marker": "mathematical_operator",
795
- "mathematical": {
799
+ "modifier_mathematical": {
796
800
  "level": 0,
797
801
  "marker": "mathematical",
798
802
  "range": {
@@ -807,7 +811,7 @@
807
811
  "word": "mathematical"
808
812
  },
809
813
  "modifiers": [
810
- "mathematical"
814
+ "modifier_mathematical"
811
815
  ],
812
816
  "number": "many",
813
817
  "range": {
@@ -849,7 +853,7 @@
849
853
  "word": "operator"
850
854
  },
851
855
  "dead": true,
852
- "flatten": true,
856
+ "flatten": false,
853
857
  "level": 1,
854
858
  "marker": "modifies",
855
859
  "modifiers": [
@@ -1400,6 +1404,8 @@
1400
1404
  "marker": "is",
1401
1405
  "number": "many",
1402
1406
  "one": {
1407
+ "default": true,
1408
+ "isList": true,
1403
1409
  "level": 1,
1404
1410
  "listable": true,
1405
1411
  "marker": "list",
@@ -1408,15 +1414,16 @@
1408
1414
  "end": 30,
1409
1415
  "start": 0
1410
1416
  },
1417
+ "text": "dimension and unit",
1411
1418
  "types": [
1412
1419
  "list",
1413
- "unknown"
1420
+ "type"
1414
1421
  ],
1415
1422
  "value": [
1416
1423
  {
1417
1424
  "dead": true,
1418
- "level": 2,
1419
- "marker": "unknown",
1425
+ "level": 1,
1426
+ "marker": "type",
1420
1427
  "range": {
1421
1428
  "end": 8,
1422
1429
  "start": 0
@@ -1428,8 +1435,8 @@
1428
1435
  },
1429
1436
  {
1430
1437
  "dead": true,
1431
- "level": 2,
1432
- "marker": "unknown",
1438
+ "level": 1,
1439
+ "marker": "type",
1433
1440
  "range": {
1434
1441
  "end": 17,
1435
1442
  "start": 14
@@ -1439,13 +1446,14 @@
1439
1446
  "value": "unit",
1440
1447
  "word": "unit"
1441
1448
  }
1442
- ]
1449
+ ],
1450
+ "word": "and"
1443
1451
  },
1444
1452
  "range": {
1445
1453
  "end": 30,
1446
1454
  "start": 0
1447
1455
  },
1448
- "text": " are concepts",
1456
+ "text": "dimension and unit are concepts",
1449
1457
  "topLevel": true,
1450
1458
  "touchedBy": [
1451
1459
  "dimensionTemplate#call2",
@@ -1622,7 +1630,7 @@
1622
1630
  "end": 37,
1623
1631
  "start": 0
1624
1632
  },
1625
- "text": "* + are mathematical operators",
1633
+ "text": "* + / and - are mathematical operators",
1626
1634
  "topLevel": true,
1627
1635
  "touchedBy": [
1628
1636
  "mathTemplate#call2",
@@ -1637,7 +1645,7 @@
1637
1645
  "dead": true,
1638
1646
  "level": 1,
1639
1647
  "marker": "mathematical_operator",
1640
- "mathematical": {
1648
+ "modifier_mathematical": {
1641
1649
  "level": 0,
1642
1650
  "marker": "mathematical",
1643
1651
  "range": {
@@ -1652,7 +1660,7 @@
1652
1660
  "word": "mathematical"
1653
1661
  },
1654
1662
  "modifiers": [
1655
- "mathematical"
1663
+ "modifier_mathematical"
1656
1664
  ],
1657
1665
  "number": "many",
1658
1666
  "range": {
@@ -1694,7 +1702,7 @@
1694
1702
  "word": "operator"
1695
1703
  },
1696
1704
  "dead": true,
1697
- "flatten": true,
1705
+ "flatten": false,
1698
1706
  "level": 1,
1699
1707
  "marker": "modifies",
1700
1708
  "modifiers": [
@@ -1897,7 +1905,7 @@
1897
1905
  "end": 53,
1898
1906
  "start": 0
1899
1907
  },
1900
- "text": "fahrenheit are units of temperature",
1908
+ "text": "fahrenheit celcuis and kelvin are units of temperature",
1901
1909
  "topLevel": true,
1902
1910
  "touchedBy": [
1903
1911
  "dimension#call2"
@@ -3040,8 +3048,8 @@
3040
3048
  "value": 10
3041
3049
  },
3042
3050
  "generatedParenthesized": "",
3043
- "paraphrases": "10 degrees fahrenheit",
3044
- "paraphrasesParenthesized": "(((10) degrees) (fahrenheit))",
3051
+ "paraphrases": "10 fahrenheit",
3052
+ "paraphrasesParenthesized": "((10) (fahrenheit))",
3045
3053
  "responses": [
3046
3054
  ""
3047
3055
  ]
@@ -3112,7 +3120,7 @@
3112
3120
  "end": 53,
3113
3121
  "start": 0
3114
3122
  },
3115
- "text": "fahrenheit are units of temperature",
3123
+ "text": "fahrenheit celcuis and kelvin are units of temperature",
3116
3124
  "topLevel": true,
3117
3125
  "touchedBy": [
3118
3126
  "dimension#call2"
@@ -3274,6 +3282,8 @@
3274
3282
  "marker": "is",
3275
3283
  "number": "many",
3276
3284
  "one": {
3285
+ "default": true,
3286
+ "isList": true,
3277
3287
  "level": 1,
3278
3288
  "listable": true,
3279
3289
  "marker": "list",
@@ -3282,15 +3292,16 @@
3282
3292
  "end": 30,
3283
3293
  "start": 0
3284
3294
  },
3295
+ "text": "dimension and unit",
3285
3296
  "types": [
3286
3297
  "list",
3287
- "unknown"
3298
+ "type"
3288
3299
  ],
3289
3300
  "value": [
3290
3301
  {
3291
3302
  "dead": true,
3292
- "level": 2,
3293
- "marker": "unknown",
3303
+ "level": 1,
3304
+ "marker": "type",
3294
3305
  "range": {
3295
3306
  "end": 8,
3296
3307
  "start": 0
@@ -3302,8 +3313,8 @@
3302
3313
  },
3303
3314
  {
3304
3315
  "dead": true,
3305
- "level": 2,
3306
- "marker": "unknown",
3316
+ "level": 1,
3317
+ "marker": "type",
3307
3318
  "range": {
3308
3319
  "end": 17,
3309
3320
  "start": 14
@@ -3313,13 +3324,14 @@
3313
3324
  "value": "unit",
3314
3325
  "word": "unit"
3315
3326
  }
3316
- ]
3327
+ ],
3328
+ "word": "and"
3317
3329
  },
3318
3330
  "range": {
3319
3331
  "end": 30,
3320
3332
  "start": 0
3321
3333
  },
3322
- "text": " are concepts",
3334
+ "text": "dimension and unit are concepts",
3323
3335
  "topLevel": true,
3324
3336
  "touchedBy": [
3325
3337
  "dimensionTemplate#call2",
@@ -3496,7 +3508,7 @@
3496
3508
  "end": 37,
3497
3509
  "start": 0
3498
3510
  },
3499
- "text": "* + are mathematical operators",
3511
+ "text": "* + / and - are mathematical operators",
3500
3512
  "topLevel": true,
3501
3513
  "touchedBy": [
3502
3514
  "mathTemplate#call2",
@@ -3511,7 +3523,7 @@
3511
3523
  "dead": true,
3512
3524
  "level": 1,
3513
3525
  "marker": "mathematical_operator",
3514
- "mathematical": {
3526
+ "modifier_mathematical": {
3515
3527
  "level": 0,
3516
3528
  "marker": "mathematical",
3517
3529
  "range": {
@@ -3526,7 +3538,7 @@
3526
3538
  "word": "mathematical"
3527
3539
  },
3528
3540
  "modifiers": [
3529
- "mathematical"
3541
+ "modifier_mathematical"
3530
3542
  ],
3531
3543
  "number": "many",
3532
3544
  "range": {
@@ -3557,12 +3569,12 @@
3557
3569
  "paraphrases": [
3558
3570
  "temperature is a dimension",
3559
3571
  "fahrenheit, celcuis and kelvin are units of temperature",
3560
- "10 degrees fahrenheit"
3572
+ "10 fahrenheit"
3561
3573
  ],
3562
3574
  "paraphrasesParenthesized": [
3563
3575
  "((temperature) is ((a) (dimension)))",
3564
3576
  "(((fahrenheit), (celcuis) and (kelvin)) are ((units) of (temperature)))",
3565
- "(((10) degrees) (fahrenheit))"
3577
+ "((10) (fahrenheit))"
3566
3578
  ],
3567
3579
  "query": "temperature is a dimension\\nfahrenheit celcuis and kelvin are units of temperature\\n10 degrees fahrenheit",
3568
3580
  "responses": [
@@ -3728,7 +3740,7 @@
3728
3740
  "end": 53,
3729
3741
  "start": 0
3730
3742
  },
3731
- "text": "fahrenheit are units of temperature",
3743
+ "text": "fahrenheit celcuis and kelvin are units of temperature",
3732
3744
  "topLevel": true,
3733
3745
  "touchedBy": [
3734
3746
  "dimension#call2"
@@ -4886,7 +4898,7 @@
4886
4898
  "end": 53,
4887
4899
  "start": 0
4888
4900
  },
4889
- "text": "fahrenheit are units of temperature",
4901
+ "text": "fahrenheit celcuis and kelvin are units of temperature",
4890
4902
  "topLevel": true,
4891
4903
  "touchedBy": [
4892
4904
  "dimension#call2"
@@ -5048,6 +5060,8 @@
5048
5060
  "marker": "is",
5049
5061
  "number": "many",
5050
5062
  "one": {
5063
+ "default": true,
5064
+ "isList": true,
5051
5065
  "level": 1,
5052
5066
  "listable": true,
5053
5067
  "marker": "list",
@@ -5056,15 +5070,16 @@
5056
5070
  "end": 30,
5057
5071
  "start": 0
5058
5072
  },
5073
+ "text": "dimension and unit",
5059
5074
  "types": [
5060
5075
  "list",
5061
- "unknown"
5076
+ "type"
5062
5077
  ],
5063
5078
  "value": [
5064
5079
  {
5065
5080
  "dead": true,
5066
- "level": 2,
5067
- "marker": "unknown",
5081
+ "level": 1,
5082
+ "marker": "type",
5068
5083
  "range": {
5069
5084
  "end": 8,
5070
5085
  "start": 0
@@ -5076,8 +5091,8 @@
5076
5091
  },
5077
5092
  {
5078
5093
  "dead": true,
5079
- "level": 2,
5080
- "marker": "unknown",
5094
+ "level": 1,
5095
+ "marker": "type",
5081
5096
  "range": {
5082
5097
  "end": 17,
5083
5098
  "start": 14
@@ -5087,13 +5102,14 @@
5087
5102
  "value": "unit",
5088
5103
  "word": "unit"
5089
5104
  }
5090
- ]
5105
+ ],
5106
+ "word": "and"
5091
5107
  },
5092
5108
  "range": {
5093
5109
  "end": 30,
5094
5110
  "start": 0
5095
5111
  },
5096
- "text": " are concepts",
5112
+ "text": "dimension and unit are concepts",
5097
5113
  "topLevel": true,
5098
5114
  "touchedBy": [
5099
5115
  "dimensionTemplate#call2",
@@ -5270,7 +5286,7 @@
5270
5286
  "end": 37,
5271
5287
  "start": 0
5272
5288
  },
5273
- "text": "* + are mathematical operators",
5289
+ "text": "* + / and - are mathematical operators",
5274
5290
  "topLevel": true,
5275
5291
  "touchedBy": [
5276
5292
  "mathTemplate#call2",
@@ -5285,7 +5301,7 @@
5285
5301
  "dead": true,
5286
5302
  "level": 1,
5287
5303
  "marker": "mathematical_operator",
5288
- "mathematical": {
5304
+ "modifier_mathematical": {
5289
5305
  "level": 0,
5290
5306
  "marker": "mathematical",
5291
5307
  "range": {
@@ -5300,7 +5316,7 @@
5300
5316
  "word": "mathematical"
5301
5317
  },
5302
5318
  "modifiers": [
5303
- "mathematical"
5319
+ "modifier_mathematical"
5304
5320
  ],
5305
5321
  "number": "many",
5306
5322
  "range": {
@@ -5520,7 +5536,7 @@
5520
5536
  "end": 53,
5521
5537
  "start": 0
5522
5538
  },
5523
- "text": "fahrenheit are units of temperature",
5539
+ "text": "fahrenheit celcuis and kelvin are units of temperature",
5524
5540
  "topLevel": true,
5525
5541
  "touchedBy": [
5526
5542
  "dimension#call2"
@@ -6659,8 +6675,8 @@
6659
6675
  "value": 10
6660
6676
  },
6661
6677
  "generatedParenthesized": "",
6662
- "paraphrases": "10 degrees celcius",
6663
- "paraphrasesParenthesized": "(((10) degrees) (celcius))",
6678
+ "paraphrases": "10 celcius",
6679
+ "paraphrasesParenthesized": "((10) (celcius))",
6664
6680
  "responses": [
6665
6681
  ""
6666
6682
  ]
@@ -6731,7 +6747,7 @@
6731
6747
  "end": 53,
6732
6748
  "start": 0
6733
6749
  },
6734
- "text": "fahrenheit are units of temperature",
6750
+ "text": "fahrenheit celcuis and kelvin are units of temperature",
6735
6751
  "topLevel": true,
6736
6752
  "touchedBy": [
6737
6753
  "dimension#call2"
@@ -6893,6 +6909,8 @@
6893
6909
  "marker": "is",
6894
6910
  "number": "many",
6895
6911
  "one": {
6912
+ "default": true,
6913
+ "isList": true,
6896
6914
  "level": 1,
6897
6915
  "listable": true,
6898
6916
  "marker": "list",
@@ -6901,15 +6919,16 @@
6901
6919
  "end": 30,
6902
6920
  "start": 0
6903
6921
  },
6922
+ "text": "dimension and unit",
6904
6923
  "types": [
6905
6924
  "list",
6906
- "unknown"
6925
+ "type"
6907
6926
  ],
6908
6927
  "value": [
6909
6928
  {
6910
6929
  "dead": true,
6911
- "level": 2,
6912
- "marker": "unknown",
6930
+ "level": 1,
6931
+ "marker": "type",
6913
6932
  "range": {
6914
6933
  "end": 8,
6915
6934
  "start": 0
@@ -6921,8 +6940,8 @@
6921
6940
  },
6922
6941
  {
6923
6942
  "dead": true,
6924
- "level": 2,
6925
- "marker": "unknown",
6943
+ "level": 1,
6944
+ "marker": "type",
6926
6945
  "range": {
6927
6946
  "end": 17,
6928
6947
  "start": 14
@@ -6932,13 +6951,14 @@
6932
6951
  "value": "unit",
6933
6952
  "word": "unit"
6934
6953
  }
6935
- ]
6954
+ ],
6955
+ "word": "and"
6936
6956
  },
6937
6957
  "range": {
6938
6958
  "end": 30,
6939
6959
  "start": 0
6940
6960
  },
6941
- "text": " are concepts",
6961
+ "text": "dimension and unit are concepts",
6942
6962
  "topLevel": true,
6943
6963
  "touchedBy": [
6944
6964
  "dimensionTemplate#call2",
@@ -7115,7 +7135,7 @@
7115
7135
  "end": 37,
7116
7136
  "start": 0
7117
7137
  },
7118
- "text": "* + are mathematical operators",
7138
+ "text": "* + / and - are mathematical operators",
7119
7139
  "topLevel": true,
7120
7140
  "touchedBy": [
7121
7141
  "mathTemplate#call2",
@@ -7130,7 +7150,7 @@
7130
7150
  "dead": true,
7131
7151
  "level": 1,
7132
7152
  "marker": "mathematical_operator",
7133
- "mathematical": {
7153
+ "modifier_mathematical": {
7134
7154
  "level": 0,
7135
7155
  "marker": "mathematical",
7136
7156
  "range": {
@@ -7145,7 +7165,7 @@
7145
7165
  "word": "mathematical"
7146
7166
  },
7147
7167
  "modifiers": [
7148
- "mathematical"
7168
+ "modifier_mathematical"
7149
7169
  ],
7150
7170
  "number": "many",
7151
7171
  "range": {
@@ -7176,12 +7196,12 @@
7176
7196
  "paraphrases": [
7177
7197
  "temperature is a dimension",
7178
7198
  "fahrenheit, celcuis and kelvin are units of temperature",
7179
- "10 degrees celcius"
7199
+ "10 celcius"
7180
7200
  ],
7181
7201
  "paraphrasesParenthesized": [
7182
7202
  "((temperature) is ((a) (dimension)))",
7183
7203
  "(((fahrenheit), (celcuis) and (kelvin)) are ((units) of (temperature)))",
7184
- "(((10) degrees) (celcius))"
7204
+ "((10) (celcius))"
7185
7205
  ],
7186
7206
  "query": "temperature is a dimension\\nfahrenheit celcuis and kelvin are units of temperature\\n10 degrees celcius",
7187
7207
  "responses": [
@@ -7397,7 +7417,7 @@
7397
7417
  "end": 53,
7398
7418
  "start": 0
7399
7419
  },
7400
- "text": "fahrenheit are units of temperature",
7420
+ "text": "fahrenheit celcuis and kelvin are units of temperature",
7401
7421
  "topLevel": true,
7402
7422
  "touchedBy": [
7403
7423
  "dimension#call2"
@@ -8664,8 +8684,8 @@
8664
8684
  "word": "in"
8665
8685
  },
8666
8686
  "generatedParenthesized": "",
8667
- "paraphrases": "10 degrees celcius in fahrenheit",
8668
- "paraphrasesParenthesized": "((((10) degrees) (celcius)) in (fahrenheit))",
8687
+ "paraphrases": "10 celcius in fahrenheit",
8688
+ "paraphrasesParenthesized": "(((10) (celcius)) in (fahrenheit))",
8669
8689
  "responses": [
8670
8690
  ""
8671
8691
  ]
@@ -8736,7 +8756,7 @@
8736
8756
  "end": 53,
8737
8757
  "start": 0
8738
8758
  },
8739
- "text": "fahrenheit are units of temperature",
8759
+ "text": "fahrenheit celcuis and kelvin are units of temperature",
8740
8760
  "topLevel": true,
8741
8761
  "touchedBy": [
8742
8762
  "dimension#call2"
@@ -8898,6 +8918,8 @@
8898
8918
  "marker": "is",
8899
8919
  "number": "many",
8900
8920
  "one": {
8921
+ "default": true,
8922
+ "isList": true,
8901
8923
  "level": 1,
8902
8924
  "listable": true,
8903
8925
  "marker": "list",
@@ -8906,15 +8928,16 @@
8906
8928
  "end": 30,
8907
8929
  "start": 0
8908
8930
  },
8931
+ "text": "dimension and unit",
8909
8932
  "types": [
8910
8933
  "list",
8911
- "unknown"
8934
+ "type"
8912
8935
  ],
8913
8936
  "value": [
8914
8937
  {
8915
8938
  "dead": true,
8916
- "level": 2,
8917
- "marker": "unknown",
8939
+ "level": 1,
8940
+ "marker": "type",
8918
8941
  "range": {
8919
8942
  "end": 8,
8920
8943
  "start": 0
@@ -8926,8 +8949,8 @@
8926
8949
  },
8927
8950
  {
8928
8951
  "dead": true,
8929
- "level": 2,
8930
- "marker": "unknown",
8952
+ "level": 1,
8953
+ "marker": "type",
8931
8954
  "range": {
8932
8955
  "end": 17,
8933
8956
  "start": 14
@@ -8937,13 +8960,14 @@
8937
8960
  "value": "unit",
8938
8961
  "word": "unit"
8939
8962
  }
8940
- ]
8963
+ ],
8964
+ "word": "and"
8941
8965
  },
8942
8966
  "range": {
8943
8967
  "end": 30,
8944
8968
  "start": 0
8945
8969
  },
8946
- "text": " are concepts",
8970
+ "text": "dimension and unit are concepts",
8947
8971
  "topLevel": true,
8948
8972
  "touchedBy": [
8949
8973
  "dimensionTemplate#call2",
@@ -9120,7 +9144,7 @@
9120
9144
  "end": 37,
9121
9145
  "start": 0
9122
9146
  },
9123
- "text": "* + are mathematical operators",
9147
+ "text": "* + / and - are mathematical operators",
9124
9148
  "topLevel": true,
9125
9149
  "touchedBy": [
9126
9150
  "mathTemplate#call2",
@@ -9135,7 +9159,7 @@
9135
9159
  "dead": true,
9136
9160
  "level": 1,
9137
9161
  "marker": "mathematical_operator",
9138
- "mathematical": {
9162
+ "modifier_mathematical": {
9139
9163
  "level": 0,
9140
9164
  "marker": "mathematical",
9141
9165
  "range": {
@@ -9150,7 +9174,7 @@
9150
9174
  "word": "mathematical"
9151
9175
  },
9152
9176
  "modifiers": [
9153
- "mathematical"
9177
+ "modifier_mathematical"
9154
9178
  ],
9155
9179
  "number": "many",
9156
9180
  "range": {
@@ -9181,12 +9205,12 @@
9181
9205
  "paraphrases": [
9182
9206
  "temperature is a dimension",
9183
9207
  "fahrenheit, celcuis and kelvin are units of temperature",
9184
- "10 degrees celcius in fahrenheit"
9208
+ "10 celcius in fahrenheit"
9185
9209
  ],
9186
9210
  "paraphrasesParenthesized": [
9187
9211
  "((temperature) is ((a) (dimension)))",
9188
9212
  "(((fahrenheit), (celcuis) and (kelvin)) are ((units) of (temperature)))",
9189
- "((((10) degrees) (celcius)) in (fahrenheit))"
9213
+ "(((10) (celcius)) in (fahrenheit))"
9190
9214
  ],
9191
9215
  "query": "temperature is a dimension\\nfahrenheit celcuis and kelvin are units of temperature\\n10 degrees celcius in fahrenheit",
9192
9216
  "responses": [
@@ -9476,7 +9500,7 @@
9476
9500
  "end": 53,
9477
9501
  "start": 0
9478
9502
  },
9479
- "text": "fahrenheit are units of temperature",
9503
+ "text": "fahrenheit celcuis and kelvin are units of temperature",
9480
9504
  "topLevel": true,
9481
9505
  "touchedBy": [
9482
9506
  "dimension#call2"
@@ -9697,7 +9721,7 @@
9697
9721
  "word": "32"
9698
9722
  }
9699
9723
  },
9700
- "text": "fahrenheit = celcius * 9 / 5 + 32",
9724
+ "text": "fahrenheit = celcius*9/5 + 32",
9701
9725
  "topLevel": true,
9702
9726
  "touchedBy": [
9703
9727
  "dimension#call2"
@@ -10195,7 +10219,7 @@
10195
10219
  "",
10196
10220
  "",
10197
10221
  "",
10198
- "("
10222
+ "(((((10) (celcius)) in (fahrenheit)) is ((((50)) (fahrenheit)))))"
10199
10223
  ],
10200
10224
  "metadata": {
10201
10225
  "opChoices": [
@@ -11292,7 +11316,7 @@
11292
11316
  "word": "32"
11293
11317
  }
11294
11318
  },
11295
- "text": "fahrenheit = celcius * 9 / 5 + 32",
11319
+ "text": "fahrenheit = celcius*9/5 + 32",
11296
11320
  "topLevel": true,
11297
11321
  "touchedBy": [
11298
11322
  "dimension#call2"
@@ -12376,11 +12400,11 @@
12376
12400
  },
12377
12401
  "word": "is"
12378
12402
  },
12379
- "generatedParenthesized": "(",
12380
- "paraphrases": "what is 10 degrees celcius in fahrenheit?",
12381
- "paraphrasesParenthesized": "(((what) is ((((10) degrees) (celcius)) in (fahrenheit)))?)",
12403
+ "generatedParenthesized": "(((((10) (celcius)) in (fahrenheit)) is ((((50)) (fahrenheit)))))",
12404
+ "paraphrases": "what is 10 celcius in fahrenheit?",
12405
+ "paraphrasesParenthesized": "(((what) is (((10) (celcius)) in (fahrenheit)))?)",
12382
12406
  "responses": [
12383
- "1"
12407
+ "10 celcius in fahrenheit is 50 fahrenheit"
12384
12408
  ]
12385
12409
  },
12386
12410
  {
@@ -12531,7 +12555,7 @@
12531
12555
  "word": "32"
12532
12556
  }
12533
12557
  },
12534
- "text": "fahrenheit = celcius * 9 / 5 + 32",
12558
+ "text": "fahrenheit = celcius*9/5 + 32",
12535
12559
  "topLevel": true,
12536
12560
  "touchedBy": [
12537
12561
  "dimension#call2"
@@ -12612,7 +12636,7 @@
12612
12636
  "end": 53,
12613
12637
  "start": 0
12614
12638
  },
12615
- "text": "fahrenheit are units of temperature",
12639
+ "text": "fahrenheit celcuis and kelvin are units of temperature",
12616
12640
  "topLevel": true,
12617
12641
  "touchedBy": [
12618
12642
  "dimension#call2"
@@ -12774,6 +12798,8 @@
12774
12798
  "marker": "is",
12775
12799
  "number": "many",
12776
12800
  "one": {
12801
+ "default": true,
12802
+ "isList": true,
12777
12803
  "level": 1,
12778
12804
  "listable": true,
12779
12805
  "marker": "list",
@@ -12782,15 +12808,16 @@
12782
12808
  "end": 30,
12783
12809
  "start": 0
12784
12810
  },
12811
+ "text": "dimension and unit",
12785
12812
  "types": [
12786
12813
  "list",
12787
- "unknown"
12814
+ "type"
12788
12815
  ],
12789
12816
  "value": [
12790
12817
  {
12791
12818
  "dead": true,
12792
- "level": 2,
12793
- "marker": "unknown",
12819
+ "level": 1,
12820
+ "marker": "type",
12794
12821
  "range": {
12795
12822
  "end": 8,
12796
12823
  "start": 0
@@ -12802,8 +12829,8 @@
12802
12829
  },
12803
12830
  {
12804
12831
  "dead": true,
12805
- "level": 2,
12806
- "marker": "unknown",
12832
+ "level": 1,
12833
+ "marker": "type",
12807
12834
  "range": {
12808
12835
  "end": 17,
12809
12836
  "start": 14
@@ -12813,13 +12840,14 @@
12813
12840
  "value": "unit",
12814
12841
  "word": "unit"
12815
12842
  }
12816
- ]
12843
+ ],
12844
+ "word": "and"
12817
12845
  },
12818
12846
  "range": {
12819
12847
  "end": 30,
12820
12848
  "start": 0
12821
12849
  },
12822
- "text": " are concepts",
12850
+ "text": "dimension and unit are concepts",
12823
12851
  "topLevel": true,
12824
12852
  "touchedBy": [
12825
12853
  "dimensionTemplate#call2",
@@ -12923,20 +12951,20 @@
12923
12951
  "temperature is a dimension",
12924
12952
  "fahrenheit, celcuis and kelvin are units of temperature",
12925
12953
  "fahrenheit = celcius * 9 / 5 + 32",
12926
- "what is 10 degrees celcius in fahrenheit?"
12954
+ "what is 10 celcius in fahrenheit?"
12927
12955
  ],
12928
12956
  "paraphrasesParenthesized": [
12929
12957
  "((temperature) is ((a) (dimension)))",
12930
12958
  "(((fahrenheit), (celcuis) and (kelvin)) are ((units) of (temperature)))",
12931
12959
  "((fahrenheit) = ((((celcius) * (9)) / (5)) + (32)))",
12932
- "(((what) is ((((10) degrees) (celcius)) in (fahrenheit)))?)"
12960
+ "(((what) is (((10) (celcius)) in (fahrenheit)))?)"
12933
12961
  ],
12934
12962
  "query": "temperature is a dimension\\nfahrenheit celcuis and kelvin are units of temperature\\nfahrenheit = celcius*9/5 + 32\\nwhat is 10 degrees celcius in fahrenheit",
12935
12963
  "responses": [
12936
12964
  "",
12937
12965
  "",
12938
12966
  "",
12939
- "1"
12967
+ "10 celcius in fahrenheit is 50 fahrenheit"
12940
12968
  ]
12941
12969
  },
12942
12970
  {
@@ -13081,6 +13109,7 @@
13081
13109
  "end": 24,
13082
13110
  "start": 0
13083
13111
  },
13112
+ "text": "a1 and b1 are units of d1",
13084
13113
  "types": [
13085
13114
  "list",
13086
13115
  "unknown"
@@ -13118,7 +13147,7 @@
13118
13147
  "end": 24,
13119
13148
  "start": 0
13120
13149
  },
13121
- "text": " are units of d1",
13150
+ "text": "a1 and b1 are units of d1",
13122
13151
  "topLevel": true,
13123
13152
  "touchedBy": [
13124
13153
  "dimension#call2"
@@ -13308,7 +13337,7 @@
13308
13337
  "word": "are"
13309
13338
  },
13310
13339
  "error": [
13311
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:692\"\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:692'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:143:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:143:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:317:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:126:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:201:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:317:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:176:45)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:911:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:183:26)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:715: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\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.'"
13340
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:666\"\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:666'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:158:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:146:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:318:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:124:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:199:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:315:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:202:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:939:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:213:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:689:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({callId, context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n if (callId == 'length#call3') {\n debugger\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.'"
13312
13341
  ],
13313
13342
  "evalue": "That is not known because there is no conversion between a1 and b1",
13314
13343
  "isResponse": true,
@@ -13361,7 +13390,7 @@
13361
13390
  "generatedParenthesized": [
13362
13391
  "",
13363
13392
  "",
13364
- "("
13393
+ "(That is not known because there is no conversion between a1 and b1)"
13365
13394
  ],
13366
13395
  "metadata": {
13367
13396
  "opChoices": [
@@ -14500,7 +14529,7 @@
14500
14529
  "word": "are"
14501
14530
  },
14502
14531
  "error": [
14503
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:692\"\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:692'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:143:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:143:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:317:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:126:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:201:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:317:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:176:45)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:911:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:183:26)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:715: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\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.'"
14532
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:666\"\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:666'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:158:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:146:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:318:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:124:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:199:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:315:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:202:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:939:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:213:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:689:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({callId, context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n if (callId == 'length#call3') {\n debugger\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.'"
14504
14533
  ],
14505
14534
  "evalue": "That is not known because there is no conversion between a1 and b1",
14506
14535
  "isResponse": true,
@@ -14549,11 +14578,11 @@
14549
14578
  "dimension#call4"
14550
14579
  ]
14551
14580
  },
14552
- "generatedParenthesized": "(",
14581
+ "generatedParenthesized": "(That is not known because there is no conversion between a1 and b1)",
14553
14582
  "paraphrases": "what are 10 a1 in b1?",
14554
14583
  "paraphrasesParenthesized": "((((what) are (((10) (a1)) in (b1)))?))",
14555
14584
  "responses": [
14556
- "T"
14585
+ "That is not known because there is no conversion between a1 and b1"
14557
14586
  ]
14558
14587
  },
14559
14588
  {
@@ -14571,6 +14600,7 @@
14571
14600
  "end": 24,
14572
14601
  "start": 0
14573
14602
  },
14603
+ "text": "a1 and b1 are units of d1",
14574
14604
  "types": [
14575
14605
  "list",
14576
14606
  "unknown"
@@ -14608,7 +14638,7 @@
14608
14638
  "end": 24,
14609
14639
  "start": 0
14610
14640
  },
14611
- "text": " are units of d1",
14641
+ "text": "a1 and b1 are units of d1",
14612
14642
  "topLevel": true,
14613
14643
  "touchedBy": [
14614
14644
  "dimension#call2"
@@ -14770,6 +14800,8 @@
14770
14800
  "marker": "is",
14771
14801
  "number": "many",
14772
14802
  "one": {
14803
+ "default": true,
14804
+ "isList": true,
14773
14805
  "level": 1,
14774
14806
  "listable": true,
14775
14807
  "marker": "list",
@@ -14778,15 +14810,16 @@
14778
14810
  "end": 30,
14779
14811
  "start": 0
14780
14812
  },
14813
+ "text": "dimension and unit",
14781
14814
  "types": [
14782
14815
  "list",
14783
- "unknown"
14816
+ "type"
14784
14817
  ],
14785
14818
  "value": [
14786
14819
  {
14787
14820
  "dead": true,
14788
- "level": 2,
14789
- "marker": "unknown",
14821
+ "level": 1,
14822
+ "marker": "type",
14790
14823
  "range": {
14791
14824
  "end": 8,
14792
14825
  "start": 0
@@ -14798,8 +14831,8 @@
14798
14831
  },
14799
14832
  {
14800
14833
  "dead": true,
14801
- "level": 2,
14802
- "marker": "unknown",
14834
+ "level": 1,
14835
+ "marker": "type",
14803
14836
  "range": {
14804
14837
  "end": 17,
14805
14838
  "start": 14
@@ -14809,13 +14842,14 @@
14809
14842
  "value": "unit",
14810
14843
  "word": "unit"
14811
14844
  }
14812
- ]
14845
+ ],
14846
+ "word": "and"
14813
14847
  },
14814
14848
  "range": {
14815
14849
  "end": 30,
14816
14850
  "start": 0
14817
14851
  },
14818
- "text": " are concepts",
14852
+ "text": "dimension and unit are concepts",
14819
14853
  "topLevel": true,
14820
14854
  "touchedBy": [
14821
14855
  "dimensionTemplate#call2",
@@ -14992,7 +15026,7 @@
14992
15026
  "end": 37,
14993
15027
  "start": 0
14994
15028
  },
14995
- "text": "* + are mathematical operators",
15029
+ "text": "* + / and - are mathematical operators",
14996
15030
  "topLevel": true,
14997
15031
  "touchedBy": [
14998
15032
  "mathTemplate#call2",
@@ -15007,7 +15041,7 @@
15007
15041
  "dead": true,
15008
15042
  "level": 1,
15009
15043
  "marker": "mathematical_operator",
15010
- "mathematical": {
15044
+ "modifier_mathematical": {
15011
15045
  "level": 0,
15012
15046
  "marker": "mathematical",
15013
15047
  "range": {
@@ -15022,7 +15056,7 @@
15022
15056
  "word": "mathematical"
15023
15057
  },
15024
15058
  "modifiers": [
15025
- "mathematical"
15059
+ "modifier_mathematical"
15026
15060
  ],
15027
15061
  "number": "many",
15028
15062
  "range": {
@@ -15064,7 +15098,7 @@
15064
15098
  "responses": [
15065
15099
  "",
15066
15100
  "",
15067
- "T"
15101
+ "That is not known because there is no conversion between a1 and b1"
15068
15102
  ]
15069
15103
  },
15070
15104
  {
@@ -15195,6 +15229,7 @@
15195
15229
  "end": 24,
15196
15230
  "start": 0
15197
15231
  },
15232
+ "text": "a1 and b1 are units of d1",
15198
15233
  "types": [
15199
15234
  "list",
15200
15235
  "unknown"
@@ -15232,7 +15267,7 @@
15232
15267
  "end": 24,
15233
15268
  "start": 0
15234
15269
  },
15235
- "text": " are units of d1",
15270
+ "text": "a1 and b1 are units of d1",
15236
15271
  "topLevel": true,
15237
15272
  "touchedBy": [
15238
15273
  "dimension#call2"
@@ -15422,7 +15457,7 @@
15422
15457
  "word": "are"
15423
15458
  },
15424
15459
  "error": [
15425
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:692\"\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:692'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:143:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:143:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:317:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:126:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:201:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:317:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:176:45)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:911:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:183:26)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:715: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\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.'"
15460
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:666\"\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:666'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:158:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:146:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:318:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:124:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:199:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:315:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:202:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:939:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:213:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:689:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({callId, context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n if (callId == 'length#call3') {\n debugger\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.'"
15426
15461
  ],
15427
15462
  "evalue": "That is not known because there is no conversion between a1 and b1",
15428
15463
  "isResponse": true,
@@ -15686,8 +15721,8 @@
15686
15721
  "generatedParenthesized": [
15687
15722
  "",
15688
15723
  "",
15689
- "(",
15690
- "("
15724
+ "(That is not known because there is no conversion between a1 and b1)",
15725
+ "(((the (reason)) is (((there is no conversion between (a1) and (b1))))))"
15691
15726
  ],
15692
15727
  "metadata": {
15693
15728
  "opChoices": [
@@ -17010,11 +17045,11 @@
17010
17045
  },
17011
17046
  "word": "is"
17012
17047
  },
17013
- "generatedParenthesized": "(",
17048
+ "generatedParenthesized": "(((the (reason)) is (((there is no conversion between (a1) and (b1))))))",
17014
17049
  "paraphrases": "what is the reason?",
17015
17050
  "paraphrasesParenthesized": "(((what) is (the (reason)))?)",
17016
17051
  "responses": [
17017
- "t"
17052
+ "the reason is there is no conversion between a1 and b1"
17018
17053
  ]
17019
17054
  },
17020
17055
  {
@@ -17134,7 +17169,7 @@
17134
17169
  "word": "are"
17135
17170
  },
17136
17171
  "error": [
17137
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:692\"\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:692'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:143:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:143:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:317:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:126:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:201:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:317:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:176:45)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:911:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:183:26)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:715: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\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.'"
17172
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:666\"\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:666'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:158:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:146:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:318:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:124:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:199:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:315:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:202:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:939:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:213:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:689:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({callId, context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n if (callId == 'length#call3') {\n debugger\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.'"
17138
17173
  ],
17139
17174
  "evalue": "That is not known because there is no conversion between a1 and b1",
17140
17175
  "isResponse": true,
@@ -17183,11 +17218,11 @@
17183
17218
  "dimension#call4"
17184
17219
  ]
17185
17220
  },
17186
- "generatedParenthesized": "(",
17221
+ "generatedParenthesized": "(That is not known because there is no conversion between a1 and b1)",
17187
17222
  "paraphrases": "what are 10 a1 in b1?",
17188
17223
  "paraphrasesParenthesized": "((((what) are (((10) (a1)) in (b1)))?))",
17189
17224
  "responses": [
17190
- "T"
17225
+ "That is not known because there is no conversion between a1 and b1"
17191
17226
  ]
17192
17227
  },
17193
17228
  {
@@ -17205,6 +17240,7 @@
17205
17240
  "end": 24,
17206
17241
  "start": 0
17207
17242
  },
17243
+ "text": "a1 and b1 are units of d1",
17208
17244
  "types": [
17209
17245
  "list",
17210
17246
  "unknown"
@@ -17242,7 +17278,7 @@
17242
17278
  "end": 24,
17243
17279
  "start": 0
17244
17280
  },
17245
- "text": " are units of d1",
17281
+ "text": "a1 and b1 are units of d1",
17246
17282
  "topLevel": true,
17247
17283
  "touchedBy": [
17248
17284
  "dimension#call2"
@@ -17404,6 +17440,8 @@
17404
17440
  "marker": "is",
17405
17441
  "number": "many",
17406
17442
  "one": {
17443
+ "default": true,
17444
+ "isList": true,
17407
17445
  "level": 1,
17408
17446
  "listable": true,
17409
17447
  "marker": "list",
@@ -17412,15 +17450,16 @@
17412
17450
  "end": 30,
17413
17451
  "start": 0
17414
17452
  },
17453
+ "text": "dimension and unit",
17415
17454
  "types": [
17416
17455
  "list",
17417
- "unknown"
17456
+ "type"
17418
17457
  ],
17419
17458
  "value": [
17420
17459
  {
17421
17460
  "dead": true,
17422
- "level": 2,
17423
- "marker": "unknown",
17461
+ "level": 1,
17462
+ "marker": "type",
17424
17463
  "range": {
17425
17464
  "end": 8,
17426
17465
  "start": 0
@@ -17432,8 +17471,8 @@
17432
17471
  },
17433
17472
  {
17434
17473
  "dead": true,
17435
- "level": 2,
17436
- "marker": "unknown",
17474
+ "level": 1,
17475
+ "marker": "type",
17437
17476
  "range": {
17438
17477
  "end": 17,
17439
17478
  "start": 14
@@ -17443,13 +17482,14 @@
17443
17482
  "value": "unit",
17444
17483
  "word": "unit"
17445
17484
  }
17446
- ]
17485
+ ],
17486
+ "word": "and"
17447
17487
  },
17448
17488
  "range": {
17449
17489
  "end": 30,
17450
17490
  "start": 0
17451
17491
  },
17452
- "text": " are concepts",
17492
+ "text": "dimension and unit are concepts",
17453
17493
  "topLevel": true,
17454
17494
  "touchedBy": [
17455
17495
  "dimensionTemplate#call2",
@@ -17565,8 +17605,8 @@
17565
17605
  "responses": [
17566
17606
  "",
17567
17607
  "",
17568
- "T",
17569
- "t"
17608
+ "That is not known because there is no conversion between a1 and b1",
17609
+ "the reason is there is no conversion between a1 and b1"
17570
17610
  ]
17571
17611
  },
17572
17612
  {
@@ -17655,6 +17695,7 @@
17655
17695
  "end": 24,
17656
17696
  "start": 0
17657
17697
  },
17698
+ "text": "a1 and b1 are units of d1",
17658
17699
  "types": [
17659
17700
  "list",
17660
17701
  "unknown"
@@ -17692,7 +17733,7 @@
17692
17733
  "end": 24,
17693
17734
  "start": 0
17694
17735
  },
17695
- "text": " are units of d1",
17736
+ "text": "a1 and b1 are units of d1",
17696
17737
  "topLevel": true,
17697
17738
  "touchedBy": [
17698
17739
  "dimension#call2"
@@ -17882,7 +17923,7 @@
17882
17923
  "word": "are"
17883
17924
  },
17884
17925
  "error": [
17885
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:692\"\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:692'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:143:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:143:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:317:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:126:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:201:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:317:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:176:45)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:911:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:183:26)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:715: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\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.'"
17926
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:666\"\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:666'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:158:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:146:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:318:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:124:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:199:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:315:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:202:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:939:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:213:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:689:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({callId, context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n if (callId == 'length#call3') {\n debugger\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.'"
17886
17927
  ],
17887
17928
  "evalue": "That is not known because there is no conversion between a1 and b1",
17888
17929
  "isResponse": true,
@@ -17992,8 +18033,8 @@
17992
18033
  "generatedParenthesized": [
17993
18034
  "",
17994
18035
  "",
17995
- "(",
17996
- "("
18036
+ "(That is not known because there is no conversion between a1 and b1)",
18037
+ "((there is no conversion between (a1) and (b1)))"
17997
18038
  ],
17998
18039
  "metadata": {
17999
18040
  "opChoices": [
@@ -19086,11 +19127,11 @@
19086
19127
  },
19087
19128
  "word": "why"
19088
19129
  },
19089
- "generatedParenthesized": "(",
19130
+ "generatedParenthesized": "((there is no conversion between (a1) and (b1)))",
19090
19131
  "paraphrases": "why",
19091
19132
  "paraphrasesParenthesized": "(why)",
19092
19133
  "responses": [
19093
- "t"
19134
+ "there is no conversion between a1 and b1"
19094
19135
  ]
19095
19136
  },
19096
19137
  {
@@ -19210,7 +19251,7 @@
19210
19251
  "word": "are"
19211
19252
  },
19212
19253
  "error": [
19213
- "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:692\"\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:692'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:143:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:143:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:317:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:126:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:201:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:317:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:176:45)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:911:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:183:26)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:715: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\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.'"
19254
+ "ERROR while applying (dialogues/#4) KM 'dialogues' ordinal: 4 where: \"/home/dev/code/theprogrammablemind/kms/common/dialogues.js:666\"\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:666'. Error is ERROR while applying (dimension/#0) KM 'dimension' ordinal: 0 where: \"/home/dev/code/theprogrammablemind/kms/common/dimension.js:116\"\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:116'. 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}}} 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}}}\n at args.error (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:158:11)\n at Object.evaluator (/home/dev/code/theprogrammablemind/kms/common/dimension.js:146:13)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:318:35)\n at Semantic.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:124:10)\n at Semantics.applyToContext (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:199:35)\n at Semantics.apply (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/semantics.js:315:19)\n at args.s (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:202:47)\n at Config.getEvaluator (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/src/config.js:939:22)\n at args.e (/home/dev/code/theprogrammablemind/kms/node_modules/theprogrammablemind/client.js:213:21)\n at Semantic.apply [as _apply] (/home/dev/code/theprogrammablemind/kms/common/dialogues.js:689:24). Semantic is Semantic(({ context }) => bridge.id == context.marker && context.evaluate, ({callId, context, kms, e, error}) => {\n /*\n error(({context, e}) => {\n context.evalue = 'dont know...'\n })\n */\n if (callId == 'length#call3') {\n debugger\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.'"
19214
19255
  ],
19215
19256
  "evalue": "That is not known because there is no conversion between a1 and b1",
19216
19257
  "isResponse": true,
@@ -19259,11 +19300,11 @@
19259
19300
  "dimension#call4"
19260
19301
  ]
19261
19302
  },
19262
- "generatedParenthesized": "(",
19303
+ "generatedParenthesized": "(That is not known because there is no conversion between a1 and b1)",
19263
19304
  "paraphrases": "what are 10 a1 in b1?",
19264
19305
  "paraphrasesParenthesized": "((((what) are (((10) (a1)) in (b1)))?))",
19265
19306
  "responses": [
19266
- "T"
19307
+ "That is not known because there is no conversion between a1 and b1"
19267
19308
  ]
19268
19309
  },
19269
19310
  {
@@ -19281,6 +19322,7 @@
19281
19322
  "end": 24,
19282
19323
  "start": 0
19283
19324
  },
19325
+ "text": "a1 and b1 are units of d1",
19284
19326
  "types": [
19285
19327
  "list",
19286
19328
  "unknown"
@@ -19318,7 +19360,7 @@
19318
19360
  "end": 24,
19319
19361
  "start": 0
19320
19362
  },
19321
- "text": " are units of d1",
19363
+ "text": "a1 and b1 are units of d1",
19322
19364
  "topLevel": true,
19323
19365
  "touchedBy": [
19324
19366
  "dimension#call2"
@@ -19480,6 +19522,8 @@
19480
19522
  "marker": "is",
19481
19523
  "number": "many",
19482
19524
  "one": {
19525
+ "default": true,
19526
+ "isList": true,
19483
19527
  "level": 1,
19484
19528
  "listable": true,
19485
19529
  "marker": "list",
@@ -19488,15 +19532,16 @@
19488
19532
  "end": 30,
19489
19533
  "start": 0
19490
19534
  },
19535
+ "text": "dimension and unit",
19491
19536
  "types": [
19492
19537
  "list",
19493
- "unknown"
19538
+ "type"
19494
19539
  ],
19495
19540
  "value": [
19496
19541
  {
19497
19542
  "dead": true,
19498
- "level": 2,
19499
- "marker": "unknown",
19543
+ "level": 1,
19544
+ "marker": "type",
19500
19545
  "range": {
19501
19546
  "end": 8,
19502
19547
  "start": 0
@@ -19508,8 +19553,8 @@
19508
19553
  },
19509
19554
  {
19510
19555
  "dead": true,
19511
- "level": 2,
19512
- "marker": "unknown",
19556
+ "level": 1,
19557
+ "marker": "type",
19513
19558
  "range": {
19514
19559
  "end": 17,
19515
19560
  "start": 14
@@ -19519,13 +19564,14 @@
19519
19564
  "value": "unit",
19520
19565
  "word": "unit"
19521
19566
  }
19522
- ]
19567
+ ],
19568
+ "word": "and"
19523
19569
  },
19524
19570
  "range": {
19525
19571
  "end": 30,
19526
19572
  "start": 0
19527
19573
  },
19528
- "text": " are concepts",
19574
+ "text": "dimension and unit are concepts",
19529
19575
  "topLevel": true,
19530
19576
  "touchedBy": [
19531
19577
  "dimensionTemplate#call2",
@@ -19641,8 +19687,8 @@
19641
19687
  "responses": [
19642
19688
  "",
19643
19689
  "",
19644
- "T",
19645
- "t"
19690
+ "That is not known because there is no conversion between a1 and b1",
19691
+ "there is no conversion between a1 and b1"
19646
19692
  ]
19647
19693
  }
19648
19694
  ]