Постановка задачи – один из самых важных разделов любого описания, любой теории, любой практической задачи. Откройте какую-нибудь книгу, посвященную бизнес-процессам, внедрению программного обеспечения или управлению проектами, и Вы увидите одно и то же правило: «максимально точно определяйте цель». Самыми дорогими являются ошибки и упущения, сделанные на этапе проектирования системы. Непродуманность результата сказывается на качестве и на эффективности теории. Поэтому начнем с цели.
Целью этой книги является описание модели данных, которая будет способствовать созданию интеллектуальных информационных систем. Я бы написал об «универсальной информационной системе», но это было бы слишком похоже на «сферического коня в вакууме», то есть на выхолощенную систему, якобы рассчитанную на любую сферу применения, но не реализующую ничего конкретного. Так что информационная система может представлять собой платформу или набор для создания систем, например, библиотеку или программный интерфейс. Такая платформа призвана сделать шаг вперед для улучшения существующих прикладных систем. Тем не менее, далее я буду применять термин «интеллектуальная или универсальная информационная система».
На уровне современных информационных систем модель данных, описываемая в этой книге, позволит системам гораздо гибче отражать их информационное наполнение, развить собственный словарь данных, снять жесткие ограничения на структуру данных, заложенную в современных моделях данных, при этом, не отрицая принципы их построения. Предлагаемая модель данных позволит модифицировать собственные структуры данных к индивидуальным требованиям пользователей. То есть, позволит не стоять им на месте, а развиваться органически и непрерывно в противоположность «методу водопада», который в настоящее время применяется в 95% систем для изменения структур данных.
К интеллектуальной информационной системе мы предъявляем ряд требований. Оговорюсь, что «интеллектуальная информационная система» на сегодняшний день выглядит как нечто несбыточное. Но, пожалуй, пройдёт 7—15 лет и то, что сегодня мы подразумеваем под «интеллектуальной» системой, станет самой ординарной и естественной информационной системой. При этом часть следующих требований относится к самому сегодняшнему определению «интеллектуальности» системы. Итак, интеллектуальная система должна обладать следующими свойствами:
– способность решать задачи различного уровня и свойства, то есть универсальные задачи. Система, обладающая знаниями о том, как решается задача, должна решать её на основе исходных данных универсальной структуры и универсальные интерфейсы взаимодействия с пользователем,
– способность найти решение задачи. Если система не может решить определенную задачу, но система обладает знаниями о решении более абстрактной задачи, части задачи или похожей задачи, она должна сформировать алгоритм решения задачи,
– способность запросить и получить решение задачи. Если система не представляет, каким образом она может решить задачу, либо ей не хватает данных для решения задачи, то система должна обладать возможностями узнать у другой похожей системы, как решать задачу,
– способность обучаться. Система с учетом уже полученных знаний должна их накапливать, и при необходимости пользоваться ими, не запрашивая вновь,
– способность планировать действия. Система должна иметь возможность декомпозировать задачи и вырабатывать план действий,
– способность анализировать ситуацию. Система должна анализировать, интерпретировать внешнюю ситуацию и понимать, каким образом внешняя ситуация измениться при влиянии на неё.
В общем и целом, эти цели системы сводятся к ряду задач, связанных с логическими операциями, операциями интерпретации данных, операциями по структурированию данных.
Основной вопрос в контексте данной книги: а для чего нужна такая система? Есть тысячи специализированных систем. Но день за днём продолжают появляться позаказные системы, а это означает, что специализированные системы не в состоянии решать задачи с должной мерой универсальности, гибкости и масштабируемости. Одним из ярких примеров являются системы управления проектами. В каждой из них можно найти «червоточину», несмотря на то, что управление проектами – чрезвычайно широко распространенная область, требующая автоматизации.
Также есть гораздо более эффективный механизм, чем какая-то универсальная система – это человек, которые отлично справляется с этими задачами. Однако по сравнению с человеком компьютер обладает свойствами, которые человеку неподвластны:
– точность запоминания данных и долгосрочность памяти. Со временем человек способен забывать информацию, в том числе и важную информацию. Компьютер хранит данные так, как они были сохранены.
– объем хранения данных. Компьютер может хранить множество данных, которые невозможно запомнить человеку. Например, в системах управления персоналом компьютерные системы могут хранить данные по десяткам тысяч сотрудников, когда-либо работавших в компании. Ни один человек не может сделать подобного.
– собственность. Компьютер является собственностью, то есть определенный человек и компания может быть уверены, что данные будут принадлежать человеку и компании.
– доступность. Информация, хранящаяся на компьютере доступна 24 часа в сутки 365 дней в неделю.
– надежность. Как говорит один из законов Мэрфи «Компьютеры ненадежны, но люди еще ненадежнее». Это свойство является следствием из принципов доступности и определенности структур данных.
– определенность структур данных. Компьютерная система должна позволять проанализировать себя пользователю. Внутренние механизмы компьютера должны быть понятны и прозрачны, то есть анализируемы. Напротив, форма хранения знаний человеком неопределенна. Механизмы хранения знаний человеком непрозрачны и недоступны для получения извне.
Разумеется, невозможно сравнивать компьютер и человека. Такое сравнение неизменно напоминает анекдоты вроде «чем девушка отличается от телевизора…» или же «чем отличаются орехи от мужа…». Тем не менее, использование универсальной информационной системы может дать следующие возможности:
– создание гибких и динамических систем принятия решения/управления некоторыми процессами и данными,
– выявление неочевидных связей между данными,
– существенное снижение затрат на программирование систем,
– создание баз знаний, модифицирующихся структур данных и самоорганизующихся процессов в информационных системах,
– существенное упрощение получения, интерпретации и формирования данных при взаимодействии системы с другими системами и с окружающим миром.
Реализация этих обширных планов невозможна без участия двух составляющих системы – данных и процессов, реализующих обработку данных. Эта пара реализует дуализм в информационных системах, выражающих статику и движение, соответственно. Модели данных, используемые на сегодняшний момент, не позволяют в достаточной степени удовлетворить требованиям, которые предъявят интеллектуальные информационные системы к этим моделям в силу множества ограничений по гибкости, заструктурированности и пр. Эти ограничения будут рассмотрены ниже. Получается, что жесткая структура данных, распространяет свое статическое влияние на процессы. Системам непременно потребуется новая модель данных, не отрицающая устоев существующих структур данных, но предлагающая принципиально новые подходы. Такая модель и является целью настоящей книги.
К сожалению, в теориях, описывающих глобальное взаимодействие множества агентов (независимых участников какой-либо системы, среды или социума) часто прослеживается идея «интеллектуального супа» или самозарождения жизни. Например, к таковым относятся макроэкономические теории, а в особенности теории, связанные с интеллектуальными технологиями. Некоторые теории предполагают, что достаточно создать некоторые начальные условия и структуры, и по прошествии некоторого времени мы сможем получить саморазвивающуюся интеллектуальную систему без дополнительных усилий по созданию такой системы. Такие теории считают, что для создания интеллектуальной системы достаточно создать «первичный бульон», а готовая система будет самостоятельным результатом эволюционных факторов и внешних влияний.
Анализ результатов работы подобных подходов говорит, что на практике в результате работы таких моделей никаких реальных результатов не появляется. «Интеллектуальный бульон» остаётся лишь набором ингредиентов, если только его не поражает гниль и плесень. Жизнь или не рождается сама, или ситуация с самостоятельным зарождением жизни похожа на теорему о бесконечных обезьянах («абстрактная обезьяна, ударяя случайным образом по клавишам пишущей машинки в течение неограниченно долгого времени, рано или поздно напечатает любой заданный текст»). Зато чаще всего такие декларации говорят о том, что теория недостаточно проработана и там, где теоретически должна зародиться самостоятельная жизнь, представления самих авторов теории о том, что же конкретно должно произойти в том месте, заканчиваются.
В этой книге я постараюсь ограничить себя от подобных недоработок.