В предыдущих главах мы подходили к рассмотрению интеллектуальных систем сверху вниз. Теперь же настало время подойти к проектированию системы в обратном направлении, «снизу вверх», который обычно определяет ограничения и общепринятые стандарты к построению систем. Как и прежде, мы будем основываться на требовании универсальности при проектировании интеллектуальной информационной системы. И в этом случае нам понадобится рассмотреть базовые структуры данных и процессов, а также подходы к управлению данными и процессами, которые должны быть частью универсальной модели данных.
Информатика известна как наука о способах получения, накоплении, преобразовании и использовании информации. В упрощенном понимании эта наука рассматривает информацию как последовательность битов, а операции – как различные логические преобразования.
Нам необходимо определиться с основополагающими вопросами, связанными с определением информации. Это следует сделать, поскольку в большинстве случаев происходит смешение понятия информации и данных. Так что давайте начнем с определений.
Информация – это сведения о некоторых объектах и процессах, которые могут храниться и передаваться между агентами информации. Например, годовые кольца на спиле дерева отражают информацию о его возрасте. Сами кольца являются данными, их носителем и, следовательно, агентом – дерево. Мы расшифровали эти данные о возрасте – это наша информация, мы ее носители. Также информация может трактоваться не только как сведения, но и как знания о некоторых объектах и процессах. Информация располагается на некотором носителе и является неотделимой от носителя, то есть информация не существует без носителя, а при разрушении носителя, разрушается и информация.
При этом информация может отражать некоторые факты или быть самостоятельной. Например, в поле мы можем увидеть некоторый механизм неизвестного нам назначения. С помощью зрения мы «сняли» этот механизм, следовательно, информация о существующем объекте отразилась в нашей памяти. Теперь мы знаем, что существует такой объект определенной формы, но непонятного назначения. С помощью умозаключений мы можем интерпретировать наличие и назначение этого объекта. Например, то, что он стоит в поле, означает, что это объект сельскохозяйственного назначения. Такие выводы являются интерпретацией, которая позволяет восстановить смысл вещей, не определенный явным образом.
Информация не является лишь отражением некоторого физического факта, поскольку она также описывает умозрительные объекты. Например, понятие конкатенации как операции «склеивания» объектов данных линейной структуры не имеет отражения в материальном смысле. Эта операция может быть спроецирована на некоторые физические объекты в качестве примера, но в оригинальном своем значении она является умозрительной операцией.
Данные – это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе. Другими словами, данные – это формализованная или закодированная информация. При этом данные сами по себе являются информацией, поскольку они являются своего рода физическим объектом. В нашей реализации интеллектуальной системы мы стремимся к тому, чтобы закодировать любую информацию в данных, однако это не является самим собой разумеющимся процессом.
Данные являются некоторым кодом, который может храниться, транслироваться, копироваться и, в свою очередь, являться основой для хранения информации как, например, строковые данные. В таком случае информация и данные являются идентичными, при этом данные являются информацией. Но не наоборот, поскольку информация не является формализованной, как данные.
Слово «данные» происходит от латинского «datum», буквально означающего «факт», однако в настоящее время «данные» не определяются как факт. Данные не трактуются как некоторая данность, определенные свершившиеся или заданная информация, их современная трактовка связана с определенностью – типизированностью, упорядоченностью, формализованностью.
В контексте этих двух определений мы можем понять, что предметом исследований информатики обычно являются именно данные, а не информация. То есть основным объектом изучения информатики является «очищенная», типизированная или подготовленная информация в виде данных. Однако постановка задач, их выработка и анализ производится именно на менее формализованном уровне – на уровне информации. В частности, далее мы рассмотрим семантическую модель данных, описывающую данные, но с помощью информации.
С учетом вышесказанного прямо сейчас мы находимся на очень неявном водоразделе, где перемешиваются информация и данные. С одной стороны, мы не можем поставить знак тождественности между информацией и данными, а с другой стороны, все технологии, связанные с данными, называются информационными технологиями. И ведь действительно, данные непосредственно связаны с информацией. Таким образом, пока мы не погрузились в пучины одного и другого, давайте на берегу договоримся о том, как разделять эти понятия.
Информация не является типизированной, не имеет ограничений по размерности. Всё, что касается типов (например, целочисленные значения), для информации является свойством, но не определяющим типом. Подробнее эти аспекты будут рассмотрены ниже. Данные, напротив, основываются на типах и конкретной размерности.
Процедура реализации информации в данных будем называть кодированием. А процедуру «декодирования» данных в информацию, то есть наделение данные смыслом (семантикой) будем называть интерпретацией данных.
Также существенным различием между информацией и данными является субъективность. Данные являются объективными, то есть мы воспринимаем их такими, какие они есть – все видят предметы в окружающем мире примерно одинаково, и зрение транслирует нам объективные данные. Информация же является субъективной в силу того, что каждый человек или группы людей со схожими взглядами, знаниями и понятиями интерпретируют и рассматривают один и тот же предмет по-разному. Например, маркшейдер рассматривает землю как породу, земледелец оценивает её плодородность, а строитель – плотность грунта для постройки дома.
Обратимся к вопросу об элементарном представлении информации.
В обычном, традиционном понимании элементарной единицей информации является бит. Однако это не единица информации, а единица данных! Давайте разберемся, в чем тут разница. Информация – это сведения или знания. Следовательно, информация представляется нам как некоторое смысловое выражение.
Например, «Лампочка горит» или «Лампочка не горит» будет элементарным значением состояния лампочки. Это состояние лампочки мы можем закодировать в единицу данных, а именно в бит. В то же время значение некоторого абстрактного бита говорит лишь о его собственном состоянии. Мы про него можем сказать, что «значение бита такой-то ячейки памяти – 0», это будет интерпретацией данных, но на абстрактном смысловом уровне. Если же мы знаем нагруженность этого бита состоянием лампочки, то посмотрев на значение бита, мы можем сделать вывод о состоянии лампочки.
Отношение информации к данным состоит в том, что информация обладает смыслом. Данные не связаны со смыслом, но могут являться основой для получения информации. То есть, информация может быть закодирована в данных. Также данные могут восстановить информацию, если они нагружены смыслом. В соответствии со смысловой нагрузкой данные могут быть интерпретированы. Кроме того, данные могут нести представление информации, когда они являются текстом некоторого сообщения, наделенного смыслом.
Например, предложение на русском языке несет смысловую нагрузку. Мы можем использовать Unicode или другую кодовую страницу для преобразования символов в языковые данные. В этом случае, используя преобразование данных в символы, мы получим информацию, закодированную в данных. Однако если мы применим другую кодовую страницу для расшифровки – например, ASCII к тексту в Unicode, мы не сможем понять содержимое данных, а, следовательно, не сможем извлечь смысл из кодов.
Ремарка: перекодированные данные в текст являются информацией только если закодированный текст имеет смысл.
Другим примером является реверс-инжиниринг программного кода, также известный как декомпиляция. При анализе чужого программного кода можно проследить логику, но невозможно понять, почему программа была написана именно таким образом, и чего хотел добиться автор определенными программными выражениями. Код, сгенерированный в языках программирования по технологии. Net корпорации Microsoft, является байт-кодом, а, соответственно, к нему может быть применен реверс-инжиниринг, который восстанавливает названия переменных, внутренних процедур, внутренних классов и пр. Всё это является хорошим материалом для понимания смысла программы, поскольку придает семантическую (смысловую) ясность. Разработчики, всячески стремящиеся противодействовать подобного рода анализу, придумали специальные программы обфускаторы, которые заменяют эти названия на другие, не несущие никакого смысла, а также которые противодействуют реверс-инжинирингу кода, поскольку добавляют в идентификаторы – названия переменных, методов и пр. запрещенные символы с точки зрения языков программирования (спецсимволы, пробелы и пр). Люди, всё же желающие анализировать код придумали программы деобфускаторы, которые позволяют сделать корректным код после декомпиляции при его реверс-инжиниринге. Разумеется, оригинальные названия переменных и других элементов кода деобфускаторы вернуть не в состоянии. Получается, что обфускаторы уничтожают смысл кода программы через искажение названий идентификаторов (переменных, названий процедур, классов и пр.), и, следовательно, восстановить смысл можно только из анализа операций с определенным методом, свойством, классом, переменной и пр.
Таким образом, само понятие битов и других структур данных, насколько являются необходимыми для хранения информации, настолько же они являются техническими структурами.
Если с единицами данных всё более-менее понятно, в таком случае что является единицей информации? Каким образом мы можем выделить смысл, и каким образом мы можем определить его элементарную составляющую?
Мышление человека основывается на образах. Образы тесно связаны с понятиями. И в целом, понимание образов происходит от чувств человека как источников восприятия мира. Например, лимон ассоциируется с желтым цветом, продолговатой формой фрукта и его кислым вкусом, который мы можем тут же представить.
Образ является единицей информации, но он слабо определяем. По большому счёту образ – это собирательный элемент информации, поскольку образы связаны с различными ощущениями от различных органов чувств, и, кроме того, часть представлений человека вообще не связывается с чувственными образами, например, различные абстрактные понятия, такие как, понятие «данные» или «наука». Такие понятия назовем аналитическими. Кроме того, образ нельзя назвать элементарным элементом информации в представлении человека, поскольку образ – это обычно целая сложная структура объектов в визуальном представлении, букет составляющих в обонятельном представлении, композиция звуков в аудиальном представлении и т. д. Образы часто сопоставляются с некоторым словом, то есть одно слово описывает сложный образ в виде набора объектов. Например, при слове «карта» Вы можете себе представить топографию какой-либо местности.
Основываясь на представлениях о логике мышления человека, а также о логических операциях, можно сделать следующее заключение. Возьмем какое-либо слово в смысле понятия или выражения. Выбранное понятие или выражение нагружено связями с другими словами, свойствами, понятиями и представлениями. Если последовательно применять к выбранному слову операцию абстрагирования, то наше понятие будет терять связи со свойствами или с другими понятиями. В конце концов, оно будет представлять собой только одно название, даже без какого-либо определения в форме словесного выражения. Например, представим лимон. Последовательно отбрасываем от понятия лимон его свойства – цвет, структуру, вкус, физическое представление, запах и т. п. Это можно делать через последовательные превращения лимона в более абстрактные понятия – «цитрусовые», фрукты, плоды, растительные продукты и так далее. В результате мы получаем понятие «нечто».
Объединяя понятия – от самого абстрактного и до самых сложных, имеющих сотни связей, можно дать им единое название – «знак».
Знак может быть абстрактной сущностью без каких-либо связей, и также он может иметь произвольное количество связей, в том числе репрезентации в виде чувственных образов. Таким образом, знак, с одной стороны, является элементарной единицей информации и, с другой стороны, может отражать любое сложное понятие.
Для простоты понимания знак можно воспринимать как какой-либо объект или понятие.
При этом знак является всеобъемлющей и единой структурой информации за счет возможности его связывания с другими знаками. Это очень важная особенность знака как структуры, поскольку с использованием такого представления знака в данных пропадают ограничения на структуру данных – на глубину свойств и связей. Отсутствие ограничений – очень важная характеристика, которая также имеет влияние на объединение данных и метаданных в единую структуру.
Одним из главных свойств знака является репрезентация. В психологии репрезентация определяется как уподобление или образ, дающий впечатление об оригинале. Репрезентации формируются у человека через различные репрезентативные системы: визуальную, аудиальную, кинестетическую и т. д. Образ, который мы обсуждали выше, является свойством знака как один из вариантов репрезентаций – мыслительной имитации или ассоциации с предметом.
Давайте будем реалистами, и не будем углубляться в такие сложные и неоднозначные задачи, как определение, каким образом следует хранить представление запаха или вкуса, поскольку они потребуют решения задач по идентификации запаха и вкуса. Выше я сделал оговорку, что мы отойдём от этих тем, поскольку они не являются основным объектом исследования.
Вместе с простыми, и со сложными визуальными, аудиальными и другими образами мы воспринимаем, распознаем и выражаем понятия через естественный язык. А это значит, что и текст на естественном языке является репрезентацией, поскольку через раскрытие существа понятий на естественном языке, будь то английский, русский или какой-либо другой язык, мы можем воспринять, проанализировать, воспроизвести, понять и транслировать информацию о некотором объекте.
Естественный язык служит универсальным средством представления информации. Тем не менее, язык не всегда является наилучшим средством выражения информации. Во-первых, естественный язык в силу своей универсальности в некоторых случаях менее эффективен, чем специализированные средства. Этот факт хорошо известен в различных областях деятельности, например, в музыке, где существует своя нотная грамота. Во-вторых, естественный язык ориентирован на вольный стиль общения и не обеспечивает необходимой точности регистрации и передачи информации. Но следуя требованиям универсальности, мы придерживаемся естественного языка как наилучшего средства выражения образов.
Знак не может быть изолированным объектом, он должен существовать в некоторой среде. Будучи связанным с другими знаками, назовём её информационной средой. Сюда входит язык, контекст, специфика употребления знака и пр.
Ранее я подробно описал агентов, чтобы показать, что информация в основном не является уделом закрытой архитектуры. В силу своего основного свойства она должна распространяться. Но при этом информация может преобразовываться, видоизменяться внутри и вне агентов. Поэтому информация может различаться внутри и вне агентов.
Информация может находиться внутри агента – это та информация, которой обладает агент. Назовем её собственной информацией.
Когда агент получает информацию извне, он должен принять и согласовать её в соответствии со своими внутренними образами, знаниями и представлениями. Этот процесс называется восприятием или перцепцией.
Если агент, напротив, хочет передать собственную информацию во вне, процесс формирования сообщений называется вербализацией. Вербализация и восприятие являются базовыми коммуникационными процессами. Далее в основном мы будем рассматривать собственную информацию агента.
Уже имеющиеся у агента репрезентации могут быть им вербализованы. Вербализация – это словесное описание переживаний, чувств, мыслей, поведения. Вербализации всегда происходит в форме словесного описания. Описание через звуки, жесты и пр. относится к невербальной коммуникации – неформальной, нетипизированной, сложнее поддающейся формализации, несмотря на то, что роль невербальной коммуникации у людей очень высока, через нее передается и почерпывается до 40—50% информации.
Например, съев кусочек лука, вы можете сказать, что это лук, что он горький, что он щиплет слизистую оболочку. Таким образом, вы идентифицировали лук на вкус и вербализовали свои чувства. С другой стороны, существует огромное количество понятий, которые могут быть однозначно вербализованы человеком, но непонятно, каковы могут быть их исходные (чувственные) репрезентации у человека, поскольку они различаются в зависимости от мироощущения, способа запоминания знаний. Это нематериальные понятия, такие как описание характеров людей, понятие бесконечности, непрерывности и т. д.
Вербализация чувств и образов человеком является неоднозначным и неформализуемым процессом, зависящим от конкретного индивидуума, от его мировосприятия, от темперамента и множества других личностных факторов. В то же время, вербализация – это процесс, присущий именно человеку, ведь только человек использует естественный язык. При этом представление знаний внутри самого человека, если можно так выразиться, является скрытой структурой для самого человека. И сама вербализация чувств не всегда подвластна человеку, однако это развиваемое качество – четко и тонко выражать свои чувства.
Человек воспринимает образы, помнит их, обращается к ним как к первоисточникам собственных выводов, мыслит образами. Однако образ – это композитное, сборное понятие, поскольку образы являются результатом отображения реальности органами чувств в представлении и восприятии человека. Человек по-разному помнит визуальные и аудиальные образы. При этом чувственное восприятие является очень важной, хотя и слабоформализуемой частью жизни человека. В первую очередь человек получает опыт через органы чувств, через чувственные переживания и впечатления. Человек делает проверку и оценку предметов прежде всего через органы чувств: нам так важен «мягкий» пластик в автомобилях, при выборе автомобилей же так важен цвет кузова и салона. Для проверки, жесткий ли предмет, мы нажимаем на него и прислушиваемся к своим тактильным ощущениям.
С одной стороны, чувственные ощущения дают нам элементарную информацию о свойствах предметов, а с другой стороны, они дают нам то, что в обозримом будущем не получат компьютеры – а именно эстетическое восприятие чувственной информации: картины, музыкальные произведения, высокая кухня, парфюм.
И всё-таки образы являются «сырой информацией» (raw information): образы идентифицируются человеком, однако для полноценной аналитической деятельности они должны быть не только идентифицированы, но и интерпретированы. До этого процесса вся мыслительная деятельность человека будет похожа на мыслительную деятельность животных, которая в большей своей части основывается на рефлексах и инстинктах. С помощью образов не могут строиться обобщения, делаться выводы. И всё это из-за того, что образов недостаточно для аналитической деятельности, поскольку большую часть в человеческом мышлении занимают понятия. Понятия не имеют чувственной репрезентации – образа, поскольку являются аналитическими или искусственными понятиями, например, «интеллект», «обычай», «время», «математика» и т. п.
Задача идентификации образов в форме распознавания образов как один из этапов восприятия образов – это отдельная и достаточно сложная тема для информационных систем. И в этой книге я не буду уделять достаточно внимания этой специализированной теме. Мы отделим эту задачу от задач управления знаниями, а интеллектуальная система может оперировать уже подготовленными репрезентациями на уровне естественных языков, на уровне общепринятых понятий.
Через процесс интерпретации информации образы могут быть сопоставлены с внутренними представлениями и выражены словами на естественном языке. При этом внутренние представления будут являться знаками, а слова – репрезентацией знаков.
Помимо хорошего средства выражения понятий, естественный язык является универсальным средством коммуникации между людьми (имеется ввиду вербальная коммуникация), и поэтому образы, превращенные в языковые конструкции – в слова, фразы, предложения – являются общепринятыми в обществе, а, следовательно, в разумной степени очищенными от субъективного восприятия и смысловой нагруженности агентом. Однако самое ценное от использования вербализованных образов в виде языковых конструкций – это возможность использования самого языка как такового, поскольку он:
– хорошо кодируется в данных,
– хорошо (или, как минимум, в достаточной степени) структурирован,
– является основой для коммуникации людей,
– является полным с точки зрения выражения смысла. То есть любое явление может быть выражено в языке с достаточной точностью.
Вербализации образов в форме языка, в свою очередь, сами могут рассматриваться как репрезентации. Поэтому в дальнейшем будем рассматривать репрезентацию именно как репрезентацию в естественном языке. В других случаях буду делать оговорку.
В философии мы можем встретить идеи, связанные со значением языка – в частности, понятие логоса как закона бытия, введенного Гераклитом в греческой философии, онтологии как раздела философии о принципах бытия, его формах, структурах и закономерностях.
Помимо сказанного выше, не могу не упомянуть, что язык лежит в основе христианства. Первая строка книги Нового завета в Евангелии от Иоанна – это «В начале было Слово, и Слово было у Бога, и Слово было Бог» (In the beginning was the Word, and the Word was with God, and the Word was God). Это указывает нам на то, что лишь смысловая составляющая, выраженная в естественном языке, является основой всего сущего, и веры, как его части. Слово в христианстве есть отражение Логоса. Слово Бога обретает плоть и становится «сыном» Бога, воплотившимся в Боге-Сыне Христосе: «И Слово стало плотию, и обитало с нами, полное благодати и истины; и мы видели славу Его, славу, как Единородного от Отца» (Евангелие от Иоанна, 1.14).
Название этой главы указанно именно как «организация информации», а не структурирование информации, поскольку структура подразумевает достаточно жесткие отношения между элементами. Организация же определяет принципы построения взаимоотношения между элементами информации.
Другими словами, структура обычно связана с отношениями элементов в некотором объекте. Но мы говорим про саму модель взаимодействия. Например, мы можем определить структуру данных в реляционной модели данных: сущность «класс» связана с сущностью «ученик» связью 1:n (один ко многим, то есть в одном классе учится много учеников). Но в данном случае мы хотим обсудить именно принципы выстраивания структур, то есть саму модель организации информации.
Принципы, по которым организуется информация, обычно определяются через информационную модель. Поскольку с точки зрения терминологии информация и данные внутри агента очень близки, а информация кодируется в данных, модели данных являются информационными моделями, хотя информационные модели напрямую и не предназначены для явного описания структур и взаимоотношений между структурами данных. Заметьте, что до сих пор мы не определяли правил, по которым информация должна быть спроецирована в данные.
Одна из задач, которые мы поставили себе для организации информации, состояла в том, что знак как элементарная частица информации должна иметь возможность быть изолированной, но также и иметь возможность включать в себя другие знаки как свойства.
Также организация информации и, следовательно, модель информации зависит от операций, которые должны проводиться с элементами информации.
Как мы рассмотрели выше, с помощью естественных языков можно выразить подавляющее большинство информации, которой владеет человек. Исключением могут являться собственные чувства, музыка и пр. – они могут относиться к классу образов, которые «нельзя выразить словами» (хотя обобщенно с помощью языка можно описать и это). Получается, знаки в своем взаимодействии должны иметь возможность представить всё, что описывает язык в том или ином виде, с той или иной подробностью.
В деталях к знаку можно предъявить следующие требования:
– Знак должен иметь возможность выразить и представлять собой как индивидуальное значение, так и комплексную, сложную структуру информации. В частности, знак должен включать в себя свойства знака.
– Знак должен уметь описывать предметы, действия и операции.