ekms 9.5.1-beta.5 → 9.5.1-beta.7
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/animals.instance.json +21 -61
- package/common/asking.js +102 -100
- package/common/can.instance.json +17 -0
- package/common/can.js +188 -0
- package/common/characters.js +3 -3
- package/common/colors.instance.json +38 -10
- package/common/comparable.instance.json +2 -2
- package/common/concept.test.json +54 -40
- package/common/conjunction.js +13 -5
- package/common/crew.instance.json +26 -26
- package/common/crew.js +1 -1
- package/common/currency.js +1 -1
- package/common/dates.instance.json +87 -3
- package/common/dialogues.js +11 -8
- package/common/dimension.instance.json +1 -1
- package/common/edible.instance.json +79 -95
- package/common/emotions.instance.json +6 -10
- package/common/emotions.js +1 -1
- package/common/english_helpers.js +277 -67
- package/common/fastfood.instance.json +235 -807
- package/common/fastfood.js +4 -4
- package/common/formulas.instance.json +1 -1
- package/common/gdefaults.js +41 -9
- package/common/help.js +2 -2
- package/common/helpers/concept.js +1 -1
- package/common/helpers/conjunction.js +54 -44
- package/common/helpers/dateTimeSelectors.js +2 -2
- package/common/helpers/dialogues.js +1 -1
- package/common/helpers/formulas.js +13 -11
- package/common/helpers/menus.js +12 -12
- package/common/helpers/meta.js +8 -8
- package/common/helpers/properties.js +76 -15
- package/common/helpers.js +82 -46
- package/common/hierarchy.js +3 -3
- package/common/kirk.instance.json +1 -1
- package/common/length.instance.json +2 -2
- package/common/math.instance.json +20 -20
- package/common/math.js +45 -44
- package/common/menus.instance.json +3 -3
- package/common/menus.js +1 -1
- package/common/meta.js +49 -33
- package/common/ordering.instance.json +16 -28
- package/common/ordering.js +1 -1
- package/common/ordering.test.json +354 -296
- package/common/people.instance.json +36 -47
- package/common/people.js +1 -1
- package/common/people.test.json +952 -681
- package/common/pipboy.instance.json +72 -16
- package/common/pokemon.instance.json +8 -8
- package/common/pokemon.js +1 -1
- package/common/pressure.instance.json +2 -2
- package/common/properties.instance.json +1 -1
- package/common/properties.js +16 -3
- package/common/reminders.js +1 -1
- package/common/reports.instance.json +3 -3
- package/common/reports.js +18 -16
- package/common/scorekeeper.js +4 -4
- package/common/sdefaults.js +22 -2
- package/common/spock.instance.json +1 -1
- package/common/stgame.js +1 -1
- package/common/stm.js +2 -2
- package/common/tell.js +1 -1
- package/common/temperature.instance.json +2 -2
- package/common/tester.js +3 -3
- package/common/time.js +3 -3
- package/common/tokenize.js +1 -1
- package/common/weight.instance.json +2 -2
- package/common/wp.instance.json +62 -6
- package/common/wp.js +4 -4
- package/package.json +4 -2
|
@@ -1048,7 +1048,7 @@
|
|
|
1048
1048
|
}
|
|
1049
1049
|
]
|
|
1050
1050
|
},
|
|
1051
|
-
"trace": "\n\n>>>>>>>>>>>>> Counter 1\n summary\n\n 0. price/0 - \"price\"\n 1. list/0 - \"and\"\n 2. quantity/0 - \"quantity\"\n 3. is/0 - \"are\"\n 4. property/0 (dead) - \"properties\"\n\n details\n\n 0. Operator(price/0, [\"Selector(Bridge('{ ...next(operator) }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator) }')), variables({}) bridge(bridge)) (1, 0) - \"price\"\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 1. Operator(list/0, PASS, ['Selector(Bridge(\\'{ ...next(operator), listable: true, isList: true, value: append(before, after) }\\'), , same/(), [And([\"ListableType(Listable(Type(variable: \\'type\\')))\", \\'Listable(Unify(context.instance, variables.instance))\\'])]<==>[And([\"ListableType(Listable(Type(variable: \\'type\\')))\", \\'Listable(Unify(context.instance, variables.instance))\\'])], bridge(bridge))'], evaluator(Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')), variables({}) bridge(bridge)) (1, 5) - \"and\"\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n ]\n Evaluator:\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n 2. Operator(quantity/0, [\"Selector(Bridge('{ ...next(operator) }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator) }')), variables({}) bridge(bridge)) (1, 8) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n 3. Operator(is/0, [\"Selector(Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }'), , [ListableType(Listable(Type('queryable')))]<==>[ListableType(Listable(Type('queryable')))], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')), variables({}) bridge(bridge)) (1, 12) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 4. Operator(property/0, ['Selector(None, , []<==>[], bridge(bridge))'], evaluator(None), variables({}) bridge(bridge)) (1, 18) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=0) is ('price', 0)\n Context:\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n\n>>>>>>>>>>>>> Counter 2\n summary\n\n *0. price/1 (dead) - \"price\"\n 1. list/0 - \"and\"\n 2. quantity/0 - \"quantity\"\n 3. is/0 - \"are\"\n 4. property/0 (dead) - \"properties\"\n\n details\n\n 0. Operator(price/1, ['Selector(None, , []<==>[], bridge(bridge))'], evaluator(None), variables({}) bridge(bridge)) (2, 0) - \"price\"\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 1. Operator(list/0, PASS, ['Selector(Bridge(\\'{ ...next(operator), listable: true, isList: true, value: append(before, after) }\\'), , same/(), [And([\"ListableType(Listable(Type(variable: \\'type\\')))\", \\'Listable(Unify(context.instance, variables.instance))\\'])]<==>[And([\"ListableType(Listable(Type(variable: \\'type\\')))\", \\'Listable(Unify(context.instance, variables.instance))\\'])], bridge(bridge))'], evaluator(Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')), variables({}) bridge(bridge)) (1, 5) - \"and\"\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n ]\n Evaluator:\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n 2. Operator(quantity/0, [\"Selector(Bridge('{ ...next(operator) }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator) }')), variables({}) bridge(bridge)) (1, 8) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n 3. Operator(is/0, [\"Selector(Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }'), , [ListableType(Listable(Type('queryable')))]<==>[ListableType(Listable(Type('queryable')))], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')), variables({}) bridge(bridge)) (1, 12) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 4. Operator(property/0, ['Selector(None, , []<==>[], bridge(bridge))'], evaluator(None), variables({}) bridge(bridge)) (1, 18) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=1) is ('list', 0)\n Context:\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n ]\n Evaluator:\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n\n\n>>>>>>>>>>>>> Counter 3\n summary\n\n *0. list/1 - \"price and quantity\"\n 1. is/0 - \"are\"\n 2. property/0 (dead) - \"properties\"\n\n details\n\n 0. Operator(list/1, PASS, ['Selector(Bridge(\\'{ ...operator, value: append(before, operator.value) }\\'), , same/(), [And([\"ListableType(Listable(Type(variable: \\'type\\')))\", \\'Listable(Unify(context.instance, variables.instance))\\'])]<==>[], bridge(bridge), passthrough)'], evaluator(Bridge('{ ...operator, value: append(before, operator.value) }')), variables({'found_types': ['quantity', 'price'], 'type': ['quantifier', 'quantity', 'listable', 'number', 'queryable', 'theAble', 'property', 'comparable']}) bridge(bridge)) (3, 0) - \"price and quantity\"\n {\n prioritized_by: [('list', 0)]\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n found_types: ['quantity', 'price']\n type: ['quantifier', 'quantity', 'listable', 'number', 'queryable', 'theAble', 'property', 'comparable']\n\n range: {'start': 0, 'end': 17}\n text: \"price and quantity\"\n types: [\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n 1. Operator(is/0, [\"Selector(Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }'), , [ListableType(Listable(Type('queryable')))]<==>[ListableType(Listable(Type('queryable')))], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')), variables({}) bridge(bridge)) (1, 12) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 2. Operator(property/0, ['Selector(None, , []<==>[], bridge(bridge))'], evaluator(None), variables({}) bridge(bridge)) (1, 18) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=1) is ('is', 0)\n Context:\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n\n\n>>>>>>>>>>>>> Counter 4\n summary\n\n *0. is/1 - \"price and quantity are properties\"\n\n details\n\n 0. Operator(is/1, [\"Selector(Bridge('{ ...next(operator) }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator) }')), variables({'found_types': []}) bridge(bridge)) (4, 0) - \"price and quantity are properties\"\n {\n prioritized_by: [('is', 0)]\n marker: \n Operator(is/1)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n Variables:\n found_types: []\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n found_types: ['quantity', 'price']\n type: ['quantifier', 'quantity', 'listable', 'number', 'queryable', 'theAble', 'property', 'comparable']\n\n number: \"many\"\n range: {'start': 0, 'end': 32}\n text: \"price and quantity\"\n types: [\n 'price'\n, 'quantity'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n<<<<<<<<<<<<<\nNext Op (index=0) is ('is', 1)\n Context:\n {\n prioritized_by: [('is', 0)]\n marker: \n Operator(is/1)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n Variables:\n found_types: []\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n found_types: ['quantity', 'price']\n type: ['quantifier', 'quantity', 'listable', 'number', 'queryable', 'theAble', 'property', 'comparable']\n\n number: \"many\"\n range: {'start': 0, 'end': 32}\n text: \"price and quantity\"\n types: [\n 'price'\n, 'quantity'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n\n\n>>>>>>>>>>>>> Counter 5\n summary\n\n *0. is/2 (dead) - \"price and quantity are properties\"\n\n details\n\n 0. Operator(is/2, ['Selector(None, , []<==>[], bridge(bridge))'], evaluator(None), variables({}) bridge(bridge)) (5, 0) - \"price and quantity are properties\"\n {\n prioritized_by: [('is', 1)]\n dead: true\n marker: \n Operator(is/2)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n found_types: ['quantity', 'price']\n type: ['quantifier', 'quantity', 'listable', 'number', 'queryable', 'theAble', 'property', 'comparable']\n\n number: \"many\"\n range: {'start': 0, 'end': 32}\n text: \"price and quantity\"\n types: [\n 'price'\n, 'quantity'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n<<<<<<<<<<<<<\n",
|
|
1051
|
+
"trace": "\n\n>>>>>>>>>>>>> Counter 1\n summary\n\n 0. price/0 (1, 1) - \"price\"\n 1. list/0 (1, 6) - \"and\"\n 2. quantity/0 (1, 9) - \"quantity\"\n 3. is/0 (1, 13) - \"are\"\n 4. property/0 (dead) (1, 19) - \"properties\"\n\n details\n\n 0. price/0 (1, 1) - \"price\"\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 1. list/0 (1, 6) - \"and\"\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), listable: true, isList: true, value: append(before, after) }\")\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), listable: true, isList: true, value: append(before, after) }\")\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n 2. quantity/0 (1, 9) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n 3. is/0 (1, 13) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }\")\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }\")\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 4. property/0 (dead) (1, 19) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=0) is ('price', 0)\n Context:\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n\n>>>>>>>>>>>>> Counter 2\n summary\n\n *0. price/1 (dead) (2, 0) - \"price\"\n 1. list/0 (1, 6) - \"and\"\n 2. quantity/0 (1, 9) - \"quantity\"\n 3. is/0 (1, 13) - \"are\"\n 4. property/0 (dead) (1, 19) - \"properties\"\n\n details\n\n *0. price/1 (dead) (2, 0) - \"price\"\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 1. list/0 (1, 6) - \"and\"\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), listable: true, isList: true, value: append(before, after) }\")\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), listable: true, isList: true, value: append(before, after) }\")\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n 2. quantity/0 (1, 9) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n 3. is/0 (1, 13) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }\")\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }\")\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 4. property/0 (dead) (1, 19) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=1) is ('list', 0)\n Context:\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), listable: true, isList: true, value: append(before, after) }\")\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), listable: true, isList: true, value: append(before, after) }\")\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n\n\n>>>>>>>>>>>>> Counter 3\n summary\n\n *0. list/1 (3, 0) - \"price and quantity\"\n 1. is/0 (1, 13) - \"are\"\n 2. property/0 (dead) (1, 19) - \"properties\"\n\n details\n\n *0. list/1 (3, 0) - \"price and quantity\"\n {\n prioritized_by: [('list', 0)]\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge(\"{ ...operator, value: append(before, operator.value) }\")\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, value: append(before, operator.value) }\")\n Variables:\n found_types: ['quantity', 'price']\n type: ['listable', 'quantifier', 'queryable', 'comparable', 'quantity', 'property', 'theAble', 'number']\n\n range: {'start': 0, 'end': 17}\n text: \"price and quantity\"\n types: [\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n 1. is/0 (1, 13) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }\")\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }\")\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 2. property/0 (dead) (1, 19) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=1) is ('is', 0)\n Context:\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }\")\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }\")\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n\n\n>>>>>>>>>>>>> Counter 4\n summary\n\n *0. is/1 (4, 0) - \"price and quantity are properties\"\n\n details\n\n *0. is/1 (4, 0) - \"price and quantity are properties\"\n {\n prioritized_by: [('is', 0)]\n marker: \n Operator(is/1)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n Variables:\n found_types: []\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge(\"{ ...operator, value: append(before, operator.value) }\")\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, value: append(before, operator.value) }\")\n Variables:\n found_types: ['quantity', 'price']\n type: ['listable', 'quantifier', 'queryable', 'comparable', 'quantity', 'property', 'theAble', 'number']\n\n number: \"many\"\n range: {'start': 0, 'end': 17}\n text: \"price and quantity\"\n types: [\n 'price'\n, 'quantity'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n<<<<<<<<<<<<<\nNext Op (index=0) is ('is', 1)\n Context:\n {\n prioritized_by: [('is', 0)]\n marker: \n Operator(is/1)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n Variables:\n found_types: []\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge(\"{ ...operator, value: append(before, operator.value) }\")\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, value: append(before, operator.value) }\")\n Variables:\n found_types: ['quantity', 'price']\n type: ['listable', 'quantifier', 'queryable', 'comparable', 'quantity', 'property', 'theAble', 'number']\n\n number: \"many\"\n range: {'start': 0, 'end': 17}\n text: \"price and quantity\"\n types: [\n 'price'\n, 'quantity'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n\n\n>>>>>>>>>>>>> Counter 5\n summary\n\n *0. is/2 (dead) (5, 0) - \"price and quantity are properties\"\n\n details\n\n *0. is/2 (dead) (5, 0) - \"price and quantity are properties\"\n {\n prioritized_by: [('is', 1)]\n dead: true\n marker: \n Operator(is/2)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge(\"{ ...operator, value: append(before, operator.value) }\")\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", 'Listable(Unify(context.instance, variables.instance))'])]\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, value: append(before, operator.value) }\")\n Variables:\n found_types: ['quantity', 'price']\n type: ['listable', 'quantifier', 'queryable', 'comparable', 'quantity', 'property', 'theAble', 'number']\n\n number: \"many\"\n range: {'start': 0, 'end': 17}\n text: \"price and quantity\"\n types: [\n 'price'\n, 'quantity'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n<<<<<<<<<<<<<\n",
|
|
1052
1052
|
"contexts": [
|
|
1053
1053
|
{
|
|
1054
1054
|
"number": "many",
|
|
@@ -1067,7 +1067,7 @@
|
|
|
1067
1067
|
"text": "price and quantity",
|
|
1068
1068
|
"range": {
|
|
1069
1069
|
"start": 0,
|
|
1070
|
-
"end":
|
|
1070
|
+
"end": 17
|
|
1071
1071
|
},
|
|
1072
1072
|
"types": [
|
|
1073
1073
|
"list",
|
|
@@ -2464,7 +2464,7 @@
|
|
|
2464
2464
|
}
|
|
2465
2465
|
]
|
|
2466
2466
|
},
|
|
2467
|
-
"trace": "\n\n>>>>>>>>>>>>> Counter 1\n summary\n\n 0. unknown/0 - \"worth\"\n 1. means/0 - \"means\"\n 2. price/0 - \"price\"\n 3. timesOperator/0 - \"times\"\n 4. quantity/0 - \"quantity\"\n\n details\n\n 0. Operator(unknown/0, [\"Selector(Bridge('{ ...operator, unknown: true, dead: true }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...operator, unknown: true, dead: true }')), variables({}) bridge(bridge)) (1, 0) - \"worth\"\n {\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge('{ ...operator, unknown: true, dead: true }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, unknown: true, dead: true }')\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n 1. Operator(means/0, [\"Selector(Bridge('{ ...next(operator), from: before[0], to: after[0] }'), , [Any]<==>[Any], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), from: before[0], to: after[0] }')), variables({}) bridge(bridge)) (1, 2) - \"means\"\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n 2. Operator(price/0, [\"Selector(Bridge('{ ...next(operator) }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator) }')), variables({}) bridge(bridge)) (1, 5) - \"price\"\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 3. Operator(timesOperator/0, [\"Selector(Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }'), , [ListableType(Listable(Type('number')))]<==>[ListableType(Listable(Type('number')))], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')), variables({}) bridge(bridge)) (1, 8) - \"times\"\n {\n marker: \n Operator(timesOperator/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')\n Left Selector: [ListableType(Listable(Type('number')))]\n Right Selector: [ListableType(Listable(Type('number')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')\n\n range: {'start': 18, 'end': 22}\n text: \"times\"\n value: \"timesOperator\"\n word: \"times\"\n }\n 4. Operator(quantity/0, [\"Selector(Bridge('{ ...next(operator) }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator) }')), variables({}) bridge(bridge)) (1, 11) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n<<<<<<<<<<<<<\nNext Op (index=0) is ('unknown', 0)\n Context:\n {\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge('{ ...operator, unknown: true, dead: true }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, unknown: true, dead: true }')\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n\n\n>>>>>>>>>>>>> Counter 2\n summary\n\n *0. unknown/0 (dead) - \"worth\"\n 1. means/0 - \"means\"\n 2. price/0 - \"price\"\n 3. timesOperator/0 - \"times\"\n 4. quantity/0 - \"quantity\"\n\n details\n\n 0. Operator(unknown/0, [\"Selector(Bridge('{ ...operator, unknown: true, dead: true }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...operator, unknown: true, dead: true }')), variables({}) bridge(bridge)) (2, 0) - \"worth\"\n {\n prioritized_by: [('unknown', 0)]\n dead: true\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge('{ ...operator, unknown: true, dead: true }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, unknown: true, dead: true }')\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n 1. Operator(means/0, [\"Selector(Bridge('{ ...next(operator), from: before[0], to: after[0] }'), , [Any]<==>[Any], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), from: before[0], to: after[0] }')), variables({}) bridge(bridge)) (1, 2) - \"means\"\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n 2. Operator(price/0, [\"Selector(Bridge('{ ...next(operator) }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator) }')), variables({}) bridge(bridge)) (1, 5) - \"price\"\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 3. Operator(timesOperator/0, [\"Selector(Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }'), , [ListableType(Listable(Type('number')))]<==>[ListableType(Listable(Type('number')))], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')), variables({}) bridge(bridge)) (1, 8) - \"times\"\n {\n marker: \n Operator(timesOperator/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')\n Left Selector: [ListableType(Listable(Type('number')))]\n Right Selector: [ListableType(Listable(Type('number')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')\n\n range: {'start': 18, 'end': 22}\n text: \"times\"\n value: \"timesOperator\"\n word: \"times\"\n }\n 4. Operator(quantity/0, [\"Selector(Bridge('{ ...next(operator) }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator) }')), variables({}) bridge(bridge)) (1, 11) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n<<<<<<<<<<<<<\nNext Op (index=2) is ('price', 0)\n Context:\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n\n>>>>>>>>>>>>> Counter 3\n summary\n\n 0. unknown/0 (dead) - \"worth\"\n 1. means/0 - \"means\"\n *2. price/1 (dead) - \"price\"\n 3. timesOperator/0 - \"times\"\n 4. quantity/0 - \"quantity\"\n\n details\n\n 0. Operator(unknown/0, [\"Selector(Bridge('{ ...operator, unknown: true, dead: true }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...operator, unknown: true, dead: true }')), variables({}) bridge(bridge)) (2, 0) - \"worth\"\n {\n prioritized_by: [('unknown', 0)]\n dead: true\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge('{ ...operator, unknown: true, dead: true }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, unknown: true, dead: true }')\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n 1. Operator(means/0, [\"Selector(Bridge('{ ...next(operator), from: before[0], to: after[0] }'), , [Any]<==>[Any], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), from: before[0], to: after[0] }')), variables({}) bridge(bridge)) (1, 2) - \"means\"\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n 2. Operator(price/1, ['Selector(None, , []<==>[], bridge(bridge))'], evaluator(None), variables({}) bridge(bridge)) (2, 1) - \"price\"\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 3. Operator(timesOperator/0, [\"Selector(Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }'), , [ListableType(Listable(Type('number')))]<==>[ListableType(Listable(Type('number')))], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')), variables({}) bridge(bridge)) (1, 8) - \"times\"\n {\n marker: \n Operator(timesOperator/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')\n Left Selector: [ListableType(Listable(Type('number')))]\n Right Selector: [ListableType(Listable(Type('number')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')\n\n range: {'start': 18, 'end': 22}\n text: \"times\"\n value: \"timesOperator\"\n word: \"times\"\n }\n 4. Operator(quantity/0, [\"Selector(Bridge('{ ...next(operator) }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator) }')), variables({}) bridge(bridge)) (1, 11) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n<<<<<<<<<<<<<\nNext Op (index=4) is ('quantity', 0)\n Context:\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n\n\n>>>>>>>>>>>>> Counter 4\n summary\n\n 0. unknown/0 (dead) - \"worth\"\n 1. means/0 - \"means\"\n 2. price/1 (dead) - \"price\"\n 3. timesOperator/0 - \"times\"\n *4. quantity/1 (dead) - \"quantity\"\n\n details\n\n 0. Operator(unknown/0, [\"Selector(Bridge('{ ...operator, unknown: true, dead: true }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...operator, unknown: true, dead: true }')), variables({}) bridge(bridge)) (2, 0) - \"worth\"\n {\n prioritized_by: [('unknown', 0)]\n dead: true\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge('{ ...operator, unknown: true, dead: true }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, unknown: true, dead: true }')\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n 1. Operator(means/0, [\"Selector(Bridge('{ ...next(operator), from: before[0], to: after[0] }'), , [Any]<==>[Any], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), from: before[0], to: after[0] }')), variables({}) bridge(bridge)) (1, 2) - \"means\"\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n 2. Operator(price/1, ['Selector(None, , []<==>[], bridge(bridge))'], evaluator(None), variables({}) bridge(bridge)) (2, 1) - \"price\"\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 3. Operator(timesOperator/0, [\"Selector(Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }'), , [ListableType(Listable(Type('number')))]<==>[ListableType(Listable(Type('number')))], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')), variables({}) bridge(bridge)) (1, 8) - \"times\"\n {\n marker: \n Operator(timesOperator/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')\n Left Selector: [ListableType(Listable(Type('number')))]\n Right Selector: [ListableType(Listable(Type('number')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')\n\n range: {'start': 18, 'end': 22}\n text: \"times\"\n value: \"timesOperator\"\n word: \"times\"\n }\n 4. Operator(quantity/1, ['Selector(None, , []<==>[], bridge(bridge))'], evaluator(None), variables({}) bridge(bridge)) (2, 2) - \"quantity\"\n {\n prioritized_by: [('quantity', 0)]\n dead: true\n default: true\n marker: \n Operator(quantity/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n<<<<<<<<<<<<<\nNext Op (index=3) is ('timesOperator', 0)\n Context:\n {\n marker: \n Operator(timesOperator/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), val\n null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')\n Left Selector: [ListableType(Listable(Type('number')))]\n Right Selector: [ListableType(Listable(Type('number')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value:\n null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }')\n\n range: {'start': 18, 'end': 22}\n text: \"times\"\n value: \"timesOperator\"\n word: \"times\"\n }\n\n\n>>>>>>>>>>>>> Counter 5\n summary\n\n 0. unknown/0 (dead) - \"worth\"\n 1. means/0 - \"means\"\n *2. timesExpression/1 (dead) - \"price times quantity\"\n\n details\n\n 0. Operator(unknown/0, [\"Selector(Bridge('{ ...operator, unknown: true, dead: true }'), , []<==>[], bridge(bridge))\"], evaluator(Bridge('{ ...operator, unknown: true, dead: true }')), variables({}) bridge(bridge)) (2, 0) - \"worth\"\n {\n prioritized_by: [('unknown', 0)]\n dead: true\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge('{ ...operator, unknown: true, dead: true }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, unknown: true, dead: true }')\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n 1. Operator(means/0, [\"Selector(Bridge('{ ...next(operator), from: before[0], to: after[0] }'), , [Any]<==>[Any], bridge(bridge))\"], evaluator(Bridge('{ ...next(operator), from: before[0], to: after[0] }')), variables({}) bridge(bridge)) (1, 2) - \"means\"\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n 2. Operator(timesExpression/1, ['Selector(None, , []<==>[], bridge(bridge))'], evaluator(None), variables({}) bridge(bridge)) (3, 0) - \"price times quantity\"\n {\n prioritized_by: [('timesOperator', 0)]\n dead: true\n evaluate: true\n isResponse: true\n marker: \n Operator(timesExpression/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n number: \"one\"\n range: {'start': 12, 'end': 31}\n text: \"price times quantity\"\n types: [\n 'number'\n, 'property'\n ]\n value: None\n word: \"times\"\n x: \n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n types: [\n 'price'\n ]\n value: \"price\"\n word: \"price\"\n }\n\n y: \n {\n prioritized_by: [('quantity', 0)]\n dead: true\n default: true\n marker: \n Operator(quantity/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n types: [\n 'quantity'\n ]\n value: \"quantity\"\n word: \"quantity\"\n }\n\n }\n<<<<<<<<<<<<<\nNext Op (index=1) is ('means', 0)\n Context:\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge('{ ...next(operator), from: before[0], to: after[0] }')\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n\n\n>>>>>>>>>>>>> Counter 6\n summary\n\n *0. means/1 (dead) - \"worth means price times quantity\"\n\n details\n\n 0. Operator(means/1, ['Selector(None, , [Any]<==>[Any], bridge(bridge))'], evaluator(None), variables({}) bridge(bridge)) (4, 0) - \"worth means price times quantity\"\n {\n prioritized_by: [('means', 0)]\n dead: true\n default: true\n from: \n {\n prioritized_by: [('unknown', 0)]\n dead: true\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge('{ ...operator, unknown: true, dead: true }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, unknown: true, dead: true }')\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n\n marker: \n Operator(means/1)\n Selectors:\n [\n Selector\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n\n range: {'start': 0, 'end': 31}\n text: \"worth means price times quantity\"\n to: \n {\n prioritized_by: [('timesOperator', 0)]\n dead: true\n evaluate: true\n isResponse: true\n marker: \n Operator(timesExpression/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n number: \"one\"\n range: {'start': 12, 'end': 31}\n text: \"price times quantity\"\n types: [\n 'number'\n, 'property'\n ]\n value: None\n word: \"times\"\n x: \n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n types: [\n 'price'\n ]\n value: \"price\"\n word: \"price\"\n }\n\n y: \n {\n prioritized_by: [('quantity', 0)]\n dead: true\n default: true\n marker: \n Operator(quantity/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n types: [\n 'quantity'\n ]\n value: \"quantity\"\n word: \"quantity\"\n }\n\n }\n\n value: \"means\"\n word: \"means\"\n }\n<<<<<<<<<<<<<\n",
|
|
2467
|
+
"trace": "\n\n>>>>>>>>>>>>> Counter 1\n summary\n\n 0. unknown/0 (1, 0) - \"worth\"\n 1. means/0 (1, 3) - \"means\"\n 2. price/0 (1, 6) - \"price\"\n 3. timesOperator/0 (1, 8) - \"times\"\n 4. quantity/0 (1, 12) - \"quantity\"\n\n details\n\n 0. unknown/0 (1, 0) - \"worth\"\n {\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n 1. means/0 (1, 3) - \"means\"\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n 2. price/0 (1, 6) - \"price\"\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 3. timesOperator/0 (1, 8) - \"times\"\n {\n marker: \n Operator(timesOperator/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }\")\n Left Selector: [ListableType(Listable(Type('number')))]\n Right Selector: [ListableType(Listable(Type('number')))]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }\")\n\n range: {'start': 18, 'end': 22}\n text: \"times\"\n value: \"timesOperator\"\n word: \"times\"\n }\n 4. quantity/0 (1, 12) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n<<<<<<<<<<<<<\nNext Op (index=0) is ('unknown', 0)\n Context:\n {\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n\n\n>>>>>>>>>>>>> Counter 2\n summary\n\n *0. unknown/0 (dead) (2, 0) - \"worth\"\n 1. means/0 (1, 3) - \"means\"\n 2. price/0 (1, 6) - \"price\"\n 3. timesOperator/0 (1, 8) - \"times\"\n 4. quantity/0 (1, 12) - \"quantity\"\n\n details\n\n *0. unknown/0 (dead) (2, 0) - \"worth\"\n {\n prioritized_by: [('unknown', 0)]\n dead: true\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n 1. means/0 (1, 3) - \"means\"\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n 2. price/0 (1, 6) - \"price\"\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 3. timesOperator/0 (1, 8) - \"times\"\n {\n marker: \n Operator(timesOperator/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }\")\n Left Selector: [ListableType(Listable(Type('number')))]\n Right Selector: [ListableType(Listable(Type('number')))]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }\")\n\n range: {'start': 18, 'end': 22}\n text: \"times\"\n value: \"timesOperator\"\n word: \"times\"\n }\n 4. quantity/0 (1, 12) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n<<<<<<<<<<<<<\nNext Op (index=2) is ('price', 0)\n Context:\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n\n>>>>>>>>>>>>> Counter 3\n summary\n\n 0. unknown/0 (dead) (2, 0) - \"worth\"\n 1. means/0 (1, 3) - \"means\"\n *2. price/1 (dead) (2, 1) - \"price\"\n 3. timesOperator/0 (1, 8) - \"times\"\n 4. quantity/0 (1, 12) - \"quantity\"\n\n details\n\n 0. unknown/0 (dead) (2, 0) - \"worth\"\n {\n prioritized_by: [('unknown', 0)]\n dead: true\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n 1. means/0 (1, 3) - \"means\"\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n *2. price/1 (dead) (2, 1) - \"price\"\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 3. timesOperator/0 (1, 8) - \"times\"\n {\n marker: \n Operator(timesOperator/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }\")\n Left Selector: [ListableType(Listable(Type('number')))]\n Right Selector: [ListableType(Listable(Type('number')))]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }\")\n\n range: {'start': 18, 'end': 22}\n text: \"times\"\n value: \"timesOperator\"\n word: \"times\"\n }\n 4. quantity/0 (1, 12) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n<<<<<<<<<<<<<\nNext Op (index=4) is ('quantity', 0)\n Context:\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator) }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...next(operator) }\")\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n\n\n>>>>>>>>>>>>> Counter 4\n summary\n\n 0. unknown/0 (dead) (2, 0) - \"worth\"\n 1. means/0 (1, 3) - \"means\"\n 2. price/1 (dead) (2, 1) - \"price\"\n 3. timesOperator/0 (1, 8) - \"times\"\n *4. quantity/1 (dead) (2, 2) - \"quantity\"\n\n details\n\n 0. unknown/0 (dead) (2, 0) - \"worth\"\n {\n prioritized_by: [('unknown', 0)]\n dead: true\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n 1. means/0 (1, 3) - \"means\"\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n 2. price/1 (dead) (2, 1) - \"price\"\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 3. timesOperator/0 (1, 8) - \"times\"\n {\n marker: \n Operator(timesOperator/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }\")\n Left Selector: [ListableType(Listable(Type('number')))]\n Right Selector: [ListableType(Listable(Type('number')))]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value: null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }\")\n\n range: {'start': 18, 'end': 22}\n text: \"times\"\n value: \"timesOperator\"\n word: \"times\"\n }\n *4. quantity/1 (dead) (2, 2) - \"quantity\"\n {\n prioritized_by: [('quantity', 0)]\n dead: true\n default: true\n marker: \n Operator(quantity/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n<<<<<<<<<<<<<\nNext Op (index=3) is ('timesOperator', 0)\n Context:\n {\n marker: \n Operator(timesOperator/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), val\n null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }\")\n Left Selector: [ListableType(Listable(Type('number')))]\n Right Selector: [ListableType(Listable(Type('number')))]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), marker: next(operator('timesExpression')), types: lub(append(['mathematicalExpression'], operator.types, before[0].types, after[0].types)), value:\n null, x: before[0], y: after[0], number: 'one', isResponse: true, evaluate: true }\")\n\n range: {'start': 18, 'end': 22}\n text: \"times\"\n value: \"timesOperator\"\n word: \"times\"\n }\n\n\n>>>>>>>>>>>>> Counter 5\n summary\n\n 0. unknown/0 (dead) (2, 0) - \"worth\"\n 1. means/0 (1, 3) - \"means\"\n *2. timesExpression/1 (dead) (3, 0) - \"price times quantity\"\n\n details\n\n 0. unknown/0 (dead) (2, 0) - \"worth\"\n {\n prioritized_by: [('unknown', 0)]\n dead: true\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n 1. means/0 (1, 3) - \"means\"\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n *2. timesExpression/1 (dead) (3, 0) - \"price times quantity\"\n {\n prioritized_by: [('timesOperator', 0)]\n dead: true\n evaluate: true\n isResponse: true\n marker: \n Operator(timesExpression/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n number: \"one\"\n range: {'start': 12, 'end': 31}\n text: \"price times quantity\"\n types: [\n 'number'\n, 'property'\n ]\n value: None\n word: \"times\"\n x: \n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n types: [\n 'price'\n ]\n value: \"price\"\n word: \"price\"\n }\n\n y: \n {\n prioritized_by: [('quantity', 0)]\n dead: true\n default: true\n marker: \n Operator(quantity/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n types: [\n 'quantity'\n ]\n value: \"quantity\"\n word: \"quantity\"\n }\n\n }\n<<<<<<<<<<<<<\nNext Op (index=1) is ('means', 0)\n Context:\n {\n default: true\n marker: \n Operator(means/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n Evaluator:\n Bridge(\"{ ...next(operator), from: before[0], to: after[0] }\")\n\n range: {'start': 6, 'end': 10}\n text: \"means\"\n value: \"means\"\n word: \"means\"\n }\n\n\n>>>>>>>>>>>>> Counter 6\n summary\n\n *0. means/1 (dead) (4, 0) - \"worth means price times quantity\"\n\n details\n\n *0. means/1 (dead) (4, 0) - \"worth means price times quantity\"\n {\n prioritized_by: [('means', 0)]\n dead: true\n default: true\n from: \n {\n prioritized_by: [('unknown', 0)]\n dead: true\n marker: \n Operator(unknown/0)\n Selectors:\n [\n Selector\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge(\"{ ...operator, unknown: true, dead: true }\")\n\n range: {'start': 0, 'end': 4}\n text: \"worth\"\n unknown: true\n value: \"worth\"\n word: \"worth\"\n }\n\n marker: \n Operator(means/1)\n Selectors:\n [\n Selector\n Left Selector: [Any]\n Right Selector: [Any]\n ]\n\n range: {'start': 0, 'end': 31}\n text: \"worth means price times quantity\"\n to: \n {\n prioritized_by: [('timesOperator', 0)]\n dead: true\n evaluate: true\n isResponse: true\n marker: \n Operator(timesExpression/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n number: \"one\"\n range: {'start': 12, 'end': 31}\n text: \"price times quantity\"\n types: [\n 'number'\n, 'property'\n ]\n value: None\n word: \"times\"\n x: \n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 12, 'end': 16}\n text: \"price\"\n types: [\n 'price'\n ]\n value: \"price\"\n word: \"price\"\n }\n\n y: \n {\n prioritized_by: [('quantity', 0)]\n dead: true\n default: true\n marker: \n Operator(quantity/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 24, 'end': 31}\n text: \"quantity\"\n types: [\n 'quantity'\n ]\n value: \"quantity\"\n word: \"quantity\"\n }\n\n }\n\n value: \"means\"\n word: \"means\"\n }\n<<<<<<<<<<<<<\n",
|
|
2468
2468
|
"contexts": [
|
|
2469
2469
|
{
|
|
2470
2470
|
"marker": "means",
|
package/common/reports.js
CHANGED
|
@@ -29,13 +29,13 @@ const template ={
|
|
|
29
29
|
|
|
30
30
|
/* START USER DEFINED: this part could be calling your backend db */
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
function compareValue(property, v1, v2) {
|
|
33
33
|
return v1[property] < v2[property] ? -1 :
|
|
34
34
|
v1[property] > v2[property] ? 1 :
|
|
35
35
|
0;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
function newReport({km, objects}) {
|
|
39
39
|
objects.tempReportId += 1
|
|
40
40
|
const reportId = `tempReport${objects.tempReportId}`
|
|
41
41
|
km('stm').api.mentioned({ context: { marker: "report", text: reportId, types: [ "report" ], value: reportId, word: reportId } })
|
|
@@ -48,21 +48,23 @@ const newReport = ({km, objects}) => {
|
|
|
48
48
|
return reportId
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
function compareObject(ordering) {
|
|
52
|
+
return (v1, v2) => {
|
|
53
|
+
for (const order of ordering) {
|
|
54
|
+
c = compareValue(order[0], v1, v2)
|
|
55
|
+
if (c == 0) {
|
|
56
|
+
continue
|
|
57
|
+
}
|
|
58
|
+
if (order[1] == 'descending') {
|
|
59
|
+
c *= -1
|
|
60
|
+
}
|
|
61
|
+
return c
|
|
59
62
|
}
|
|
60
|
-
return
|
|
63
|
+
return 0
|
|
61
64
|
}
|
|
62
|
-
return 0
|
|
63
65
|
}
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
function sort({ ordering, list }) {
|
|
66
68
|
return [...list].sort(compareObject(ordering))
|
|
67
69
|
}
|
|
68
70
|
|
|
@@ -84,7 +86,7 @@ const testData2 = {
|
|
|
84
86
|
]
|
|
85
87
|
}
|
|
86
88
|
|
|
87
|
-
|
|
89
|
+
function apiTemplate(marker, testData) {
|
|
88
90
|
return {
|
|
89
91
|
getName: () => testData.name,
|
|
90
92
|
getTypes: () => testData.types,
|
|
@@ -581,7 +583,7 @@ const config = {
|
|
|
581
583
|
],
|
|
582
584
|
};
|
|
583
585
|
|
|
584
|
-
|
|
586
|
+
function initializeApi(config, api) {
|
|
585
587
|
const type = api.getName();
|
|
586
588
|
config.addWord(type, {"id": "product", "initial": "{ value: '" + type + `', api: '${type}'}` })
|
|
587
589
|
/*
|
|
@@ -599,7 +601,7 @@ const initializeApi = (config, api) => {
|
|
|
599
601
|
// config.addWord(type, {"id": "report", "initial": `${open} value: '${type}' ${close}` })
|
|
600
602
|
}
|
|
601
603
|
|
|
602
|
-
|
|
604
|
+
async function initializer({config, objects, km, kms, isModule}) {
|
|
603
605
|
if (!isModule) {
|
|
604
606
|
await kms.reports.addAPI(api1)
|
|
605
607
|
await kms.reports.addAPI(api2)
|
package/common/scorekeeper.js
CHANGED
|
@@ -24,14 +24,14 @@ const template = {
|
|
|
24
24
|
],
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
function setPlayers(objects, config, players) {
|
|
28
28
|
for (const player of players) {
|
|
29
29
|
config.addWord(player, { "id": "player", "initial": `{ value: "${player}" }` })
|
|
30
30
|
}
|
|
31
31
|
objects.players = players;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
function setNextPlayer(km, objects) {
|
|
35
35
|
const turn = {
|
|
36
36
|
marker: "turn",
|
|
37
37
|
default: true,
|
|
@@ -46,7 +46,7 @@ const setNextPlayer = (km, objects) => {
|
|
|
46
46
|
api.mentioned({ context: turn })
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
function addPlayer(objects, config, player) {
|
|
50
50
|
config.addWord(player, { "id": "player", "initial": `{ value: "${player}" }` })
|
|
51
51
|
objects.players.push(player);
|
|
52
52
|
}
|
|
@@ -335,7 +335,7 @@ const config = {
|
|
|
335
335
|
],
|
|
336
336
|
};
|
|
337
337
|
|
|
338
|
-
|
|
338
|
+
function initializer({objects, km, isModule}) {
|
|
339
339
|
objects.players = []
|
|
340
340
|
objects.nextPlayer = undefined;
|
|
341
341
|
setNextPlayer(km, objects);
|
package/common/sdefaults.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const { flatten, knowledgeModule, where, debug } = require('./runtime').theprogrammablemind
|
|
2
|
-
const { defaultContextCheck } = require('./helpers')
|
|
2
|
+
const { defaultContextCheck, concats } = require('./helpers')
|
|
3
3
|
const sdefaults_tests = require('./sdefaults.test.json')
|
|
4
4
|
|
|
5
5
|
class API {
|
|
@@ -18,12 +18,32 @@ const config = {
|
|
|
18
18
|
name: 'sdefaults',
|
|
19
19
|
semantics: [
|
|
20
20
|
{
|
|
21
|
-
notes: 'flatten',
|
|
21
|
+
notes: 'flatten listable',
|
|
22
22
|
where: where(),
|
|
23
23
|
priority: -1,
|
|
24
24
|
// match: ({context}) => context.flatten || context.listable && context.value[0].flatten,
|
|
25
25
|
match: ({context}) => context.flatten || context.listable && context.value.some((value) => value.flatten),
|
|
26
26
|
// match: ({context}) => context.flatten || context.listable || (Array.isArray(context.value) && context.value.some((value) => value.flatten)),
|
|
27
|
+
apply: async ({config, km, context, s}) => {
|
|
28
|
+
const [flats, wf] = flatten(['list'], context)
|
|
29
|
+
const evalues = []
|
|
30
|
+
for (const flat of flats) {
|
|
31
|
+
const result = await s({ ...flat, flatten: false })
|
|
32
|
+
if (result.evalue) {
|
|
33
|
+
evalues.push(result.evalue)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (evalues.length > 0) {
|
|
37
|
+
context.evalue = concats(evalues)
|
|
38
|
+
context.isResponse = true
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
notes: 'flatten relation',
|
|
44
|
+
where: where(),
|
|
45
|
+
priority: -1,
|
|
46
|
+
match: ({context}) => context.flatten && context.relation,
|
|
27
47
|
apply: async ({config, km, context, s}) => {
|
|
28
48
|
const [flats, wf] = flatten(['list'], context)
|
|
29
49
|
for (const flat of flats) {
|