tpmkms_4wp 7.12.2 → 7.12.3-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/avatar.js +6 -6
- package/common/comparable.js +1 -1
- package/common/concept.js +2 -0
- package/common/countable.js +1 -1
- package/common/crew.instance.json +36 -0
- package/common/crew.js +3 -2
- package/common/crew.test.json +45 -45
- package/common/currency.js +2 -0
- package/common/dialogues.js +11 -3
- package/common/dimension.js +5 -3
- package/common/dimension.test.json +204 -158
- package/common/edible.instance.json +56 -0
- package/common/edible.js +1 -2
- package/common/edible.test.json +34 -4
- package/common/emotions.js +2 -0
- package/common/fastfood.instance.json +732 -224
- package/common/fastfood.js +3 -4
- package/common/fastfood.test.json +686 -2164
- package/common/formulas.js +3 -1
- package/common/formulas.test.json +25 -85
- package/common/formulasTemplate.js +1 -1
- package/common/gdefaults.js +2 -1
- package/common/help.js +2 -0
- package/common/hierarchy.js +4 -2
- package/common/javascript.js +2 -0
- package/common/math.js +13 -5
- package/common/math.test.json +127 -543
- package/common/mathTemplate.js +1 -1
- package/common/ordering.instance.json +0 -68
- package/common/ordering.js +2 -0
- package/common/people.js +2 -0
- package/common/people.test.json +118 -56
- package/common/pipboy.js +3 -1
- package/common/pipboy.test.json +1813 -91
- package/common/pipboyTemplate.js +1 -1
- package/common/pokemon.js +2 -0
- package/common/pokemon.test.json +1658 -4
- package/common/properties.js +3 -3
- package/common/properties.test.json +198 -90
- package/common/reports.instance.json +1 -1
- package/common/reports.js +4 -1
- package/common/scorekeeper.js +3 -3
- package/common/scorekeeper.test.json +46 -46
- package/common/sizeable.js +1 -1
- package/common/stgame.js +2 -0
- package/common/tell.js +2 -0
- package/common/temperature.instance.json +0 -112
- package/common/time.js +2 -0
- package/common/ui.js +3 -1
- package/common/weight.test.json +22 -22
- package/package.json +2 -2
| @@ -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 | 
            -
                            " | 
| 571 | 
            +
                            "type"
         | 
| 569 572 | 
             
                          ],
         | 
| 570 573 | 
             
                          "value": [
         | 
| 571 574 | 
             
                            {
         | 
| 572 575 | 
             
                              "dead": true,
         | 
| 573 | 
            -
                              "level":  | 
| 574 | 
            -
                              "marker": " | 
| 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":  | 
| 587 | 
            -
                              "marker": " | 
| 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 | 
            -
                          " | 
| 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 | 
            -
                            " | 
| 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":  | 
| 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 | 
            -
                            " | 
| 1420 | 
            +
                            "type"
         | 
| 1414 1421 | 
             
                          ],
         | 
| 1415 1422 | 
             
                          "value": [
         | 
| 1416 1423 | 
             
                            {
         | 
| 1417 1424 | 
             
                              "dead": true,
         | 
| 1418 | 
            -
                              "level":  | 
| 1419 | 
            -
                              "marker": " | 
| 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":  | 
| 1432 | 
            -
                              "marker": " | 
| 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 | 
            -
                          " | 
| 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 | 
            -
                            " | 
| 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":  | 
| 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  | 
| 3044 | 
            -
                      "paraphrasesParenthesized": "(( | 
| 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 | 
            -
                            " | 
| 3298 | 
            +
                            "type"
         | 
| 3288 3299 | 
             
                          ],
         | 
| 3289 3300 | 
             
                          "value": [
         | 
| 3290 3301 | 
             
                            {
         | 
| 3291 3302 | 
             
                              "dead": true,
         | 
| 3292 | 
            -
                              "level":  | 
| 3293 | 
            -
                              "marker": " | 
| 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":  | 
| 3306 | 
            -
                              "marker": " | 
| 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 | 
            -
                          " | 
| 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 | 
            -
                            " | 
| 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  | 
| 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 | 
            -
                  "(( | 
| 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 | 
            -
                            " | 
| 5076 | 
            +
                            "type"
         | 
| 5062 5077 | 
             
                          ],
         | 
| 5063 5078 | 
             
                          "value": [
         | 
| 5064 5079 | 
             
                            {
         | 
| 5065 5080 | 
             
                              "dead": true,
         | 
| 5066 | 
            -
                              "level":  | 
| 5067 | 
            -
                              "marker": " | 
| 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":  | 
| 5080 | 
            -
                              "marker": " | 
| 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 | 
            -
                          " | 
| 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 | 
            -
                            " | 
| 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  | 
| 6663 | 
            -
                      "paraphrasesParenthesized": "(( | 
| 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 | 
            -
                            " | 
| 6925 | 
            +
                            "type"
         | 
| 6907 6926 | 
             
                          ],
         | 
| 6908 6927 | 
             
                          "value": [
         | 
| 6909 6928 | 
             
                            {
         | 
| 6910 6929 | 
             
                              "dead": true,
         | 
| 6911 | 
            -
                              "level":  | 
| 6912 | 
            -
                              "marker": " | 
| 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":  | 
| 6925 | 
            -
                              "marker": " | 
| 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 | 
            -
                          " | 
| 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 | 
            -
                            " | 
| 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  | 
| 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 | 
            -
                  "(( | 
| 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  | 
| 8668 | 
            -
                      "paraphrasesParenthesized": "((( | 
| 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 | 
            -
                            " | 
| 8934 | 
            +
                            "type"
         | 
| 8912 8935 | 
             
                          ],
         | 
| 8913 8936 | 
             
                          "value": [
         | 
| 8914 8937 | 
             
                            {
         | 
| 8915 8938 | 
             
                              "dead": true,
         | 
| 8916 | 
            -
                              "level":  | 
| 8917 | 
            -
                              "marker": " | 
| 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":  | 
| 8930 | 
            -
                              "marker": " | 
| 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 | 
            -
                          " | 
| 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 | 
            -
                            " | 
| 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  | 
| 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 | 
            -
                  "((( | 
| 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 | 
| 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 | 
| 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  | 
| 12381 | 
            -
                      "paraphrasesParenthesized": "(((what) is ((( | 
| 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 | 
            -
                        " | 
| 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 | 
| 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 | 
            -
                            " | 
| 12814 | 
            +
                            "type"
         | 
| 12788 12815 | 
             
                          ],
         | 
| 12789 12816 | 
             
                          "value": [
         | 
| 12790 12817 | 
             
                            {
         | 
| 12791 12818 | 
             
                              "dead": true,
         | 
| 12792 | 
            -
                              "level":  | 
| 12793 | 
            -
                              "marker": " | 
| 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":  | 
| 12806 | 
            -
                              "marker": " | 
| 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  | 
| 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 ((( | 
| 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 | 
            -
                  " | 
| 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 | 
            -
                        " | 
| 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 | 
            -
                            " | 
| 14816 | 
            +
                            "type"
         | 
| 14784 14817 | 
             
                          ],
         | 
| 14785 14818 | 
             
                          "value": [
         | 
| 14786 14819 | 
             
                            {
         | 
| 14787 14820 | 
             
                              "dead": true,
         | 
| 14788 | 
            -
                              "level":  | 
| 14789 | 
            -
                              "marker": " | 
| 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":  | 
| 14802 | 
            -
                              "marker": " | 
| 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 | 
            -
                          " | 
| 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 | 
            -
                            " | 
| 15059 | 
            +
                            "modifier_mathematical"
         | 
| 15026 15060 | 
             
                          ],
         | 
| 15027 15061 | 
             
                          "number": "many",
         | 
| 15028 15062 | 
             
                          "range": {
         | 
| @@ -15064,7 +15098,7 @@ | |
| 15064 15098 | 
             
                "responses": [
         | 
| 15065 15099 | 
             
                  "",
         | 
| 15066 15100 | 
             
                  "",
         | 
| 15067 | 
            -
                  " | 
| 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 | 
            -
                        " | 
| 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 | 
            -
                        " | 
| 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 | 
            -
                            " | 
| 17456 | 
            +
                            "type"
         | 
| 17418 17457 | 
             
                          ],
         | 
| 17419 17458 | 
             
                          "value": [
         | 
| 17420 17459 | 
             
                            {
         | 
| 17421 17460 | 
             
                              "dead": true,
         | 
| 17422 | 
            -
                              "level":  | 
| 17423 | 
            -
                              "marker": " | 
| 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":  | 
| 17436 | 
            -
                              "marker": " | 
| 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 | 
            -
                  " | 
| 17569 | 
            -
                  " | 
| 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 | 
            -
                        " | 
| 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 | 
            -
                        " | 
| 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 | 
            -
                            " | 
| 19538 | 
            +
                            "type"
         | 
| 19494 19539 | 
             
                          ],
         | 
| 19495 19540 | 
             
                          "value": [
         | 
| 19496 19541 | 
             
                            {
         | 
| 19497 19542 | 
             
                              "dead": true,
         | 
| 19498 | 
            -
                              "level":  | 
| 19499 | 
            -
                              "marker": " | 
| 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":  | 
| 19512 | 
            -
                              "marker": " | 
| 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 | 
            -
                  " | 
| 19645 | 
            -
                  " | 
| 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 | 
             
            ]
         |