tpmkms
Version:
Reusable libraries for Entodicton, a natural language to json converter
175 lines • 5.94 kB
JSON
{
"configs": [
{
"operators": [
"([dateTimeSelector] (onDate) (atTime))",
"((day_dates/*) [dayOfMonth|of] (month_dates/*))",
"((day_dates/*) [dayAfterDate|after] (afterDateValue_dates/*))"
],
"bridges": [
{
"id": "dayOfMonth",
"after": [
"article"
],
"isA": [
"onDateValue_dates"
],
"before": [
"verb",
"onDate_dates"
],
"bridge": "{ ...next(operator), day: before[0], month: after[0], operator: operator, interpolate: '${day} ${operator} ${month}' }",
"check": [
"day",
"month"
]
},
{
"id": "dayAfterDate",
"after": [
"article",
"monthDayYear_dates"
],
"isA": [
"onDateValue_dates"
],
"before": [
"verb",
"afterDate_dates"
],
"bridge": "{ ...next(operator), day: before[0], after: after[0], operator: operator, interpolate: '${day} ${operator} ${after}' }",
"check": [
"day",
"after"
]
},
{
"id": "dateTimeSelector",
"after": [
"preposition"
],
"before": [
"verb"
],
"convolution": true,
"children": [
"onDate_dates",
"atTime",
"date_dates"
],
"bridge": "{ ...next(operator), date: after[0], time: after[1], interpolate: '${date} ${time}' }",
"check": [
"time",
"date"
]
}
],
"semantics": [
{
"match": "({context, isA}) => context.evaluate && onOrIs('dayAfterDate', context)",
"apply": "async ({context, isProcess, isTest, kms, isA, e}) => {\n try {\n const now = kms.time.api.now()\n const date = afterOrIs('dayAfterDate', context)\n const afterISO = (await e(date.after)).evalue\n const day_ordinal = date.day.day_ordinal\n const ordinal = date.day.ordinal.value\n context.evalue = dateTimeSelectors_helpers.getNthWeekdayAfterDate(afterISO, day_ordinal, ordinal)\n } catch ( e ) {\n context.evalue = `Implement instatiate for this type of date, ${context.marker}. See the dateTimeSelectors KM ${where()}. ${e}`\n }\n }"
},
{
"match": "({context, isA}) => context.evaluate && onOrIs('dayOfMonth', context)",
"apply": "({context, isProcess, isTest, kms, isA}) => {\n try {\n const now = kms.time.api.now()\n const date = onOrIs('dayOfMonth', context)\n context.evalue = dateTimeSelectors_helpers.getNthDayOfMonth(removeDatesSuffix(date.day.value), date.day.ordinal.value || 1, removeDatesSuffix(date.month.value), now)\n } catch ( e ) {\n context.evalue = `Implement instatiate for this type of date, ${context.marker}. See the dateTimeSelectors KM ${where()}. ${e}`\n }\n }"
},
{
"match": "({context, isA}) => {\n if (!context.evaluate) {\n return false\n }\n if (isA(context.marker, 'onDateValue_dates')) {\n return true\n }\n if (isA(context.marker, 'dateTimeSelector')) {\n return true\n }\n }",
"apply": "({context, isProcess, isTest, kms, isA}) => {\n context.evalue = instantiate(kms, isA, isProcess || isTest || context.isTest, context)\n }"
}
],
"hierarchy": [
[
"day_dates",
"orderable"
]
]
}
],
"resultss": [
{
"extraConfig": true,
"operators": [
"([dateTimeSelector] (onDate) (atTime))",
"((day_dates/*) [dayOfMonth|of] (month_dates/*))",
"((day_dates/*) [dayAfterDate|after] (afterDateValue_dates/*))"
],
"bridges": [
{
"id": "dayOfMonth",
"after": [
"article"
],
"isA": [
"onDateValue_dates"
],
"before": [
"verb",
"onDate_dates"
],
"bridge": "{ ...next(operator), day: before[0], month: after[0], operator: operator, interpolate: '${day} ${operator} ${month}' }",
"check": [
"day",
"month"
]
},
{
"id": "dayAfterDate",
"after": [
"article",
"monthDayYear_dates"
],
"isA": [
"onDateValue_dates"
],
"before": [
"verb",
"afterDate_dates"
],
"bridge": "{ ...next(operator), day: before[0], after: after[0], operator: operator, interpolate: '${day} ${operator} ${after}' }",
"check": [
"day",
"after"
]
},
{
"id": "dateTimeSelector",
"after": [
"preposition"
],
"before": [
"verb"
],
"convolution": true,
"children": [
"onDate_dates",
"atTime",
"date_dates"
],
"bridge": "{ ...next(operator), date: after[0], time: after[1], interpolate: '${date} ${time}' }",
"check": [
"time",
"date"
]
}
],
"semantics": [
{},
{},
{}
],
"hierarchy": [
[
"day_dates",
"orderable"
]
]
}
],
"fragments": [],
"semantics": [],
"associations": [],
"summaries": [],
"learned_contextual_priorities": []
}