tpmkms
Version:
Reusable libraries for Entodicton, a natural language to json converter
2,620 lines (2,619 loc) • 740 kB
JSON
{
"configs": [
"years hours minutes milliseconds and seconds are units of time",
"hours = minutes / 60",
"minutes = hours * 60",
"seconds = minutes * 60",
"hours = seconds / 3600",
"seconds = hours * 3600",
"milliseconds = minutes * 60 * 1000",
"minutes = milliseconds / 1000 / 60",
"milliseconds = seconds * 1000",
"seconds = milliseconds / 1000",
"minutes = seconds / 60",
"day = hours / 24",
"hours = days * 24",
{
"operators": [
"([thenTime|then])",
"([repeatable])",
"(([timePoint]) [ampm|])",
"(([integer]) [timeRepeats|] ([timePoint]))",
"([atTime|at] (timePoint))",
"([use] (([quantity]) [timeFormat|format]))",
"([hourMinutes|] (integer) (colon) (integer))"
],
"bridges": [
{
"id": "repeatable",
"check": [
"marker",
"text",
"verbatim",
"value",
"evalue",
"isResponse",
{
"properties": "modifiers"
},
{
"properties": "postModifiers"
},
"repeats"
]
},
{
"id": "thenTime",
"after": [
"verb"
]
},
{
"id": "timeRepeats",
"level": 0,
"before": [
"verb"
],
"convolution": true,
"bridge": "{ ...next(operator), repeats: before[0], time: after[0], interpolate: [{ property: 'repeats' }, { property: 'time' }] }",
"check": [
"marker",
"text",
"verbatim",
"value",
"evalue",
"isResponse",
{
"properties": "modifiers"
},
{
"properties": "postModifiers"
},
"time",
"repeats"
]
},
{
"id": "timeRepeats",
"level": 1,
"before": [
"verb"
],
"bridge": "{ ...repeatable, repeats: operator, checks: append(repeatable.checks, ['repeats']), repeatable: repeatable, interpolate: [{ property: 'repeatable' }, { property: 'repeats', byPosition: true }] }",
"selector": {
"loose": "repeatable",
"arguments": {
"repeatable": "(@<= 'repeatable')"
}
},
"check": [
"marker",
"text",
"verbatim",
"value",
"evalue",
"isResponse",
{
"properties": "modifiers"
},
{
"properties": "postModifiers"
},
"time",
"repeats"
]
},
{
"id": "hourMinutes",
"isA": [
"timePoint"
],
"convolution": true,
"bridge": "{ ...next(operator), hour: after[0], colon: after[1], minute: after[2], interpolate: '${hour}${colon}${minute}' }"
},
{
"id": "timePoint",
"words": [
{
"word": "time",
"number": "one"
},
{
"word": "times",
"number": "many"
}
],
"isA": [
"noun"
]
},
{
"id": "atTime",
"words": [
"@"
],
"isA": [
"preposition"
],
"bridge": "{ ...next(operator), time: after[0], operator: operator, interpolate: '${operator} ${time}' }"
},
{
"id": "ampm",
"isA": [
"adjective"
],
"localHierarchy": [
[
"integer",
"timePoint"
]
],
"bridge": "{ ...next(before[0]), marker: if(isA(before[0].marker, 'integer'), operator('timePoint'), before[0].marker), ampm: operator, time: before[0], interpolate: concat(default(before[0].interpolate, '${time}'), ' ${ampm}') }"
},
{
"id": "timeFormat",
"bridge": "{ ...before[0], ...next(operator), interpolate: [ { context: before[0] }, { context: operator } ] }"
},
{
"id": "use",
"bridge": "{ ...next(operator), format: after[0], interpolate: [{ context: operator }, { property: 'format' }] }"
}
],
"words": {
"literals": {
"am": [
{
"id": "ampm",
"initial": "{ ampm: 'am', determined: true }"
}
],
"pm": [
{
"id": "ampm",
"initial": "{ ampm: 'pm', determined: true }"
}
]
}
},
"generators": [
{
"match": "({context}) => context.marker == 'timePoint' && context.evalue && context.format == 12",
"apply": "({context}) => {\n let hh = context.evalue.getHours();\n let ampm = 'am'\n if (hh > 12) {\n hh -= 12;\n ampm = 'pm'\n }\n let ss = context.evalue.getMinutes()\n ss = pad(ss, 2)\n return `${hh}:${ss} ${ampm}` \n }"
},
{
"match": "({context}) => context.marker == 'timePoint' && context.evalue && context.format == 24",
"apply": "({g, context}) => {\n function pad(num, size) {\n num = num.toString();\n while (num.length < size) num = \"0\" + num;\n return num;\n }\n\n return `${context.evalue.getHours()}:${pad(context.evalue.getMinutes(), 2)}` \n }"
},
{
"match": "({context}) => context.marker == 'response'",
"apply": "({g, context}) => context.text"
}
],
"semantics": [
{
"match": "(args) => args.callOnce(args, ({context}) => context.repeats) && args.context.repeats?.repeats",
"apply": "async ({context, e, s, handlerStack}) => {\n const v = (await e(context.repeats.repeats)).evalue\n for (let i = 0; i < v; ++i) {\n if (context.action) {\n await s(context.action)\n } else {\n await s({ ...context, repeats: undefined })\n }\n }\n }"
},
{
"match": "({objects, context, api}) => context.marker == 'timePoint' && context.evaluate",
"apply": "({objects, context, api}) => {\n context.evalue = api.newDate()\n context.format = objects.format\n }"
},
{
"match": "({objects, context}) => context.marker == 'use' && context.format && (context.format.amount.value == 12 || context.format.amount.value == 24)",
"apply": "({objects, context}) => {\n objects.format = context.format.amount.value\n }"
},
{
"match": "({objects, context}) => context.marker == 'use' && context.format && (context.format.amount.value != 12 && context.format.amount.value != 24)",
"apply": "({objects, context}) => {\n context.marker = 'response'\n context.text = 'The hour format is 12 hour or 24 hour'\n }"
}
]
}
],
"resultss": [
{
"hierarchy": [
[
"a",
"article",
false
],
[
"adjective",
"adjective",
false
],
[
"all",
"quantifier",
false
],
[
"amount",
"concept",
false
],
[
"amount",
"hierarchyAble",
false
],
[
"amount",
"isEdee",
false
],
[
"amount",
"isEder",
false
],
[
"amount",
"object",
false
],
[
"amount",
"property",
false
],
[
"amount",
"queryable",
false
],
[
"amount",
"theAble",
false
],
[
"amount",
"thisAble",
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
],
[
"calculate",
"verb",
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
],
[
"convertToUnits",
"expression",
false
],
[
"convertToUnits",
"queryable",
false
],
[
"convertToUnits",
"testingValue",
false
],
[
"countable",
"hierarchyAble",
false
],
[
"deletable",
"deletable",
false
],
[
"delete",
"verb",
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
],
[
"dimension",
"concept",
false
],
[
"dimension",
"hierarchyAble",
false
],
[
"dimension",
"isEdee",
false
],
[
"dimension",
"isEder",
false
],
[
"dimension",
"object",
false
],
[
"dimension",
"property",
false
],
[
"dimension",
"queryable",
false
],
[
"dimension",
"theAble",
false
],
[
"dimension",
"thisAble",
false
],
[
"distributable",
"queryable",
false
],
[
"divideByExpression",
"mathematicalExpression",
false
],
[
"divideByOperator",
"mathematical_operator",
false
],
[
"doubleQuote",
"queryable",
false
],
[
"each",
"article",
false
],
[
"event",
"event",
false
],
[
"every",
"article",
false
],
[
"expression",
"expression",
false
],
[
"forQuantity",
"preposition",
false
],
[
"forVariable",
"preposition",
false
],
[
"formula",
"concept",
false
],
[
"formula",
"hierarchyAble",
false
],
[
"formula",
"isEdee",
false
],
[
"formula",
"isEder",
false
],
[
"formula",
"object",
false
],
[
"formula",
"property",
false
],
[
"formula",
"queryable",
false
],
[
"formula",
"theAble",
false
],
[
"formula",
"thisAble",
false
],
[
"formulaForVariable",
"preposition",
false
],
[
"formulaForVariable",
"queryable",
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
],
[
"imperial",
"hierarchyAble",
false
],
[
"imperial",
"isEdee",
false
],
[
"imperial",
"isEder",
false
],
[
"imperial",
"object",
false
],
[
"imperial",
"property",
false
],
[
"imperial",
"queryable",
false
],
[
"imperial",
"system_modifier",
false
],
[
"imperial",
"theAble",
false
],
[
"imperial",
"unit_modifier",
false
],
[
"imperial_system",
"adjective",
true
],
[
"imperial_system",
"concept",
false
],
[
"imperial_system",
"hierarchyAble",
false
],
[
"imperial_system",
"isEdee",
false
],
[
"imperial_system",
"isEder",
false
],
[
"imperial_system",
"measurement_system",
false
],
[
"imperial_system",
"object",
false
],
[
"imperial_system",
"property",
false
],
[
"imperial_system",
"queryable",
false
],
[
"imperial_system",
"system",
false
],
[
"imperial_system",
"theAble",
false
],
[
"imperial_unit",
"adjective",
true
],
[
"imperial_unit",
"concept",
false
],
[
"imperial_unit",
"hierarchyAble",
false
],
[
"imperial_unit",
"isEdee",
false
],
[
"imperial_unit",
"isEder",
false
],
[
"imperial_unit",
"object",
false
],
[
"imperial_unit",
"property",
false
],
[
"imperial_unit",
"queryable",
false
],
[
"imperial_unit",
"theAble",
false
],
[
"imperial_unit",
"unit",
false
],
[
"integer",
"number",
false
],
[
"is",
"canBeQuestion",
false
],
[
"is",
"event",
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
],
[
"length",
"dimension",
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",
"expression",
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
],
[
"measurement",
"hierarchyAble",
false
],
[
"measurement",
"isEdee",
false
],
[
"measurement",
"isEder",
false
],
[
"measurement",
"object",
false
],
[
"measurement",
"property",
false
],
[
"measurement",
"queryable",
false
],
[
"measurement",
"system_modifier",
false
],
[
"measurement",
"theAble",
false
],
[
"measurement",
"unit_modifier",
false
],
[
"measurement_system",
"adjective",
true
],
[
"measurement_system",
"concept",
false
],
[
"measurement_system",
"hierarchyAble",
false
],
[
"measurement_system",
"isEdee",
false
],
[
"measurement_system",
"isEder",
false
],
[
"measurement_system",
"object",
false
],
[
"measurement_system",
"property",
false
],
[
"measurement_system",
"queryable",
false
],
[
"measurement_system",
"system",
false
],
[
"measurement_system",
"theAble",
false
],
[
"measurement_unit",
"adjective",
true
],
[
"measurement_unit",
"concept",
false
],
[
"measurement_unit",
"hierarchyAble",
false
],
[
"measurement_unit",
"isEdee",
false
],
[
"measurement_unit",
"isEder",
false
],
[
"measurement_unit",
"object",
false
],
[
"measurement_unit",
"property",
false
],
[
"measurement_unit",
"queryable",
false
],
[
"measurement_unit",
"theAble",
false
],
[
"measurement_unit",
"unit",
false
],
[
"memorable",
"deletable",
false
],
[
"memorable",
"theAble",
false
],
[
"metric",
"hierarchyAble",
false
],
[
"metric",
"isEdee",
false
],
[
"metric",
"isEder",
false
],
[
"metric",
"object",
false
],
[
"metric",
"property",
false
],
[
"metric",
"queryable",
false
],
[
"metric",
"system_modifier",
false
],
[
"metric",
"theAble",
false
],
[
"metric",
"unit_modifier",
false
],
[
"metric_system",
"adjective",
true
],
[
"metric_system",
"concept",
false
],
[
"metric_system",
"hierarchyAble",
false
],
[
"metric_system",
"isEdee",
false
],
[
"metric_system",
"isEder",
false
],
[
"metric_system",
"measurement_system",
false
],
[
"metric_system",
"object",
false
],
[
"metric_system",
"property",
false
],
[
"metric_system",
"queryable",
false
],
[
"metric_system",
"system",
false
],
[
"metric_system",
"theAble",
false
],
[
"metric_unit",
"adjective",
true
],
[
"metric_unit",
"concept",
false
],
[
"metric_unit",
"hierarchyAble",
false
],
[
"metric_unit",
"isEdee",
false
],
[
"metric_unit",
"isEder",
false
],
[
"metric_unit",
"object",
false
],
[
"metric_unit",
"property",
false
],
[
"metric_unit",
"queryable",
false
],
[
"metric_unit",
"theAble",
false
],
[
"metric_unit",
"unit",
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",
"expression",
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
],
[
"preferredUnits",
"verb",
false
],
[
"preposition",
"preposition",
false
],
[
"pronoun",
"pronoun",
false
],
[
"property",
"queryable",
false
],
[
"property",
"theAble",
false
],
[
"propertyOf",
"preposition",
false
],
[
"punctuation",
"punctuation",
false
],
[
"quantifier",
"quantifier",
false
],
[
"quantity",
"noun",
false
],
[
"queryable",
"listable",
false
],
[
"questionMark",
"punctuation",
false
],
[
"readonly",
"queryable",
false
],
[
"reason",
"queryable",
false
],
[
"reason",
"theAble",
false
],
[
"recall",
"verb",
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
],
[
"system",
"concept",
false
],
[
"system",
"hierarchyAble",
false
],
[
"system",
"isEdee",
false
],
[
"system",
"isEder",
false
],
[
"system",
"object",
false
],
[
"system",
"property",
false
],
[
"system",
"queryable",
false
],
[
"system",
"theAble",
false
],
[
"system_modifier",
"adjective",
false
],
[
"testingValue",
"testingValue",
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
],
[
"unit",
"concept",
false
],
[
"unit",
"hierarchyAble",
false
],
[
"unit",
"isEdee",
false
],
[
"unit",
"isEder",
false
],
[
"unit",
"mathematicalExpression",
false
],
[
"unit",
"object",
false
],
[
"unit",
"property",
false
],
[
"unit",
"queryable",
false
],
[
"unit",
"theAble",
false
],
[
"unit_modifier",
"adjective",
false
],
[
"unknown",
"hierarchyAble",
false
],
[
"useMeasurementSystem",
"verb",
false
],
[
"useUnits",
"verb",
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
],
[
"list",
0
],
[
"propertyOf",
0
],
[
"unknown",
0
],
[
"unknown",
0
],
[
"unknown",
0
],
[
"unknown",
0
],
[
"unknown",
0
],
[
"unknown",
0
]
],
"counter": 1
},
{
"op": [
"unknown",
0
],
"ops": [
[
"is",
0
],
[
"list",
0
],
[
"propertyOf",
0
],
[
"unknown",
0
],
[
"unknown",
0
],
[
"unknown",
0
],
[
"unknown",
0
],
[
"unknown",
0
]
],
"counter": 2
},
{
"op": [
"unknown",
0
],
"ops": [
[
"is",
0
],
[
"list",
0
],
[
"propertyOf",
0
],
[
"unknown",
0
],
[
"unknown",
0
],
[
"unknown",
0
],
[
"unknown",
0
]
],
"counter": 3
},
{
"op": [
"unknown",
0
],
"ops": [
[
"is",
0
],
[
"list",
0
],
[
"propertyOf",
0
],
[
"unknown",
0
],
[
"unknown",
0
],
[
"unknown",
0
]
],
"counter": 4
},
{
"op": [
"unknown",
0
],
"ops": [
[
"is",
0
],
[
"list",
0
],
[
"propertyOf",
0
],
[
"unknown",
0
],
[
"unknown",
0
]
],
"counter": 5
},
{
"op": [
"unknown",
0
],
"ops": [
[
"is",
0
],
[
"list",
0
],
[
"propertyOf",
0
],
[
"unknown",
0
]
],
"counter": 6
},
{
"op": [
"list",
0
],
"ops": [
[
"is",
0
],
[
"list",
0
],
[
"propertyOf",
0
]
],
"counter": 7
},
{
"op": [
"list",
1
],
"ops": [
[
"is",
0
],
[
"list",
1
],
[
"propertyOf",
0
]
],
"counter": 8
},
{
"op": [
"list",
1
],
"ops": [
[
"is",
0
],
[
"list",
1
],
[
"propertyOf",
0
]
],
"counter": 9
},
{
"op": [
"list",
1
],
"ops": [
[
"is",
0
],
[
"list",
1
],
[
"propertyOf",
0
]
],
"counter": 10
},
{
"op": [
"propertyOf",
0
],
"ops": [
[
"is",
0
],
[
"propertyOf",
0
]
],
"counter": 11
},
{
"op": [
"propertyOf",
1
],
"ops": [
[
"is",
0
],
[
"propertyOf",
1
]
],
"counter": 12
},
{
"op": [
"is",
0
],
"ops": [
[
"is",
0
]
],
"counter": 13
},
{
"op": [
"is",
1
],
"ops": [
[
"is",
1
]
],
"counter": 14
}
]
},
"trace": "undefined",
"contexts": [
{
"number": "many",
"text": "years hours minutes milliseconds and seconds are units of time",
"marker": "is",
"word": "are",
"range": {
"start": 0,
"end": 61
},
"one": {
"number": "many",
"marker": "list",
"default": true,
"word": "and",
"text": "years hours minutes milliseconds and seconds",
"range": {
"start": 0,
"end": 43
},
"types": [
"list",
"unknown"
],
"listable": true,
"isList": true,
"value": [
{
"value": "years",
"unknown": true,
"text": "years",
"marker": "unknown",
"word": "years",
"range": {
"start": 0,
"end": 4
},
"dead": true,
"types": [
"unknown"
],
"level": 0
},
{
"value": "hours",
"unknown": true,
"text": "hours",
"marker": "unknown",
"word": "hours",
"range": {
"start": 6,
"end": 10
},
"dead": true,
"types": [
"unknown"
],
"level": 0
},
{
"value": "minutes",
"unknown": true,
"text": "minutes",
"marker": "unknown",
"word": "minutes",
"range": {
"start": 12,
"end": 18
},
"dead": true,
"types": [
"unknown"
],
"level": 0
},
{
"value": "milliseconds",
"unknown": true,
"text": "milliseconds",
"marker": "unknown",
"word": "milliseconds",
"range": {
"start": 20,
"end": 31
},
"dead": true,
"types": [
"unknown"
],
"level": 0
},
{
"value": "seconds",
"unknown": true,
"text": "seconds",
"marker": "unknown",
"word": "seconds",
"range": {
"start": 37,
"end": 43
},
"dead": true,
"types": [
"unknown"
],
"level": 0
}
],
"level": 1
},
"two": {
"value": "unit",
"number": "many",
"text": "units of time",
"marker": "unit",
"dead": true,
"word": "units",
"range": {
"start": 49,
"end": 61
},
"types": [
"unit"
],
"propertyOf": true,
"object": {
"value": "time",
"unknown": true,
"text": "time",
"marker": "object",
"word": "time",
"range": {
"start": 58,
"end": 61
},
"dead": true,
"types": [
"object"
],
"level": 0
},
"objects": [
{
"value": "unit",
"number": "many",
"text": "units",
"marker": "unit",
"dead": true,
"word": "units",
"range": {
"start": 49,
"end": 53
},
"types": [
"unit"
],
"level": 0
},
{
"value": "time",
"unknown": true,
"text": "time",
"marker": "object",
"word": "time",
"range": {
"start": 58,
"end": 61
},
"dead": true,
"types": [
"object"
],
"level": 0
}
],
"level": 0,
"concept": true
},
"dead": true,
"level": 2,