Распределенная инженерия знаний (на примере системы Webstructor) Антон Колонин, 1 мая 2013 г. В предыдущем докладе о глобальном компьютерном разуме на сибирском форуме «Индустрия информационных систем» я рассказал о перспективах централизованной глобализации структурированных знаний и формирующейся на этой базе модели компьютерного разума. На следующий день, тема была продолжена сообщением об «альтернативной» или «дополняющей» модели - децентрализованной глобализации знаний, а также одном практическом подходе к ее реализации. Итак, можно сравнить две рассматриваемые модели. В «централизованном» случае, концентрация структурированной информации осуществляется в закрытых семантических базах данных крупнейших компаний, с доступом к ней посредством появляющихся на рынке «интеллектуальных» клиентов. При этом, «интеллектуальное пространство» оказывается фактически «замкнуто» в нескольких центрах.
Подобная функциональная среда может быть сформирована набором разнородных агентов, играющих следующие типовые роли.
Вообще, все существующие вычислительные системы могут быть «собраны» из определенных конфигураций специализированных агентов — в тех или иных топологиях.
При всех различных специализациях описанных агентов распределенного разума, предполагается общность способа, которым они обмениваются информацией друг с другом. Причем общность способа информационного обмена предполагает не только единый протокол или язык общения, но и некую единую систему фундаментальных понятий о мире и друг друге, а также — механизм восприятия или неприятия информации поступающей извне. И здесь нужно остановиться на социально-доказательной модели представления знаний а также частичном восприятии. При массированном децентрализованном обмене структурированными данными типичной проблемой является синхронизация изменения информации. Например, если агент A сообщает о явлении P агенту B, а агент B сообщает о явлении Q агенту A, то — проблемы нет. Однако, типичной является ситуация, когда оба агента «спорят» об одном и том же, сообщая друг другу противоречивую или частично противоречивую информацию. Например, агент A сообщает о наличии отношений X и Y между P и Q, в то время как агент B утверждает, о наличии Y и Z но отрицает наличие X — кто кому должен верить? Очевидно, истиной, родившейся в споре, оказывается отношение Y, в то время как X остается субъективной верой A, а Z — субъективной верой B. Предлагается решать обозначенную проблему реализацией социально-доказательной модели представления знаний, где истинность той или иной информации для субъекта определяется совокупной истинностью данной информации для всех его контрагентов, с учетом уровня доверия каждому из них. Для этого предлагается выделение четырех сегментов (подграфов) общего поля знаний (гиперграфа) каждого агента, как показано на следующей схеме.
Граф общения (communication graph) описывает социальное окружение агента — его контрагентов и уровни доверия каждому из них. Причем, уровень доверия определяет как определение субъективной истинности исходящей от него информации (верю слепо, верю при наличии убедительных подтверждений, не верю вообще, итд.), так и параметры конфиденциальности, передаваемой ему информации (только к личному сведению, для распространения в узком кругу, для широкого распространения). Граф фактов (evidence graph) содержит накопительную фактологическую базу в социально-временном пространстве, где каждый факт, понятие или отношение определяются интервалом времени и набором контрагентов их подтверждающих. Очевидно, эти данные могут подвергаться «сжатию» - кластеризацией временных диапазонов и объединением социальных контрагентов в группы. Также, данные могут удаляться в случае выявления высокой степени их достоверности и перемещения в фундаментальный граф, или «забыванием» («сбором фактологического мусора») устаревших или редко востребованных данных. Граф образов (imagination graph) реализует «гибкое мышление» — содержит текущую, основанную на субъективном восприятии имеющихся фактов, воображаемую картину мира. Субъективность восприятия определяется как учетом уровней доверия к контрагентам, сообщившим те или иные факты, так и существующей базовой системой ценностей и понятий, содержащихся в фундаментальном графе. При этом, в случае, когда какая-либо часть поступивших фактов «не вписываются» в базовую систему, они могут быть отвергнуты графом образов, в то время как остальная часть фактов может быть воспринята. Последнее называется частичным восприятием. Например, если A сообщает B, что «иллениус несколько напоминает азафуса», то B может воспринять информацию о том, что одно явление может напоминать другое в некоторой степени (X «несколько напоминает» Y) но отвергнуть сами являния («иллениус», «азафус»). После чего B может сформировать уточняющий запрос к A — что входит в отношения «являться» в качестве неопределенных переменных X и Y, получив ответ, что «иллениус и азафус являются ископаемыми трилобитами», а затем - что «трилобит является ископаемым морским животным», после чего частичное восприятие станет полным.
Далее, рассмотрим структуру представления самих знаний в графах агентов. Традиционной технологией описания смысловых графов («семантических сетей») является использование тернарных отношений или триплетов. В то время как триплетами могут успешно описываться ситуации типа «кошка это животное» или «Рузвельт это президент», то более сложные конструкции, оперирующие с субъективной, временной и условной информацией («Василий Иванов в детстве думал, что если есть много мороженого, то никогда не простудишь горло»), триплетами выражаются с трудом. Рассмотрим более простой пример.
В развитие обсуждавшихся теоретических предпосылок, была реализована система распределенной инженерии знаний «Webstructor». Еще в 1995-1996 годах в CTC Company был разработан процессор семантических графов (с базовой онтологией, реализующей систему прав доступа, обработчик форм и среду визуального программирования), на основании которого затем был реализован ряд прикладных систем. Ввиду недостаточной вычислительной мощности персональных компьютеров в те годы, низкая производительность приложений не позволила найти им практическое применение. В 1997-1999 годах в ProPro Group, был создан и реализован язык ORL для формального описания модели данных и бизнес-процессов одной крупной прикладной системы для финансового рынка. В 2001 году в рамках Webstructor Project была создан прототип обсуждаемой далее среды распределенной инженерии знаний на основе языка ORL. Наконец, в 2006 году в компании IT Solutions, Ltd. среда Webstructor была использована для разработки распределенной системы визуализации Space Work. Итак, при разработке прототипа системы Webstructor, модель была упрощена таким образом, что были реализованы только «фундаментальный граф» и «граф общения», то есть предполагалось «полное доверие» агентов, обменивающихся «абсолютно истинными знаниями».
Реализация системы предполагала обмен информацией как по публичным соединениям на основе HTTP протокола, так и внутри корпоративной сети по протоколу TCP/IP. В том и другом случае, названные протоколы использовались как транспортные для обмена сообщений между агентами на языке ORL.
На базе описанной архитектуры, на сегодняшний день, реализовано два прикладных приложения — визуальный редактор онтологий и система графической визуализации.
Идеи трехмерной визуализации знаний, с отображением локальных подграфов на отдельные визуальные представления привели к реализации полномасштабной системы трехмерного представления разнородной информации в рамках обсуждаемой распределенной системы. На базе среды Webstructor была разработана система визуализации Space Work.
Используемый в системе для общения между агентами язык ORL (Object-Relational Language) изначально разрабатывался как способ компактной нотации произвольных структурированных данных, включая формализованные логические правила, декларирования бизнес-процессов и любые функциональные графы. В основу языка было положено следующее.
Следующая таблица представляет, как «свободные» выражения на естественном языке могут быть переведены на формальные выражения ORL.
По сути, как и нотации 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
|