Documentation

Technical documentation of the Quasar project

Кубы знаний

Как книга становится знанием: поля записи, ассимиляция, свежесть и почему не векторная база.

Что такое куб

Куб — книга, разобранная один раз и навсегда. Не текст в базе, а записи с полями и указателями по
словам, лежащие в файле так, чтобы движок мог читать их отображением в память: 8,9 ГБ знаний
доступны сразу, без сервера базы и без индексации на лету.

Пример записи справочника C++:

имя: std::accumulate
объявление: template< class InputIt, class T > T accumulate( InputIt first, InputIt last, T init );
назначение: Computes the sum of the given value init and the elements in the range
подпись-доводы: InputIt~first~;InputIt~last~;T~init
подпись-результат: T
координата: cpp/algorithm/accumulate.html

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

Что у нас усвоено

КубЧто внутри
cppreferenceсправочник C++: 9 735 записей с подписями, примерами, требованиями
phpсправочник PHP: назначение, параметры, возврат, пометы устаревания
dictionary, abbyyтолковые словари русского
bilingual, words_enдвуязычные соответствия
morphology_ru, morphology_en, formsморфология и формы слов
grammar, grammar_en, rules_ruграмматика: Шведова, Виноградов, Оксфорд
logic, math, math_laws, theoremsлогика и математика
physics24 книги, 26 882 записи
wiki_ru1 877 905 статей
guides, plans, solutions, tasksруководства и планы решения задач
selfсобственный код движка: он знает сам себя
accents, sounds, spelling_en, en_stressударения, звучание, правописание

Всего 47 кубов.

Как книга становится кубом

  • Ассимилятор читает страницы книги и раскладывает их по полям — по паспорту книги, а не наугад.
  • Паспорт называет пометы: где заголовок, где назначение, где пример, чем помечено устаревшее.
  • Куб проверяется счётом: числа сверяются, законы вычисляются, битые буквы ищутся отдельно.
  • Каждая запись помнит координату — страницу, из которой она взята.

Свежесть

Тронул узел или инструмент — знания протухли: движок обязан пересобрать кубы, иначе экзамен мерил
бы старое. За этим следит отдельный сторож в защите, и обойти его нечем.

Почему не векторная база

Похожесть по числам не даёт координаты и не отвечает на вопрос «почему именно это». Нам нужен
довод, который можно проверить: имя страницы, её назначение, её подпись. Поэтому эмбеддингов у
нас нет — сознательно.