UNPKG

tpmkms

Version:

Reusable libraries for Entodicton, a natural language to json converter

270 lines 12.1 kB
{ "configs": [ { "operators": [ "([remindable])", { "pattern": "([addRemindable] (word)*)", "scope": "testing" }, "([remind:justWhoBridge] (remindable/*))", "([remind] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')*)", "([remind:withDateBridge] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')* (dateTimeSelector))", "([remind:withDateFirstBridge] (remindable/*) (dateTimeSelector) (!@<= 'dateTimeSelector' && !@<= 'inAddition')*)", "([remind:withDateAndTimeBridge] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')* (dateTimeSelector) (atTime))", "([remindResponse] (complete !== true && !@<= 'dateTimeSelector' && !@<= 'inAddition' )+ (dateTimeSelector))", "([remindResponseOnly] (context.complete != true && !@<= day_dates && !@<= 'dateTimeSelector' && !@<=remind)+)", "([show] ([reminders]))", "([delete_reminders|delete,cancel] (number/*))", "([add] (remindable/*))", "([remove|] (remindable/*))", "((verb/*) [inAddition|also,too])" ], "bridges": [ { "id": "inAddition", "after": [ "verb" ], "bridge": "{ ...before[0], inAddition: true, verb: before[0], operator: operator, interpolate: '${verb} ${operator}' }" }, { "id": "add", "isA": [ "verb" ], "bridge": "{ ...next(operator), complete: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }", "semantic": "({api, context}) => {\n api.addUser(api.contextToWho(context.arg))\n }" }, { "id": "remove", "words": [ "delete", "remove" ], "isA": [ "verb" ], "bridge": "{ ...next(operator), complete: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }", "semantic": "({api, context}) => {\n api.removeUser(api.contextToWho(context.arg))\n }" }, { "id": "addRemindable", "isA": [ "verb" ], "scope": "testing", "bridge": "{ ...next(operator), complete: true, flatten: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }", "semantic": "async ({api, context}) => {\n const name = context.arg.map( (word) => word.text ).join(' ')\n await api.addRemindable(name)\n }" }, { "id": "remindable", "isA": [ "listable" ] }, { "id": "remindResponseOnly", "isA": [ "verb" ], "convolution": true, "disabled": true, "bridge": "{ ...next(operator), complete: true, operator: operator, reminder: after[0], interpolate: '${reminder}' }", "semantic": "async ({context, api, gp, gsp}) => {\n const text = await gsp(context.reminder.slice(0));\n const update = { text }\n if (context.date) {\n update.dateTimeSelector = context.date\n update.dateTimeSelectorText = await gp(context.date)\n }\n await api.update(update)\n }" }, { "id": "remindResponse", "before": [ "remindResponseOnly" ], "isA": [ "verb" ], "convolution": true, "disabled": true, "optional": { "2": {} }, "bridge": "{ ...next(operator), complete: true, operator: operator, reminder: after[0], date: after[1], interpolate: '${reminder} ${date}' }", "semantic": "async ({context, api, gp, gsp}) => {\n const text = await gsp(context.reminder.slice(0));\n const update = { text }\n if (context.date) {\n update.dateTimeSelector = context.date\n update.dateTimeSelectorText = await gp(context.date)\n }\n await api.update(update)\n }" }, { "id": "remind", "isA": [ "verb" ], "localHierarchy": [ [ "self", "remindable" ] ], "bridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], interpolate: '${operator} ${who} ${reminder}' }", "justWhoBridge": "{ ...next(operator), complete: true, bridge: 'justWhoBridge', operator: operator, who: after[0], interpolate: '${operator} ${who}' }", "withDateBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], date: after[2], interpolate: '${operator} ${who} ${reminder} ${date}' }", "withDateFirstBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[2], date: after[1], interpolate: '${operator} ${who} ${date} ${reminder}' }", "withDateAndTimeBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], date: after[2], time: after[3], interpolate: '${operator} ${who} ${reminder} ${date} ${time}' }", "semantics": "[object Object]", "semantic": "async ({ask, api, gsp, gp, context}) => {\n const who = api.contextToWho(context.who)\n let text;\n if (context.reminder) {\n text = await gsp(context.reminder.slice(1));\n }\n const reminder = { text, dateTimeSelector: context.date, who }\n if (context.date) {\n reminder.dateTimeSelector = context.date\n reminder.dateTimeSelectorText = await gp(context.date)\n }\n // await api.instantiate(reminder)\n await api.add(reminder)\n reminder.cleanUp = ask([\n query('missingReminder', reminder.id),\n query('missingDate', reminder.id),\n ])\n }" }, { "id": "reminders", "isA": [ "noun" ] }, { "id": "show", "isA": [ "verb" ], "bridge": "{ ...next(operator), operator: operator, complete: true, reminders: after[0], interpolate: '${operator} ${reminders}' }", "semantic": "({context, api, verbatim}) => {\n verbatim(api.show())\n }" }, { "id": "delete_reminders", "isA": [ "verb" ], "bridge": "{ ...next(operator), operator: operator, complete: true, reminders: after[0], interpolate: '${operator} ${reminders}' }", "semantic": "({context, api, verbatim}) => {\n const s = api.delete_reminder(context.reminders.value)\n if (s) {\n verbatim(s)\n }\n }" } ] } ], "resultss": [ { "extraConfig": true, "operators": [ "([remindable])", { "pattern": "([addRemindable] (word)*)", "scope": "testing" }, "([remind:justWhoBridge] (remindable/*))", "([remind] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')*)", "([remind:withDateBridge] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')* (dateTimeSelector))", "([remind:withDateFirstBridge] (remindable/*) (dateTimeSelector) (!@<= 'dateTimeSelector' && !@<= 'inAddition')*)", "([remind:withDateAndTimeBridge] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')* (dateTimeSelector) (atTime))", "([remindResponse] (complete !== true && !@<= 'dateTimeSelector' && !@<= 'inAddition' )+ (dateTimeSelector))", "([remindResponseOnly] (context.complete != true && !@<= day_dates && !@<= 'dateTimeSelector' && !@<=remind)+)", "([show] ([reminders]))", "([delete_reminders|delete,cancel] (number/*))", "([add] (remindable/*))", "([remove|] (remindable/*))", "((verb/*) [inAddition|also,too])" ], "bridges": [ { "id": "inAddition", "after": [ "verb" ], "bridge": "{ ...before[0], inAddition: true, verb: before[0], operator: operator, interpolate: '${verb} ${operator}' }" }, { "id": "add", "isA": [ "verb" ], "bridge": "{ ...next(operator), complete: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }" }, { "id": "remove", "words": [ "delete", "remove" ], "isA": [ "verb" ], "bridge": "{ ...next(operator), complete: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }" }, { "id": "addRemindable", "isA": [ "verb" ], "scope": "testing", "bridge": "{ ...next(operator), complete: true, flatten: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }" }, { "id": "remindable", "isA": [ "listable" ] }, { "id": "remindResponseOnly", "isA": [ "verb" ], "convolution": true, "disabled": true, "bridge": "{ ...next(operator), complete: true, operator: operator, reminder: after[0], interpolate: '${reminder}' }" }, { "id": "remindResponse", "before": [ "remindResponseOnly" ], "isA": [ "verb" ], "convolution": true, "disabled": true, "optional": { "2": {} }, "bridge": "{ ...next(operator), complete: true, operator: operator, reminder: after[0], date: after[1], interpolate: '${reminder} ${date}' }" }, { "id": "remind", "isA": [ "verb" ], "localHierarchy": [ [ "self", "remindable" ] ], "bridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], interpolate: '${operator} ${who} ${reminder}' }", "justWhoBridge": "{ ...next(operator), complete: true, bridge: 'justWhoBridge', operator: operator, who: after[0], interpolate: '${operator} ${who}' }", "withDateBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], date: after[2], interpolate: '${operator} ${who} ${reminder} ${date}' }", "withDateFirstBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[2], date: after[1], interpolate: '${operator} ${who} ${date} ${reminder}' }", "withDateAndTimeBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], date: after[2], time: after[3], interpolate: '${operator} ${who} ${reminder} ${date} ${time}' }", "semantics": [ {} ] }, { "id": "reminders", "isA": [ "noun" ] }, { "id": "show", "isA": [ "verb" ], "bridge": "{ ...next(operator), operator: operator, complete: true, reminders: after[0], interpolate: '${operator} ${reminders}' }" }, { "id": "delete_reminders", "isA": [ "verb" ], "bridge": "{ ...next(operator), operator: operator, complete: true, reminders: after[0], interpolate: '${operator} ${reminders}' }" } ] } ], "fragments": [], "semantics": [], "associations": [], "summaries": [], "learned_contextual_priorities": [] }