Распределенная инженерия знаний

(на примере системы Webstructor)

Антон Колонин, 1 мая 2013 г.

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

Итак, можно сравнить две рассматриваемые модели. В «централизованном» случае, концентрация структурированной информации осуществляется в закрытых семантических базах данных крупнейших компаний, с доступом к ней посредством появляющихся на рынке «интеллектуальных» клиентов. При этом, «интеллектуальное пространство» оказывается фактически «замкнуто» в нескольких центрах.


В свою очередь, в случае «децентрализованной модели», знания равномерно распределяются по всей глобальной сети с возможностью их динамического перераспределения. Такая модель может быть обеспечена ростом находящихся «на руках» распределенных вычислительных ресурсов, при наличии соответствующего программного обеспечения. Ее особенностью является свободное перераспределение по сети как самих объемов структурированной информации, так и соответствующих функциональных возможностей обработки этой информации.


Потенциал возникновения подобной среды обусловлен выполнением следующих требований:

  • Наличие сети компьютерных агентов, как функциональной структуры и принципов ее динамической самоорганизации;

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

  • Для агента, возможность явно выражать знания, обладателем которых он является, с указанием их достоверности, а также отношений прав интеллектуальной собственности и конфиденциальности;

  • Возможность обмена информацией между агентами посредством унифицированного высокоуровневого языка (т.е. открытого протокола), в терминах единой основополагающей онтологии (с допущением “частичного восприятия”);

  • Разнообразие поведенческих сценариев (т.е. алгоритмов) агентов, с возможностью эволюционного отбора, в соответствии с получаемой обратной связью;

  • Нормативно-правовая база, относящая ответственность за действия компьютерного агента на оператора (физическое или юридическое лицо, контролирующее компьютерное оборудование, на котором исполняется программное обеспечение агента), возможно обуславливающая необходимость распространения кода программных агентов на принципах “open source”.

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


В приведенной модели, агенты-хранители (storage agents) обеспечивают распределенное (а также дублирующее) хранение структурированной информации а агенты-сборщики (collector agents) осуществляют ее сбор из неструктурированных источников (файловых систем и веб-страниц), а также устройств физической связи с внешним миром (датчики температуры и движения, микрофоны, видеокамеры итд.). Пользовательские агенты (user agents) осуществляют прямую и обратную связь с пользователями и операторами, а агенты-брокеры (broker agents) служат для маршрутизации сообщений между всеми (реализуя топологии распределенного хранения и поиска, например). Наконец, действующие агенты (actor agents) могут оказывать непосредственное воздействие на окружающий мир — публикуя новые веб-страницы, создавая файлы или воздействуя на управляющие устройства в физическом мире.

Вообще, все существующие вычислительные системы могут быть «собраны» из определенных конфигураций специализированных агентов — в тех или иных топологиях.


Например, на приведенной выше схеме, агент-брокер с набором агентов-хранителей реализует «облачное хранилище», а объединенные агентами-брокерами пользовательские агенты, агенты-хранители и агенты-сборщики представляют из себя поисковую систему с индексирующими «веб-пауками» (web crawlers). В свою очередь, объединение пользовательских агентов агентами-брокерами формирует социальные сети. Наконец, все перечисленное может быть интегрировано в универсальную среду агентами-брокерами «широкого профиля».

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

При массированном децентрализованном обмене структурированными данными типичной проблемой является синхронизация изменения информации. Например, если агент A сообщает о явлении P агенту B, а агент B сообщает о явлении Q агенту A, то — проблемы нет. Однако, типичной является ситуация, когда оба агента «спорят» об одном и том же, сообщая друг другу противоречивую или частично противоречивую информацию. Например, агент A сообщает о наличии отношений X и Y между P и Q, в то время как агент B утверждает, о наличии Y и Z но отрицает наличие X — кто кому должен верить? Очевидно, истиной, родившейся в споре, оказывается отношение Y, в то время как X остается субъективной верой A, а Z — субъективной верой B.

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


Фундаментальный граф знаний (foundation graph) обеспечивает «консервативное», или «закостенелое» мышление. Здесь хранятся понятия и отношения фундаментальные для агента в данный момент времени и определяющие принципиальные возможности его функционирования и восприятия. Часть этой информации может быть предопределена («hardcoded») при создании агента, а часть может формироваться на всей продолжительности его жизненного цикла методом тщательного отбора из других графов.

Граф общения (communication graph) описывает социальное окружение агента — его контрагентов и уровни доверия каждому из них. Причем, уровень доверия определяет как определение субъективной истинности исходящей от него информации (верю слепо, верю при наличии убедительных подтверждений, не верю вообще, итд.), так и параметры конфиденциальности, передаваемой ему информации (только к личному сведению, для распространения в узком кругу, для широкого распространения).

Граф фактов (evidence graph) содержит накопительную фактологическую базу в социально-временном пространстве, где каждый факт, понятие или отношение определяются интервалом времени и набором контрагентов их подтверждающих. Очевидно, эти данные могут подвергаться «сжатию» - кластеризацией временных диапазонов и объединением социальных контрагентов в группы. Также, данные могут удаляться в случае выявления высокой степени их достоверности и перемещения в фундаментальный граф, или «забыванием» («сбором фактологического мусора») устаревших или редко востребованных данных.

Граф образов (imagination graph) реализует «гибкое мышление» — содержит текущую, основанную на субъективном восприятии имеющихся фактов, воображаемую картину мира. Субъективность восприятия определяется как учетом уровней доверия к контрагентам, сообщившим те или иные факты, так и существующей базовой системой ценностей и понятий, содержащихся в фундаментальном графе. При этом, в случае, когда какая-либо часть поступивших фактов «не вписываются» в базовую систему, они могут быть отвергнуты графом образов, в то время как остальная часть фактов может быть воспринята. Последнее называется частичным восприятием.

Например, если A сообщает B, что «иллениус несколько напоминает азафуса», то B может воспринять информацию о том, что одно явление может напоминать другое в некоторой степени (X «несколько напоминает» Y) но отвергнуть сами являния («иллениус», «азафус»). После чего B может сформировать уточняющий запрос к A — что входит в отношения «являться» в качестве неопределенных переменных X и Y, получив ответ, что «иллениус и азафус являются ископаемыми трилобитами», а затем - что «трилобит является ископаемым морским животным», после чего частичное восприятие станет полным.


Далее, рассмотрим структуру представления самих знаний в графах агентов. Традиционной технологией описания смысловых графов («семантических сетей») является использование тернарных отношений или триплетов. В то время как триплетами могут успешно описываться ситуации типа «кошка это животное» или «Рузвельт это президент», то более сложные конструкции, оперирующие с субъективной, временной и условной информацией («Василий Иванов в детстве думал, что если есть много мороженого, то никогда не простудишь горло»), триплетами выражаются с трудом. Рассмотрим более простой пример.


Как мы видим, использование триплетов не позволяет описать вполне жизненную ситуацию, которая имеет право на существование в нашей личной адресной книге или базе данных кадрового отдела предприятия. В полном объеме, информация может быть представлена либо переходом к классической реляционной модели (c отношениями произвольной «арности»), либо введением дополнительных отношений, вовлекающих другие отношения и уточняющих их специализацию, область определения во времени, дополнительные условия и обстоятельства. Таким образом, возникает необходимость использования схемы иерархических вложенных гиперграфов и латерально пересекающихся подграфов (как это имеет место с иерархическими нейронными сетями и «синапсами на синапсах» в коре головного мозга человека).


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


Вместе с тем, при практической реализации, определенные категории связей (например - тип, время, источник) могут быть включены в качестве «системных» атрибутов в отношения, используемые для кодирования основной массы знаний.


В развитие обсуждавшихся теоретических предпосылок, была реализована система распределенной инженерии знаний «Webstructor». Еще в 1995-1996 годах в CTC Company был разработан процессор семантических графов (с базовой онтологией, реализующей систему прав доступа, обработчик форм и среду визуального программирования), на основании которого затем был реализован ряд прикладных систем. Ввиду недостаточной вычислительной мощности персональных компьютеров в те годы, низкая производительность приложений не позволила найти им практическое применение. В 1997-1999 годах в ProPro Group, был создан и реализован язык ORL для формального описания модели данных и бизнес-процессов одной крупной прикладной системы для финансового рынка. В 2001 году в рамках Webstructor Project была создан прототип обсуждаемой далее среды распределенной инженерии знаний на основе языка ORL. Наконец, в 2006 году в компании IT Solutions, Ltd. среда Webstructor была использована для разработки распределенной системы визуализации Space Work.

Итак, при разработке прототипа системы Webstructor, модель была упрощена таким образом, что были реализованы только «фундаментальный граф» и «граф общения», то есть предполагалось «полное доверие» агентов, обменивающихся «абсолютно истинными знаниями».


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

Реализация системы предполагала обмен информацией как по публичным соединениям на основе HTTP протокола, так и внутри корпоративной сети по протоколу TCP/IP. В том и другом случае, названные протоколы использовались как транспортные для обмена сообщений между агентами на языке ORL.


Были реализованы три типовых агента. Агент в виде сервлета (servlet), исполняющий роли брокера и хранителя, может обслуживать множество агентов апплетов и приложений по протоколу HTTP, как передавая информацию между ними, так и обеспечивая промежуточное хранилище данных. Агент в виде апплета (applet), исполняемый в веб-браузере, предоставляет пользовательский интерфейс к системе. Агент в виде приложения-сервера (server application) совмещает в себе роли хранителя и брокера и также предоставляет пользовательский интерфейс, что дает возможность создавать но основе последнего вида агента полноценные распределенные системы по принципу «равный-к-равному» (peer-to-peer).

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


Визуальный редактор онтологий позволяет редактирование любых графов с возможностью ассоциировать веб-ресурсы, цвета, формы и графические изображения с каждой из вершин. Также, возможно создание «сетей высоких порядков» (higher-order networks), например — для кодирования логических формул. При этом, существует возможность экспорта-импорта данных с использованием языка CycL. Приложение включает в себя интерактивную консоль, позволяющую взаимодействие с системой на языке ORL.


Например, приведенный выше граф кодирует информацию о том, что «факт, что тунец является рыбой, означает то, что он не является птицей или насекомым», выражаемый логической формулой (implies (isa Tuna Fish) (not (or (Tuna isa Insect) (Tuna isa Bird)))). Примечательно, что визуализация графов может осуществляться как в плоском (двумерном) представлении, так и объемном (трехмерном).

Идеи трехмерной визуализации знаний, с отображением локальных подграфов на отдельные визуальные представления привели к реализации полномасштабной системы трехмерного представления разнородной информации в рамках обсуждаемой распределенной системы. На базе среды Webstructor была разработана система визуализации Space Work.


В этой системе, каждый «вид» (view) отображает не просто подграф знаний, а полноценное объемное представление некоторого объема данных о физическом мире. Причем, разнородные физические данные могут быть объединены вместе как пространственно, так и с использованием различных методов визуализации (графики, карты рельефа и псевдо-рельефа, цвета, полутона, карты изолиний). При этом, использование гиперссылок (внутренних, для перехода из одного «вида» в другой, и внешних — для переключения из «мира» одного агента в «мир» другого), позволяет навигацию между отдельными «субъективными» виртуальными подпространствами в пределах глобального виртуального гиперпространства.


Используемый в системе для общения между агентами язык ORL (Object-Relational Language) изначально разрабатывался как способ компактной нотации произвольных структурированных данных, включая формализованные логические правила, декларирования бизнес-процессов и любые функциональные графы. В основу языка было положено следующее.

  • Синтаксис предполагает фундаментальные понятия, такие как вещь (thing), свойство (property), имя (name), численная или строковая константа, набор и запрос;

  • Наборы могут быть как обязательными (типа AND) так и необязательными (типа OR), а также неупорядоченными или упорядоченными (массив);

  • В рамках каждой реализации могут быть свои «базовые понятия», определяющие прикладную объектную модель в качестве «ключевых слов» языка;

  • Описание схемы (классов и атрибутов) осуществляются в том же языковом пространстве, что и описание данных (объектов и значений) – онтологическая прозрачность;

  • Описание функциональных схем (функций, методов и операторов) также возможно в том-же языковом пространстве однако предусмотрена тождественная «компактная» нотация;

  • Центральным элементом языка является запрос (соответствующий структурированному запросу в рамках реляционной модели), используемый в качестве “ссылки” при описании как данных, так и функциональных схем;

  • Позволяет гибкое описание любых гиперграфов.

Следующая таблица представляет, как «свободные» выражения на естественном языке могут быть переведены на формальные выражения ORL.

Here are the items A, B and C where A has properties X and Y while B and C are in relationship Z.

ITEM A,B,C;;

A HAS (X), (Y);;

B Z(C);;

In order to reach goal 1 one needs condition 2 and 3 to be held true while 2 can be true only if condition 4 happens.

CONDITION C2,C3,C4;;

GOAL G1 REQUIRES (C2),(C3);;

CONDITION(C2) REQUIRES (C4);;

Each morning need to perform this and that in order, having such and such done at once next.

PROCESS TIME “8:00”; REPEAT (DAILY);

ORDER DO THIS, DO THAT;,

FORK DO SUCH, DO SUCH;;;

What is that my stuff you mentioned yesterday or the day before?

STUFF(OWNER (ME), UPDATE (AUTHOR (YOU), {TIME “2013-03-22”, TIME “2013-03-21”});

What were the relationships between P and Q last year?

PROPERTY(OWNER (P), THING (Q));


Let me know once they roll out next version of the product.

DO EMAIL TO “me@at.org”;; WHEN PRODUCT(VENDOR (THEY)).VERSION CHANGE;;

По сути, как и нотации XML и JSON или язык LISP, ORL не предполагает ограничение языка конечным набором ключевых слов. Вместо этого, язык предполагает общие правила синтаксиса и пунктуации. Семантика, в свою очередь, предполагает наличие сущностей, имен, которые их могут обозначать, а также их свойств или отношений между ними. При этом, предполагается существование таких фундаментальных отношений, как наследование свойств и обладание свойствами. По сравнению с XML/RDF, нотация ORL гораздо более читаема человеком, хотя требует более «осмысленного» подхода на стороне компьютера. По сравнению с LISP, ORL имеет более богатый набор элементов пунктуации обозначающих наборы, простые и ассоциативные массивы.

Наконец, по сравнению с XML и JSON, ORL имеет встроенное в язык понятие запроса, позволяющее манипулировать атрибутами и методами классов и объектов не по ссылке или идентификатору, а по критерию удовлетворения запроса, По сути, выразительная мощность запроса ORL аналогична возможностям запроса SQL (если считать группы объектов наследующих набор свойств класса-родителя строками в таблице реляционной базы данных), только группы наборов условий, объединенных как OR и AND, семантически явно группируются средствами синтаксиса (различными видами скобок). Последнее обстоятельство превращает язык в эффективный инструмент для гибкого описания многоуровневых гиперграфов любой сложности, например — ссылаясь на абстрактные сущности как наборы объектов, с указанием временных или социальных ограничений.

Другой важнейшей особенностью ORL является его «онтологическая прозрачность», то есть то, что объектные метаданные и данные описываются на одном и том же языке - в отличие от большинства обычных языков программирования (кроме LISP и его производных) а также схемы XML/DTD для описания пространства XML. Например, совершенно разные онтологические модели (опирающиеся на различные «фундаментальные графы») были реализованы в упомянутых ранее проектах 1997-1999 и 2001-2006 годов — используя один и тот же языковый процессор.

В планах на будущее - реализация социально-доказательной модели представления знаний в полном объеме (реализацией субъективных и временных гиперграфов), и включение в модель поддержки многих человеческих языков (используемых для формирования имен понятий и сущностей). Это потребует, по видимому, введение в базовую онтологию системы Webstructor, наряду с именем (name) и пользователем (user), таких категорий, как время и язык (time и language, с поддержкой их на системном уровне. Также, планируется разработка полной спецификации языка ORL и поиск новых прикладных приложений для построения на базе системы Webstructor.


Приложения:

Предыдущий доклад «Глобальный компьютерный разум»

Презентация к этому докладу


Вместо послесловия

Stephen Wolfram talking about the Computational Future at SXSW 2013