{
  "configs": [
    "formulas are concepts",
    {
      "name": "formulas",
      "operators": [
        "([formula])",
        "([solve] (equals/1) ([forVariable|for]) (variable))",
        "(([formula]) [formulaForVariable|] ([forVariable|]) (variable))",
        "([calculate] ([expression]))",
        "(([expression]) [equals] ([expression]))"
      ],
      "priorities": [
        {
          "context": [
            [
              "mathematical_operator",
              0
            ],
            [
              "number",
              0
            ]
          ],
          "choose": [
            0
          ]
        }
      ],
      "semantics": [
        {
          "match": "({context, api}) => context.evaluate && api.get(context)",
          "apply": "async ({context, api, e}) => {\n        const { formula } = api.get(context)\n        // console.log('greg24 -----------', JSON.stringify(formula, null, 2))\n        context.evalue = await e(formula) \n      }"
        }
      ],
      "bridges": [
        {
          "where": "/home/dev/code/theprogrammablemind/kms/common/formulas.js:120",
          "id": "formulaForVariable",
          "isA": [
            "preposition",
            "queryable"
          ],
          "convolution": true,
          "bridge": "{ number: before[0].number, ...next(operator), what: before[0], equality: after[0], variable: after[1] }",
          "generatorp": "async ({context, g}) => `${await g(context.what)} ${await g(context.equality)} ${await g(context.variable)}`",
          "evaluator": "({context, api, objects}) => {\n        const formulas = api.gets(context.variable).map((f) => { return { ...f.equality, paraphrase: true } })\n        context.evalue = { marker: 'list', value: formulas }\n      }"
        },
        {
          "where": "/home/dev/code/theprogrammablemind/kms/common/formulas.js:132",
          "id": "solve",
          "bridge": "{ ...next(operator), equality: after[0], variable: after[2] }",
          "generatorp": "async ({context, gp}) => `${context.word} ${await gp(context.equality)} for ${await gp(context.variable)}`",
          "semantic": "({context}) => {\n        context.response = solveFor(context.equality, context.variable)\n        context.isResponse = true\n        context.value = null\n        if (!context.response) {\n          // TODO some KM for talking to the user wrt brief+avatar\n          context.verbatim = `Solving failed`\n        }\n      }"
        },
        {
          "id": "forVariable",
          "isA": [
            "preposition"
          ]
        },
        {
          "id": "formula"
        },
        {
          "id": "expression",
          "children": [
            "mathematicalExpression",
            "number"
          ],
          "before": [
            "verb"
          ]
        },
        {
          "where": "/home/dev/code/theprogrammablemind/kms/common/formulas.js:159",
          "id": "calculate",
          "isA": [
            "verb"
          ],
          "bridge": "{ ...next(operator), expression: after[0] }",
          "generatorp": "async ({context, g}) => `${context.word} ${await g(context.expression)}`",
          "localHierarchy": [
            [
              "unknown",
              "expression"
            ]
          ],
          "semantic": "async ({context, e}) => {\n        context.evalue = await e(context.expression)\n        context.isResponse = true\n      }"
        },
        {
          "where": "/home/dev/code/theprogrammablemind/kms/common/formulas.js:171",
          "id": "equals",
          "bridge": "{ ...next(operator), left: before[0], right: after[0] }",
          "words": [
            "="
          ],
          "after": [
            "mathematical_operator"
          ],
          "localHierarchy": [
            [
              "unknown",
              "expression"
            ]
          ],
          "semantic": "({context, api}) => {\n        // TODO make sure left is a single name\n        // TODO calculate invertable formulas?\n        api.add(context.left, context.right, context)\n      }"
        }
      ]
    }
  ],
  "resultss": [
    {
      "hierarchy": [
        [
          "a",
          "article",
          false
        ],
        [
          "adjective",
          "adjective",
          false
        ],
        [
          "all",
          "quantifier",
          false
        ],
        [
          "article",
          "article",
          false
        ],
        [
          "ascending",
          "hierarchyAble",
          false
        ],
        [
          "ascending",
          "isEdee",
          false
        ],
        [
          "ascending",
          "isEder",
          false
        ],
        [
          "ascending",
          "object",
          false
        ],
        [
          "ascending",
          "property",
          false
        ],
        [
          "ascending",
          "queryable",
          false
        ],
        [
          "ascending",
          "sort_ordering",
          false
        ],
        [
          "ascending",
          "theAble",
          false
        ],
        [
          "ascending",
          "thisAble",
          false
        ],
        [
          "between",
          "preposition",
          false
        ],
        [
          "canBeDoQuestion",
          "canBeDoQuestion",
          false
        ],
        [
          "canBeQuestion",
          "canBeQuestion",
          false
        ],
        [
          "comparable",
          "theAble",
          false
        ],
        [
          "concept",
          "queryable",
          false
        ],
        [
          "concept",
          "theAble",
          false
        ],
        [
          "condition",
          "concept",
          false
        ],
        [
          "condition",
          "hierarchyAble",
          false
        ],
        [
          "condition",
          "isEdee",
          false
        ],
        [
          "condition",
          "isEder",
          false
        ],
        [
          "condition",
          "object",
          false
        ],
        [
          "condition",
          "property",
          false
        ],
        [
          "condition",
          "queryable",
          false
        ],
        [
          "condition",
          "theAble",
          false
        ],
        [
          "condition",
          "thisAble",
          false
        ],
        [
          "countable",
          "hierarchyAble",
          false
        ],
        [
          "descending",
          "hierarchyAble",
          false
        ],
        [
          "descending",
          "isEdee",
          false
        ],
        [
          "descending",
          "isEder",
          false
        ],
        [
          "descending",
          "object",
          false
        ],
        [
          "descending",
          "property",
          false
        ],
        [
          "descending",
          "queryable",
          false
        ],
        [
          "descending",
          "sort_ordering",
          false
        ],
        [
          "descending",
          "theAble",
          false
        ],
        [
          "descending",
          "thisAble",
          false
        ],
        [
          "distributable",
          "queryable",
          false
        ],
        [
          "divideByExpression",
          "mathematicalExpression",
          false
        ],
        [
          "divideByOperator",
          "mathematical_operator",
          false
        ],
        [
          "doubleQuote",
          "queryable",
          false
        ],
        [
          "each",
          "article",
          false
        ],
        [
          "every",
          "article",
          false
        ],
        [
          "hasCountOfPieces",
          "countable",
          false
        ],
        [
          "have",
          "canBeDoQuestion",
          false
        ],
        [
          "have",
          "canBeQuestion",
          false
        ],
        [
          "hierarchyAble",
          "queryable",
          false
        ],
        [
          "highest",
          "hierarchyAble",
          false
        ],
        [
          "highest",
          "isEdee",
          false
        ],
        [
          "highest",
          "isEder",
          false
        ],
        [
          "highest",
          "object",
          false
        ],
        [
          "highest",
          "property",
          false
        ],
        [
          "highest",
          "queryable",
          false
        ],
        [
          "highest",
          "superlative",
          false
        ],
        [
          "highest",
          "theAble",
          false
        ],
        [
          "highest",
          "thisAble",
          false
        ],
        [
          "ifAble",
          "ifAble",
          false
        ],
        [
          "integer",
          "number",
          false
        ],
        [
          "is",
          "canBeQuestion",
          false
        ],
        [
          "is",
          "verb",
          false
        ],
        [
          "isEdee",
          "isEdee",
          false
        ],
        [
          "isEder",
          "isEder",
          false
        ],
        [
          "isQuery",
          "verb",
          false
        ],
        [
          "it",
          "pronoun",
          false
        ],
        [
          "it",
          "queryable",
          false
        ],
        [
          "it",
          "thisitthat",
          false
        ],
        [
          "it",
          "toAble",
          false
        ],
        [
          "listable",
          "theAble",
          false
        ],
        [
          "lowest",
          "hierarchyAble",
          false
        ],
        [
          "lowest",
          "isEdee",
          false
        ],
        [
          "lowest",
          "isEder",
          false
        ],
        [
          "lowest",
          "object",
          false
        ],
        [
          "lowest",
          "property",
          false
        ],
        [
          "lowest",
          "queryable",
          false
        ],
        [
          "lowest",
          "superlative",
          false
        ],
        [
          "lowest",
          "theAble",
          false
        ],
        [
          "lowest",
          "thisAble",
          false
        ],
        [
          "mathematical",
          "hierarchyAble",
          false
        ],
        [
          "mathematical",
          "isEdee",
          false
        ],
        [
          "mathematical",
          "isEder",
          false
        ],
        [
          "mathematical",
          "object",
          false
        ],
        [
          "mathematical",
          "operator_modifier",
          false
        ],
        [
          "mathematical",
          "property",
          false
        ],
        [
          "mathematical",
          "queryable",
          false
        ],
        [
          "mathematical",
          "theAble",
          false
        ],
        [
          "mathematicalExpression",
          "concept",
          false
        ],
        [
          "mathematicalExpression",
          "number",
          false
        ],
        [
          "mathematical_operator",
          "adjective",
          true
        ],
        [
          "mathematical_operator",
          "concept",
          false
        ],
        [
          "mathematical_operator",
          "hierarchyAble",
          false
        ],
        [
          "mathematical_operator",
          "isEdee",
          false
        ],
        [
          "mathematical_operator",
          "isEder",
          false
        ],
        [
          "mathematical_operator",
          "object",
          false
        ],
        [
          "mathematical_operator",
          "operator",
          false
        ],
        [
          "mathematical_operator",
          "property",
          false
        ],
        [
          "mathematical_operator",
          "queryable",
          false
        ],
        [
          "mathematical_operator",
          "theAble",
          false
        ],
        [
          "maximum",
          "hierarchyAble",
          false
        ],
        [
          "maximum",
          "isEdee",
          false
        ],
        [
          "maximum",
          "isEder",
          false
        ],
        [
          "maximum",
          "object",
          false
        ],
        [
          "maximum",
          "property",
          false
        ],
        [
          "maximum",
          "queryable",
          false
        ],
        [
          "maximum",
          "superlative",
          false
        ],
        [
          "maximum",
          "theAble",
          false
        ],
        [
          "maximum",
          "thisAble",
          false
        ],
        [
          "memorable",
          "theAble",
          false
        ],
        [
          "minimum",
          "hierarchyAble",
          false
        ],
        [
          "minimum",
          "isEdee",
          false
        ],
        [
          "minimum",
          "isEder",
          false
        ],
        [
          "minimum",
          "object",
          false
        ],
        [
          "minimum",
          "property",
          false
        ],
        [
          "minimum",
          "queryable",
          false
        ],
        [
          "minimum",
          "superlative",
          false
        ],
        [
          "minimum",
          "theAble",
          false
        ],
        [
          "minimum",
          "thisAble",
          false
        ],
        [
          "minusExpression",
          "mathematicalExpression",
          false
        ],
        [
          "minusOperator",
          "mathematical_operator",
          false
        ],
        [
          "modifies",
          "verb",
          false
        ],
        [
          "negatable",
          "queryable",
          false
        ],
        [
          "noun",
          "theAble",
          false
        ],
        [
          "noun",
          "thisAble",
          false
        ],
        [
          "number",
          "quantifier",
          false
        ],
        [
          "number",
          "queryable",
          false
        ],
        [
          "object",
          "listable",
          false
        ],
        [
          "object",
          "queryable",
          false
        ],
        [
          "object",
          "theAble",
          false
        ],
        [
          "operator",
          "concept",
          false
        ],
        [
          "operator",
          "hierarchyAble",
          false
        ],
        [
          "operator",
          "isEdee",
          false
        ],
        [
          "operator",
          "isEder",
          false
        ],
        [
          "operator",
          "object",
          false
        ],
        [
          "operator",
          "property",
          false
        ],
        [
          "operator",
          "queryable",
          false
        ],
        [
          "operator",
          "theAble",
          false
        ],
        [
          "operator_modifier",
          "adjective",
          false
        ],
        [
          "orAble",
          "ifAble",
          false
        ],
        [
          "ordering",
          "concept",
          false
        ],
        [
          "ordering",
          "hierarchyAble",
          false
        ],
        [
          "ordering",
          "isEdee",
          false
        ],
        [
          "ordering",
          "isEder",
          false
        ],
        [
          "ordering",
          "object",
          false
        ],
        [
          "ordering",
          "property",
          false
        ],
        [
          "ordering",
          "queryable",
          false
        ],
        [
          "ordering",
          "theAble",
          false
        ],
        [
          "ordering_modifier",
          "adjective",
          false
        ],
        [
          "plusExpression",
          "mathematicalExpression",
          false
        ],
        [
          "plusOperator",
          "mathematical_operator",
          false
        ],
        [
          "preposition",
          "preposition",
          false
        ],
        [
          "pronoun",
          "pronoun",
          false
        ],
        [
          "property",
          "queryable",
          false
        ],
        [
          "property",
          "theAble",
          false
        ],
        [
          "propertyOf",
          "preposition",
          false
        ],
        [
          "punctuation",
          "punctuation",
          false
        ],
        [
          "quantifier",
          "quantifier",
          false
        ],
        [
          "queryable",
          "listable",
          false
        ],
        [
          "questionMark",
          "punctuation",
          false
        ],
        [
          "readonly",
          "queryable",
          false
        ],
        [
          "reason",
          "queryable",
          false
        ],
        [
          "reason",
          "theAble",
          false
        ],
        [
          "remember",
          "verb",
          false
        ],
        [
          "sort",
          "hierarchyAble",
          false
        ],
        [
          "sort",
          "isEdee",
          false
        ],
        [
          "sort",
          "isEder",
          false
        ],
        [
          "sort",
          "object",
          false
        ],
        [
          "sort",
          "ordering_modifier",
          false
        ],
        [
          "sort",
          "property",
          false
        ],
        [
          "sort",
          "queryable",
          false
        ],
        [
          "sort",
          "theAble",
          false
        ],
        [
          "sortOrdering",
          "adjective",
          false
        ],
        [
          "sort_ordering",
          "adjective",
          true
        ],
        [
          "sort_ordering",
          "concept",
          false
        ],
        [
          "sort_ordering",
          "hierarchyAble",
          false
        ],
        [
          "sort_ordering",
          "isEdee",
          false
        ],
        [
          "sort_ordering",
          "isEder",
          false
        ],
        [
          "sort_ordering",
          "object",
          false
        ],
        [
          "sort_ordering",
          "ordering",
          false
        ],
        [
          "sort_ordering",
          "property",
          false
        ],
        [
          "sort_ordering",
          "queryable",
          false
        ],
        [
          "sort_ordering",
          "theAble",
          false
        ],
        [
          "stm_before",
          "adjective",
          false
        ],
        [
          "stm_current",
          "adjective",
          false
        ],
        [
          "stm_previous",
          "adjective",
          false
        ],
        [
          "superlative",
          "condition",
          false
        ],
        [
          "superlative",
          "hierarchyAble",
          false
        ],
        [
          "superlative",
          "isEdee",
          false
        ],
        [
          "superlative",
          "isEder",
          false
        ],
        [
          "superlative",
          "object",
          false
        ],
        [
          "superlative",
          "property",
          false
        ],
        [
          "superlative",
          "queryable",
          false
        ],
        [
          "superlative",
          "theAble",
          false
        ],
        [
          "superlative",
          "thisAble",
          false
        ],
        [
          "that",
          "thisitthat",
          false
        ],
        [
          "the",
          "article",
          false
        ],
        [
          "theAble",
          "queryable",
          false
        ],
        [
          "this",
          "pronoun",
          false
        ],
        [
          "this",
          "queryable",
          false
        ],
        [
          "this",
          "thisitthat",
          false
        ],
        [
          "thisAble",
          "thisAble",
          false
        ],
        [
          "thisitthat",
          "queryable",
          false
        ],
        [
          "timesExpression",
          "mathematicalExpression",
          false
        ],
        [
          "timesOperator",
          "mathematical_operator",
          false
        ],
        [
          "to",
          "preposition",
          false
        ],
        [
          "toAble",
          "toAble",
          false
        ],
        [
          "type",
          "property",
          false
        ],
        [
          "type",
          "whatAble",
          false
        ],
        [
          "unknown",
          "hierarchyAble",
          false
        ],
        [
          "verb",
          "verb",
          false
        ],
        [
          "what",
          "object",
          false
        ],
        [
          "what",
          "queryable",
          false
        ],
        [
          "whatAble",
          "queryable",
          false
        ],
        [
          "whose",
          "object",
          false
        ],
        [
          "x",
          "number",
          false
        ],
        [
          "xfx",
          "queryable",
          false
        ],
        [
          "y",
          "number",
          false
        ]
      ],
      "metadata": {
        "opChoices": [
          {
            "op": [
              "unknown",
              0
            ],
            "ops": [
              [
                "is",
                0
              ],
              [
                "unknown",
                0
              ],
              [
                "unknown",
                0
              ]
            ],
            "counter": 1
          },
          {
            "op": [
              "unknown",
              0
            ],
            "ops": [
              [
                "is",
                0
              ],
              [
                "unknown",
                0
              ]
            ],
            "counter": 2
          },
          {
            "op": [
              "is",
              0
            ],
            "ops": [
              [
                "is",
                0
              ]
            ],
            "counter": 3
          },
          {
            "op": [
              "is",
              1
            ],
            "ops": [
              [
                "is",
                1
              ]
            ],
            "counter": 4
          }
        ]
      },
      "trace": "undefined",
      "contexts": [
        {
          "number": "many",
          "text": "formulas are concepts",
          "marker": "is",
          "word": "are",
          "range": {
            "start": 0,
            "end": 20
          },
          "one": {
            "number": "many",
            "value": "formulas",
            "unknown": true,
            "text": "formulas",
            "marker": "unknown",
            "word": "formulas",
            "range": {
              "start": 0,
              "end": 7
            },
            "dead": true,
            "types": [
              "unknown"
            ],
            "level": 0
          },
          "two": {
            "value": "concepts",
            "unknown": true,
            "text": "concepts",
            "marker": "unknown",
            "word": "concepts",
            "range": {
              "start": 13,
              "end": 20
            },
            "dead": true,
            "types": [
              "unknown"
            ],
            "level": 0,
            "concept": true
          },
          "dead": true,
          "level": 2,
          "context_index": 1,
          "topLevel": true,
          "context_id": 2,
          "touchedBy": [
            "formulas#call2"
          ]
        }
      ],
      "generated": [
        ""
      ],
      "paraphrases": [
        "formulas are concepts"
      ],
      "paraphrasesParenthesized": [],
      "generatedParenthesized": [],
      "responses": [
        ""
      ],
      "associations": [
        [
          [
            "is",
            0
          ],
          [
            "unknown",
            0
          ]
        ]
      ],
      "summaries": [
        {
          "summaries": [
            {
              "operators": [
                {
                  "marker": [
                    "unknown",
                    0
                  ],
                  "range": {
                    "start": 0,
                    "end": 7
                  }
                },
                {
                  "marker": [
                    "is",
                    0
                  ],
                  "range": {
                    "start": 9,
                    "end": 11
                  }
                },
                {
                  "marker": [
                    "unknown",
                    0
                  ],
                  "range": {
                    "start": 13,
                    "end": 20
                  }
                }
              ],
              "counter": 1
            },
            {
              "operators": [
                {
                  "marker": [
                    "unknown",
                    0
                  ],
                  "range": {
                    "start": 0,
                    "end": 7
                  }
                },
                {
                  "marker": [
                    "is",
                    0
                  ],
                  "range": {
                    "start": 9,
                    "end": 11
                  }
                },
                {
                  "marker": [
                    "unknown",
                    0
                  ],
                  "range": {
                    "start": 13,
                    "end": 20
                  }
                }
              ],
              "counter": 2
            },
            {
              "operators": [
                {
                  "marker": [
                    "unknown",
                    0
                  ],
                  "range": {
                    "start": 0,
                    "end": 7
                  }
                },
                {
                  "marker": [
                    "is",
                    0
                  ],
                  "range": {
                    "start": 9,
                    "end": 11
                  }
                },
                {
                  "marker": [
                    "unknown",
                    0
                  ],
                  "range": {
                    "start": 13,
                    "end": 20
                  }
                }
              ],
              "counter": 3
            },
            {
              "operators": [
                {
                  "marker": [
                    "is",
                    1
                  ],
                  "range": {
                    "start": 0,
                    "end": 20
                  }
                }
              ],
              "counter": 4
            },
            {
              "operators": [
                {
                  "marker": [
                    "is",
                    2
                  ],
                  "range": {
                    "start": 0,
                    "end": 20
                  }
                }
              ],
              "counter": 5
            }
          ],
          "length": 1
        }
      ],
      "learned_contextual_priorities": [],
      "rtf_associations": [],
      "query": "formulas are concepts",
      "key": {
        "query": "formulas are concepts"
      }
    },
    {
      "extraConfig": true,
      "name": "formulas",
      "operators": [
        "([formula])",
        "([solve] (equals/1) ([forVariable|for]) (variable))",
        "(([formula]) [formulaForVariable|] ([forVariable|]) (variable))",
        "([calculate] ([expression]))",
        "(([expression]) [equals] ([expression]))"
      ],
      "priorities": [
        {
          "context": [
            [
              "mathematical_operator",
              0
            ],
            [
              "number",
              0
            ]
          ],
          "choose": [
            0
          ]
        }
      ],
      "semantics": [
        {
          "where": "/home/dev/code/theprogrammablemind/kms/common/formulas.js:109"
        }
      ],
      "bridges": [
        {
          "where": "/home/dev/code/theprogrammablemind/kms/common/formulas.js:120",
          "id": "formulaForVariable",
          "isA": [
            "preposition",
            "queryable"
          ],
          "convolution": true,
          "bridge": "{ number: before[0].number, ...next(operator), what: before[0], equality: after[0], variable: after[1] }"
        },
        {
          "where": "/home/dev/code/theprogrammablemind/kms/common/formulas.js:132",
          "id": "solve",
          "bridge": "{ ...next(operator), equality: after[0], variable: after[2] }"
        },
        {
          "id": "forVariable",
          "isA": [
            "preposition"
          ]
        },
        {
          "id": "formula"
        },
        {
          "id": "expression",
          "children": [
            "mathematicalExpression",
            "number"
          ],
          "before": [
            "verb"
          ]
        },
        {
          "where": "/home/dev/code/theprogrammablemind/kms/common/formulas.js:159",
          "id": "calculate",
          "isA": [
            "verb"
          ],
          "bridge": "{ ...next(operator), expression: after[0] }",
          "localHierarchy": [
            [
              "unknown",
              "expression"
            ]
          ]
        },
        {
          "where": "/home/dev/code/theprogrammablemind/kms/common/formulas.js:171",
          "id": "equals",
          "bridge": "{ ...next(operator), left: before[0], right: after[0] }",
          "words": [
            "="
          ],
          "after": [
            "mathematical_operator"
          ],
          "localHierarchy": [
            [
              "unknown",
              "expression"
            ]
          ]
        }
      ]
    }
  ],
  "fragments": [],
  "semantics": [],
  "associations": [
    [
      [
        "is",
        0
      ],
      [
        "unknown",
        0
      ]
    ]
  ],
  "summaries": [
    {
      "summaries": [
        {
          "operators": [
            {
              "marker": [
                "unknown",
                0
              ],
              "range": {
                "start": 0,
                "end": 7
              }
            },
            {
              "marker": [
                "is",
                0
              ],
              "range": {
                "start": 9,
                "end": 11
              }
            },
            {
              "marker": [
                "unknown",
                0
              ],
              "range": {
                "start": 13,
                "end": 20
              }
            }
          ],
          "counter": 1
        },
        {
          "operators": [
            {
              "marker": [
                "unknown",
                0
              ],
              "range": {
                "start": 0,
                "end": 7
              }
            },
            {
              "marker": [
                "is",
                0
              ],
              "range": {
                "start": 9,
                "end": 11
              }
            },
            {
              "marker": [
                "unknown",
                0
              ],
              "range": {
                "start": 13,
                "end": 20
              }
            }
          ],
          "counter": 2
        },
        {
          "operators": [
            {
              "marker": [
                "unknown",
                0
              ],
              "range": {
                "start": 0,
                "end": 7
              }
            },
            {
              "marker": [
                "is",
                0
              ],
              "range": {
                "start": 9,
                "end": 11
              }
            },
            {
              "marker": [
                "unknown",
                0
              ],
              "range": {
                "start": 13,
                "end": 20
              }
            }
          ],
          "counter": 3
        },
        {
          "operators": [
            {
              "marker": [
                "is",
                1
              ],
              "range": {
                "start": 0,
                "end": 20
              }
            }
          ],
          "counter": 4
        },
        {
          "operators": [
            {
              "marker": [
                "is",
                2
              ],
              "range": {
                "start": 0,
                "end": 20
              }
            }
          ],
          "counter": 5
        }
      ],
      "length": 1
    }
  ],
  "learned_contextual_priorities": []
}