База знаний

Каждый человек накапливает собственные знания, которые со временем может забыть.

Мало толку в том, чтобы получать массу знаний, а потом забывать их.

Гораздо правильнее систематизировать необходимее знания так, чтобы в любой момент получить к ним доступ.

## Что хранится в базе знаний

Это могут быть конспекты, бытовые знания, лайфхаки, личные ошибки и опыт, что где лежит и т.д. и т.п.

Записываться могут к примеру, такие записи:

на что обратить внимание при:

* покупке велосипеда, в начале его эксплуатации;
* покупке мяча и его эксплуатации;
* в путешествиях, поездках: что не забыть (*делать фотоснимки*);
* Лекарства: подкатегория: Рыбий жир: что помнить (хранить в холодильнике);

Всё это можно погуглить перед выполнением действия, но при этом будет потрачено время на поиск наиболее подходящей статьи на разных ресурсах, могут быть найдены статьи большого размера, а у людей не всегда есть время читать большие статьи.

Оптимальный вариант: окончательные, самые ценные выводы в несколько строк.

Накапливать такой опыт можно для себя, также можно использовать его для воспитания детей и прочих потомков.

Функционально база может содержать информацию, которой можно делиться с посторонними и которой нельзя делиться.

Соответственно, два этих вида информации должны или находиться отдельно или должен быть разграничен доступ.

## Требования к хранилищу базы знаний

Требования к инструментам для ведения базы знаний могут быть такие:

* скорость доступа к записям;
* скорость внесения записей;
* возможность быстрого поиска;
* импорт и экспорт информации;

Дополнительные требования:

* резервирование данных;
* доступа из разных мест, либо синхронизация через облако.

## Реализация

### В составе других проектов

Если включить статьи базы мелких и бытовых знаний в **энциклопедию важных знаний**, то:

* перемешается пространство имён статей важных и мелких знаний, их категорий;
* возможно, не всегда приятно видеть рядом статьи о здоровье, воспитании и о том, что нужно знать при покупке велосипеда.

### Локальная программа

недостатки:

* нет доступа, обычно, из нескольких рабочих мест через интернет;
* не удобно связывать статьи между собой ссылками.

На данный момент создана подходящая локальная программа **PInfoTree**.

### MediaWiki

Лучше всего для таких целей подходит движок MediaWiki.

### Особенности

* необходим хостинг с поддержкой баз данных;
* нужно ожидать ответ хоста около секунды, при выполнении каждого действия;
* избыточно мощный движок: 136 мегабайт на сервере, 13600 файлов;
* из-за этого на бесплатном хостинге не получится установить две энциклопедии, при необходимости.
* сложности при установке последних версий движка на бесплатный хостинг *(мало места, мало инодов, мало баз, нет импорта одним архивом, нельзя сменить версию php, не последних версиях при импорте не связываются статьи с категориями)*.

#### Плюсы

* Можно импортировать нужные статьи в другие проекты (fandom.com, локальный хостинг).

### Другие wiki-движки

* из них не получится импортировать статьи на Fandom.com.

### **DokuWiki**

Второй по мощности проект после MediaWiki.

* менее ресурсоёмкий;
* не нужно создавать базу данных;
* не будет импорта на сайт Fandom.com.

##### TiddyWiki

особенности:

* слишком прост и мало возможностей;
* нужно устанавливать кучу плагинов.

## Концепция "RTF в папках"

При реализации локальной программы для базы знаний необходим древовидный редактор записей по категориям.

В идеале он должен включать в себя:

менеджер записей, редактор, поисковик, возможности экспорта в другие форматы и импорта.

Можно хранить записи просто в файлах и папках, тогда остаётся древовидная структура.

Можно даже включить в Total Commander режим просмотра папок в виде дерева.

Фактически, тогда он может являться навигатором по файлам-записям древовидной структуры.

Есть древовидные органайзеры, которые и так сохраняют записи в отдельных папках на компьютере в виде дерева: OutWiker и MyTetra

Но у них эти файлы-записи не очень полноценно открываются внешними программами, например файлы xml, текстовые файлы с wiki-разметкой.

Предлагаю концепцию, в которой файлы с богатым форматированием хранятся по папкам, а древовидный органайзер обеспечивает навигацию по ним, редактирование собственными инструментами или внешними программами, поиск по тексту этих файлов и прочее.

Total Commander с включённым деревом каталогов - почти то, но не обеспечивает быстрый поиск в текстах.

(Кстати, тем кто работает с древовидными редакторами предлагаю попробовать и Total Commander переключить в древовидный режим).

Формат хранимых файлов предлагаю rtf, он межплатформенный, его чтение и редактирование легко организовать в создаваемых программах и внешними программами.

Также формат rtf удобно использовать для организации импорта-экспорта между разными программами, это позволит пользователям безболезненно мигрировать с одной программы на другую.

В концепции "всё по папкам в rtf-файлах" если рухнет древовидная программа, перестанет работать, то все записи останутся доступными.

Какая тогда польза от такого древовидного органайзера?:

сохранение текстов в базе для быстрого поиска, инструменты навигации по дереву, быстрый просмотр без закрытия файлов, автоматическое создание файлов там где нужно, импорт-экспорт, быстрая архивация, публикация, при необходимости.

Может быть кто-то из разработчиков заинтересуется реализацией такой концепции.

Я пока сделал такую программу - BSci, ссылку можно найти здесь.

Текст всех статей хранится в одной базе без форматирования и позволяет выполнить быстрый поиск по тексту всех статей. А текст статей с полным форматированием также имеется.

Призываю разработчиков подобных программ реализовать у себя импорт-экспорт через дерево папок с rtf-файлами, для реализации обмена информацией между пользователями и миграции пользователей с одних программ на другие.

Кстати, единый формат обмена данными используется, к примеру, в генеалогии, для обмена данными между разными генеалогическими программами, формат gedcom.

## Вывод

Предлагаю:

* Для сохранения персональных знаний использовать локальную программу с древовидной структурой, например **PInfoTree**.

С другими можно ознакомиться на форуме: древовидные программы, структурирование информации;

* Для ведения общей базы знаний какого-либо сообщества предлагаю использовать MediaWiki;
* Бытовые знания вести совместно с проектом **Энциклопедия важных знаний**.