tpmkms
Version:
Reusable libraries for Entodicton, a natural language to json converter
54 lines (50 loc) • 1.25 kB
JavaScript
const { knowledgeModule, ensureTestFile, where, unflatten, flattens } = require('./runtime').theprogrammablemind
const { defaultContextCheck } = require('./helpers')
const tests = require('./evaluate.test.json')
const pos = require('./pos')
const gdefaults = require('./gdefaults')
const config = {
name: 'evaluate',
operators: [
"([evaluate] (value))",
{ pattern: "([value1])", development: true },
],
bridges: [
{
where: where(),
id: 'value1',
evaluator: ({context}) => {
context.evalue = 'value1 after evaluation'
},
development: true,
},
{
where: where(),
id: 'evaluate',
isA: ['verb'],
bridge: "{ ...next(operator), postModifiers: ['value'], value: after[0] }",
semantic: async ({context, e}) => {
context.response = (await e(context.value)).evalue
if (context.response) {
context.isResponse = true
}
}
}
],
};
knowledgeModule({
config,
includes: [pos, gdefaults],
module,
description: 'Explicit handling of evaluate',
test: {
name: './evaluate.test.json',
contents: tests,
include: {
words: true,
},
checks: {
context: defaultContextCheck(),
},
},
})