Кубы знаний
Как книга становится знанием: поля записи, ассимиляция, свежесть и почему не векторная база.
Что такое куб
Куб — книга, разобранная один раз и навсегда. Не текст в базе, а записи с полями и указателями по
словам, лежащие в файле так, чтобы движок мог читать их отображением в память: 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 | логика и математика |
| physics | 24 книги, 26 882 записи |
| wiki_ru | 1 877 905 статей |
| guides, plans, solutions, tasks | руководства и планы решения задач |
| self | собственный код движка: он знает сам себя |
| accents, sounds, spelling_en, en_stress | ударения, звучание, правописание |
Всего 47 кубов.
Как книга становится кубом
- Ассимилятор читает страницы книги и раскладывает их по полям — по паспорту книги, а не наугад.
- Паспорт называет пометы: где заголовок, где назначение, где пример, чем помечено устаревшее.
- Куб проверяется счётом: числа сверяются, законы вычисляются, битые буквы ищутся отдельно.
- Каждая запись помнит координату — страницу, из которой она взята.
Свежесть
Тронул узел или инструмент — знания протухли: движок обязан пересобрать кубы, иначе экзамен мерил
бы старое. За этим следит отдельный сторож в защите, и обойти его нечем.
Почему не векторная база
Похожесть по числам не даёт координаты и не отвечает на вопрос «почему именно это». Нам нужен
довод, который можно проверить: имя страницы, её назначение, её подпись. Поэтому эмбеддингов у
нас нет — сознательно.