На самом деле идея сохранения информации в структурированном виде стала занимать меня лет так десять назад. Я в те времена достаточно серьёзно занимался проблемами Искусственного Интеллекта, и даже пробился до некоторого результата. Разработал движок, который не только имел способность принимать решения по имеющейся Базе Знаний, но и довольно неполохо самообучался, прямо в процессе работы. Вообще там дело несложное, нужно только чётко понимать, чего хотим, и самое главное, чтобы не было проблем вот с этим "хотим". :) Кто хочет, тот всегда дойдёт. Так вот, движок-то имелся, пусть и на бумаге, в виде алгоритма, но этого было мало, слишком мало.
Искусственный Интеллект.
Ключевым элементом любого Интеллекта является не движок, а собственно ЗНАНИЯ, пусть и будут они в зачаточном виде. У человека от рождения имеется некоторый комплект знаний, причём это не только информация, полученная во время внутриутробного развития, это в первую очередь информация, идущая от его физиологии. И уже с опорой на эту начальную информацию в дальнейшем строится весь багаж знаний. Подробно объяснять не буду, вам это не надо. :) Таким образом, для хоть сколько-то работоспособного ИИ нужно кроме движка иметь и какой-то начальный комплект знаний. Причём чем этих знаний будет больше, тем быстрее, тем эффективнее будет последующий процесс самообучения ИИ. Конечно же, даже с обширной БЗ самостоятельно ИИ сможет постичь не так уж и много, ему всё равно будет необходим учитель, но ведь даже до школы ещё нужно как-то дорасти, не так ли? Железяка должна находиться хотя бы на интеллектуальном уровне трёхлетнего ребёнка, а не какого-нибудь земляного червяка. :) Вот и собственно проблема.
Чтобы ИИ сделал первые шаги, ему нужно создать Базу Знаний. Причём эта База Знаний должна быть не так уж и мала, потому что зрительный, слуховой, осязательный и прочие традиционные каналы получения информации для современного компа закрыты, и его обучение реально производить исключительно лишь с помощью речи. Чтобы ИИ сделал первые шаги, его нужно обучить языку. Причём не на уровне "стилуса" или "промта", а на серьёзном уровне. И вот тут-то я и понял, что попал. Движок сделать и отладить можно было за считанные месяцы или даже недели, а вот для создания начальной Базы Знаний требовалось лет пять, и это была ещё оптимистическая оценка. :) У меня не было пяти лет, чтобы заниматься такой фигнёй, мне нужно было чем-то питаться, одеваться и так далее. И я по прошествии достаточно сложных и продолжительных размышлений на оное дело забил. Честно говоря, я последующие пять лет всё равно спустил в унитаз, но это я сейчас знаю, а не тогда. :) Теоретически, если бы тогда решился на продолжение, то бы сейчас мог обладать достаточно совершенным инструментом. Продать его конечно было бы невозможно, все почему-то от ИИ желают "странного", но лично меня оный девайс наделил бы просто фантастическими возможностями, особенно если дополнить программный комплекс всей нужной перефирией. Хотя я и так немало получил, взять хотя бы то, что научился думать. :)
Monster Book нулевого поколения.
При работе над ИИ я осознал важность придания данным максимально "разжёванного" вида, и Monster Book самого первого поколения (будем называть его "нулевым") был создан для создания ассоциативных структур из слов. Я те времена помню очень смутно, потому что дело было давно, много воды утекло, да и всё это изрядно поблекло в связи с наличием более поздних куда как более жёстких воспоминаний. А старый архив я уничтожил, да. Вобщем те времена я помню очень смутно, больше в виде навыков, не спрашивайте меня об этом. :)
Тот изначальный Monster Book был довольно сложной штукой, он должен был сохранять не просто слова, а логические конструкции. Причём эти конструкции не "висели в воздухе", они должны были опираться на низкоуровневые элементы, имеющие при себе некоторые программно реализованные механизмы. И более того, ни одна логическая структура не могла строиться помимо этих базовых механизмов. Да, Monster Book изначально и являлся тем самым ИИ, точнее его Базой Знаний. По этой причине я и не буду его подробно описывать, будь даже что и вспомню. Вам это не надо. :) Главное же, что я хотел показать, это важность гибких структур в Базах Знаний. Конечно же, далеко не из любой подобной БЗ можно сделать ИИ, и более того, ИИ можно сделать лишь на основе специально созданной БЗ. Однако, любой ИИ работает на принципах, схожих с принципами действия Естественных Интеллектов, то есть человечьих разумов, и то, что хорошо для ИИ, хорошо и для человека. В разумных пределах, конечно же.
Связка между Monster Book'ами нулевого и первого поколений.
Monster Book нулевого поколения умер, так и не родившись, году так в 2002-2003м. После чего наступила долгая, многолетняя пауза, прервавшаяся лишь затыком в деле описания организационно-штатных армейских структур. И я сразу же вспомнил про свой большой молоток старый прожект, что и послужило основанием сделать ранее описанную, "первую", версию именно такой, какая она есть. Да, эта версия на порядки проще, чем изначальный Monster Book, и вообще, честно говоря, имеет с ним мало общего, но именно поэтому она и была сделана буквально с ходу. Хотя эта простота не прошла даром, для заявленных целей эта "первая" версия является слишком уж примитивной, и я её практически не использовал. Меня занимало создание более совершенного варианта.
Не, на самом деле я немножко наврал, эта "первая" версия родилась уже в процессе работы над куда более серьёзным вариантом, и является многократно упрощённой его версией. Дело в том, что задача стояла уж слишком неявная, я достаточно смутно понимал цели работы, и процесс разработки напоминал какие-то безумные метания. Вот я и решил притормозить с разработкой, вложившись в уточнение искомой цели. Эта "первая" версия является по сути дела исследовательским стендом, при её использовании я надеялся получить знание о первоочередных потребностях для заявленной задачи, чтобы следующая версия "попала в яблочко". И пусть она реально и является более поздней разработкой, но это то основание, на котором должен был родиться последующий более серьёзный вариант.
Однако, как я уже говорил, главной задачей была заточка под работу с организационно-штатными армейскими структурами, то есть сугубо специфическая задача, и "упрощённый" "первый" вариант Monster Book'а избавлен лишь от этой специфичности, без ущерба для всего остального, то есть является максимально общим решением. Для относительно простых задач, особенно неформализуемых, он очень и очень неплох.