UNPKG

tpmkms

Version:

Reusable libraries for Entodicton, a natural language to json converter

2,734 lines (2,733 loc) 504 kB
{ "configs": [ "drone is a concept", "around, forward, left, right, and backward are directions", "speed and power are properties", "point is a concept", "points are nameable orderable and memorable", { "apply": "(args) => {\n askForCalibrationDistance(args)\n askForEndTime(args)\n askForStartTime(args)\n\n expectDirection(args)\n expectDistanceForCalibration(args)\n expectCalibrationCompletion(args)\n\n args.config.addSemantic({\n match: ({context, isA}) => isA(context.marker, 'quantity') && isA(context.unit.marker, 'unitPerUnit'),\n apply: async ({context, objects, api, fragments, e}) => {\n // send a command to the drone\n const instantiation = await fragments(\"quantity in meters per second\", { quantity: context })\n const result = await e(instantiation)\n const desired_speed = result.evalue.amount.evalue.evalue\n const desired_power = objects.current.power * (desired_speed / objects.calibration.speed)\n objects.runCommand = true\n objects.current.power = desired_power \n }\n })\n\n args.config.addSemantic({\n match: ({context, objects, isA}) => objects.current.direction && objects.isCalibrated && context.marker == 'controlStart',\n apply: ({context, objects, api}) => {\n objects.runCommand = false \n }\n })\n\n args.config.addSemantic({\n // match: ({context, objects, isA}) => objects.current.direction && objects.isCalibrated && (context.marker == 'controlEnd' || context.marker == 'controlBetween'),\n match: ({context, objects, isA}) => objects.current.direction && objects.isCalibrated && context.marker == 'controlEnd',\n apply: async ({context, objects, api}) => {\n // send a command to the drone\n if (objects.runCommand) {\n // debugger\n await api.sendCommand()\n }\n }\n })\n }" }, { "operators": [ "([calibrate])", "([turn] (direction))", "([pause] ([number]))", "([stop] ([drone|])?)", "([go])", "([toPoint|to] (point))" ], "bridges": [ { "id": "toPoint", "isA": [ "preposition" ], "bridge": "{ ...next(operator), operator: operator, point: after[0], interpolate: [{ property: 'operator' }, { property: 'point' }] }", "semantic": "async ({objects, api, e, context}) => {\n if (api.isCalibrated()) {\n objects.runCommand = true\n const point = await e(context.point)\n objects.current.destination = point.evalue\n }\n }" }, { "id": "go" }, { "id": "turn", "isA": [ "verb" ], "bridge": "{ ...next(operator), direction: after[0], interpolate: [{ context: operator }, { property: 'direction' }] }", "semantic": "({context, objects, api}) => {\n objects.runCommand = true\n objects.current.direction = context.direction.marker\n }" }, { "id": "calibrate", "isA": [ "verb" ], "bridge": "{ ...next(operator), interpolate: [{ context: operator }] }", "semantic": "({context, objects, api, remember}) => {\n objects.current.direction = 'forward'\n const startTime = api.forward(objects.current.power)\n objects.calibration.startTime = startTime\n\n const ordinal = api.nextOrdinal()\n remember({ marker: 'point', ordinal, point: { x: 0, y: 0 }, description: \"calibration start\" })\n objects.current.ordinal = ordinal\n }" }, { "id": "pause", "isA": [ "verb" ], "bridge": "{ ...operator, time: after[0], interpolate: [{ context: operator }, { property: 'time' }] }", "semantic": "async ({context}) => {\n // why doesn't nodejs add a sleep function. I always have to look up how to do this because its not fucking memorable.\n // function sleep(ms) { return new Promise(r => setTimeout(r, ms)); }\n // await sleep(context.time.value*1000) \n }" }, { "id": "stop", "isA": [ "verb" ], "optional": { "1": "{ marker: 'drone' }" }, "bridge": "{ ...next(operator), object: after[0], interpolate: [{ context: operator }, { property: 'object' }] }", "semantic": "async ({remember, context, objects, api, say}) => {\n if (!objects.calibration.startTime) {\n return // ignore\n }\n if (objects.calibration.speed) {\n /*\n const stopTime = api.stop()\n const ordinal = api.nextOrdinal()\n const point = api.currentPoint()\n remember({ marker: 'point', ordinal, point })\n objects.current.ordinal = ordinal\n */\n api.stop()\n await api.markCurrentPoint()\n } else {\n const stopTime = api.stop()\n objects.calibration.endTime = stopTime\n objects.calibration.duration = (objects.calibration.endTime - objects.calibration.startTime)/1000\n }\n }" } ], "generators": [ { "match": "({context}) => context.marker == 'help' && !context.paraphrase && context.isResponse", "apply": "() => ''" } ], "semantics": [] } ], "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 ], [ "ampm", "adjective", 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 ], [ "atTime", "preposition", false ], [ "between", "preposition", false ], [ "calculate", "verb", false ], [ "call", "verb", false ], [ "canBeDoQuestion", "canBeDoQuestion", false ], [ "canBeQuestion", "canBeQuestion", false ], [ "centimeter", "hierarchyAble", false ], [ "centimeter", "isEdee", false ], [ "centimeter", "isEder", false ], [ "centimeter", "metric_unit", false ], [ "centimeter", "object", false ], [ "centimeter", "property", false ], [ "centimeter", "queryable", false ], [ "centimeter", "theAble", false ], [ "centimeter", "thisAble", false ], [ "centimeter", "unit_length", 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 ], [ "foot", "hierarchyAble", false ], [ "foot", "imperial_unit", false ], [ "foot", "isEdee", false ], [ "foot", "isEder", false ], [ "foot", "object", false ], [ "foot", "property", false ], [ "foot", "queryable", false ], [ "foot", "theAble", false ], [ "foot", "thisAble", false ], [ "foot", "unit_length", 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 ], [ "hour", "hierarchyAble", false ], [ "hour", "isEdee", false ], [ "hour", "isEder", false ], [ "hour", "object", false ], [ "hour", "property", false ], [ "hour", "queryable", false ], [ "hour", "theAble", false ], [ "hour", "thisAble", false ], [ "hour", "unit_time", false ], [ "hourMinutes", "timePoint", 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 ], [ "inch", "hierarchyAble", false ], [ "inch", "imperial_unit", false ], [ "inch", "isEdee", false ], [ "inch", "isEder", false ], [ "inch", "object", false ], [ "inch", "property", false ], [ "inch", "queryable", false ], [ "inch", "theAble", false ], [ "inch", "thisAble", false ], [ "inch", "unit_length", 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 ], [ "meter", "hierarchyAble", false ], [ "meter", "isEdee", false ], [ "meter", "isEder", false ], [ "meter", "metric_unit", false ], [ "meter", "object", false ], [ "meter", "property", false ], [ "meter", "queryable", false ], [ "meter", "theAble", false ], [ "meter", "thisAble", false ], [ "meter", "unit_length", 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 ], [ "mile", "hierarchyAble", false ], [ "mile", "isEdee", false ], [ "mile", "isEder", false ], [ "mile", "object", false ], [ "mile", "property", false ], [ "mile", "queryable", false ], [ "mile", "theAble", false ], [ "mile", "thisAble", false ], [ "mile", "unit_length", false ], [ "millimeter", "hierarchyAble", false ], [ "millimeter", "isEdee", false ], [ "millimeter", "isEder", false ], [ "millimeter", "metric_unit", false ], [ "millimeter", "object", false ], [ "millimeter", "property", false ], [ "millimeter", "queryable", false ], [ "millimeter", "theAble", false ], [ "millimeter", "thisAble", false ], [ "millimeter", "unit_length", false ], [ "millisecond", "hierarchyAble", false ], [ "millisecond", "isEdee", false ], [ "millisecond", "isEder", false ], [ "millisecond", "object", false ], [ "millisecond", "property", false ], [ "millisecond", "queryable", false ], [ "millisecond", "theAble", false ], [ "millisecond", "thisAble", false ], [ "millisecond", "unit_time", 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 ], [ "minute", "hierarchyAble", false ], [ "minute", "isEdee", false ], [ "minute", "isEder", false ], [ "minute", "object", false ], [ "minute", "property", false ], [ "minute", "queryable", false ], [ "minute", "theAble", false ], [ "minute", "thisAble", false ], [ "minute", "unit_time", false ], [ "modifies", "verb", false ], [ "nameable", "nameable", 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 ], [ "orderable", "queryable", false ], [ "orderable", "theAble", 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 ], [ "ordinal", "listable", false ], [ "ordinalOnOrdered", "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 ], [ "second", "hierarchyAble", false ], [ "second", "isEdee", false ], [ "second", "isEder", false ], [ "second", "object", false ], [ "second", "property", false ], [ "second", "queryable", false ], [ "second", "theAble", false ], [ "second", "thisAble", false ], [ "second", "unit_time", 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", "nameable", false ], [ "thisitthat", "queryable", false ], [ "timePoint", "noun", 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 ], [ "unitPerUnit", "unit", false ], [ "unit_length", "hierarchyAble", false ], [ "unit_length", "isEdee", false ], [ "unit_length", "isEder", false ], [ "unit_length", "object", false ], [ "unit_length", "property", false ], [ "unit_length", "queryable", false ], [ "unit_length", "theAble", false ], [ "unit_length", "thisAble", false ], [ "unit_length", "unit", false ], [ "unit_modifier", "adjective", false ], [ "unit_time", "hierarchyAble", false ], [ "unit_time", "isEdee", false ], [ "unit_time", "isEder", false ], [ "unit_time", "object", false ], [ "unit_time", "property", false ], [ "unit_time", "queryable", false ], [ "unit_time", "theAble", false ], [ "unit_time", "thisAble", false ], [ "unit_time", "unit", 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 ], [ "year", "hierarchyAble", false ], [ "year", "isEdee", false ], [ "year", "isEder", false ], [ "year", "object", false ], [ "year", "property", false ], [ "year", "queryable", false ], [ "year", "theAble", false ], [ "year", "thisAble", false ], [ "year", "unit_time", false ] ], "metadata": { "opChoices": [ { "op": [ "unknown", 0 ], "ops": [ [ "a", 0 ], [ "is", 0 ], [ "unknown", 0 ] ], "counter": 1 }, { "op": [ "a", 0 ], "ops": [ [ "a", 0 ], [ "is", 0 ] ], "counter": 2 }, { "op": [ "is", 0 ], "ops": [ [ "is", 0 ] ], "counter": 3 }, { "op": [ "is", 1 ], "ops": [ [ "is", 1 ] ], "counter": 4 } ] }, "trace": "undefined", "contexts": [ { "number": "one", "text": "drone is a concept", "marker": "is", "word": "is", "range": { "start": 0, "end": 17 }, "one": { "number": "one", "value": "drone", "unknown": true, "text": "drone", "marker": "unknown", "word": "drone", "range": { "start": 0, "end": 4 }, "dead": true, "types": [ "unknown" ], "level": 0 }, "two": { "marker": "concept", "value": "concept", "default": true, "text": "a concept", "dead": true, "word": "concept", "range": { "start": 9, "end": 17 }, "types": [ "concept" ], "pullFromContext": false, "instance": true, "concept": true, "number": "one", "wantsValue": true, "determiner": { "marker": "a", "default": true,