tpmkms
Version:
Reusable libraries for Entodicton, a natural language to json converter
270 lines • 12.1 kB
JSON
{
"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": []
}