Documentation

Technical documentation of the Quasar project

Органы и как их спрашивают

Заявки с основанием, выбор по правилу, способности и след решения.

Что такое орган

Орган (узел) — самостоятельный дом со своим знанием и своими словами. Их 37: справочник C++,
справочник PHP, словарь, морфология, грамматика, логика, причина, следствие, память, планировщик,
собеседник, браузер, файлы, зрение, безопасность, правописание, перевод и другие.

Орган не знает ни о ядре, ни о соседях. Он умеет три вещи: заявить, ответить и
услужить.

Заявка: чем орган объясняет своё право отвечать

Когда дела не вышло, ядро показывает вопрос всем органам и собирает заявки. Заявка — это не
«я хочу», а уверенность и основание:

заявка 0.95 толкование      | точное совпадение: понятие «кошка» ← translator_rus-rus#кошка
заявка 0.93 php             | об этом есть страница документации: array_sum
заявка 0.70 морфология      | слово «кошка» есть в моих формах — могу разобрать
заявка 0.94 причина         | спрошено о причине: объясняю связью толкований

Основание обязательно. Заявка без основания не считается: «могу» без «почему» — это угадывание.

Как выбирается ответчик

Не по громкости. Исход решает правило, и порядок правил — данные, а не код:

  • правило отбирает кандидатов по признаку (способность, род узла, слово в основании);
  • среди отобранных побеждает сильнейший по уверенности;
  • ни одно правило не подошло — исход не выдумывается, а объявляется нехваткой правил.

Раньше побеждал первый подошедший, и ответ зависел от порядка подключения узлов: на «что такое
сочинение» латышский словарь опережал книгу о сочинениях. Порядок подключения — не довод.

Неоднозначность разрешает человек

Если одним правилом прошли несколько областей, движок не берёт сильнейшую молча, а спрашивает:
о какой области речь.

Способности: как органы спрашивают друг друга

Орган не зовёт соседа напрямую — он просит способность у ядра, и ядро находит того, кто её
даёт:

СпособностьЧто отвечает
лемманачальная форма слова
часть речипомета морфологии
определениетолкование с родом источника
речькак сказать по-русски то, что решено
сказанноечто человек говорил в этом разговоре
доказательство«да» или «нет» на утверждение, с источником
поручениерука движка: записать, собрать, запустить, прочитать

Так узел остаётся сменным: он объявляет, что даёт и что ему нужно, а сеть связывает их сама.

След: почему выбран именно этот

Каждый ход оставляет след, и его видно снаружи (GET /api/trace):

  • все заявки с уверенностью и основанием;
  • кто выбран и каким правилом;
  • ход работы: что наблюдалось, что отвергнуто, что проверено делом;
  • для расследования — дело целиком: цель, связи, версии, чего не хватает, вывод.

Молчаливый отбор неотличим от угадывания. Поэтому движок обязан показывать, чем он мерил.