Natural language DLS engine

Natural language DLS engine

Как бы обернуть QLC так, чтобы человек, даже далекий от программирования, мог бы создавать запросы, возвращающие данные из таблиц Мнесиа.

Добываем dsl_engine.erl из гит-репозитория и начинаем:

X = dsl_engine:init(?MODULE,
["invoice","person"],
[{"invno", "invoice"},
{"estore", "invoice"},
{"goods_amount", "invoice",
{?MODULE,goods_amount}},
{"fname","person"}]),

после чего задаем вопрос:

{ok, S} = X("for all invoice tables "
"where goods_amount > 10000 and "
" estore == 42 "
"return the invno and goods_amount"),
generate(S).

Результат выглядит так:

"[{dsl_engine:goods_amount(X1),X1#invoice.invno} ||
X1 <- mnesia:table(invoice),
dsl_engine:goods_amount(X1) > 10000,
X1#invoice.estore == 42]"

« Вернуться к новостям