Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cg_posobie6_(Vlasenko).doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
550 Кб
Скачать
☆

3. Инструментальные средства поддержки аппарата кг

С момента появления в середине 80-х ХХ в., теория КГ прошла целый ряд этапов становления и к настоящему времени стала одной из базовых теоретических платформ, на которой строятся многочисленные направления научных исследований и прикладных разработок. Охватить весь спектр работ, ведущихся в этой области, в рамках данного учебного пособия не представляется возможным. Могут быть кратко рассмотрены лишь некоторые, наиболее показательные тенденции в развитии и в практическом применении аппарата КГ, связанные с тематикой настоящего издания.

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

1) прямое использование КГ (классических или модифицированных) для представления и распространения знаний, функционально необходимых при эксплуатации целевой информационной системы;

2) использование КГ в качестве «интеллектуального посредника» между информационно взаимодействующими системами или компонентами некоторого распределенного программного приложения.

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

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

Одним из наиболее ярких примеров полнопрофильной реализации методологии КГ считается комплекс Amine (INSEA).

Инструментальная платформа Amine представляет собой комплекс Java-приложений, поставляемых в виде открытого кода, и предназначена для поддержки синтеза интеллектуальных систем самых различных классов. Особо следует отметить способность Amine к работе с любыми базовыми классами моделей знаний – семантическими сетями (включая активные), продукционными, логическими, фреймовыми, объектно-ориентированными. Кроме того, поддерживается разработка систем разнообразных архитектур – семантически гетерогенных распределенных систем, интеллектуальных систем с параллельной обработкой моделей знаний и данных, интеллектуальных мультиагентных систем и т. д. Внутренняя организация Amine может быть описана, как иерархия комплексов средств, состоящая из четырех уровней:

  • Ядро (первый уровень – уровень мультиязычных онтологий) поддерживает создание, ведение и опрос системных онтологий, определенных в терминах базовых концептуальных структур Amine – «определение», «правило», «индивид», «ситуация» и т. п. В такие онтологии могут объединяться различные концептуальные лексиконы, т. е. возможно образование мультиязычных лексиконов и мультиязычных производных концептуальных структур. Поскольку программные агенты имеют возможность совместного доступа к подобным лексиконам и структурам, можно считать, что Amine обеспечивает работу с мультиязычными системными онтологиями (языками могут считаться, например, национальные языки, профессиональные сленги, различные диалекты одного языка и т. п.). Это одна из ключевых особенностей платформы Amine в целом. В дальнейшем она позволяет строить модели КГ, в которых одному концепту может соответствовать несколько произвольно структурированных языковых «реализаций» (например, предложений на различных национальных языках). Другой ключевой особенностью ядра Amine является возможность построения системных онтологий не в терминах самой платформы, а в терминах других нотаций – CGIF, KIF, FrameCG, XML, RDF и любых других описательных схем, для которых имеется описание на языке Java, т. е. Amine реализует полностью открытый подход к формированию базиса системных понятий и примитивов, применяемых разработчиком при синтезе целевой интеллектуальной системы. Помимо программного интерфейса (API), поддерживающего создание, ведение и обработку онтологий, в Amine имеется графический интерфейс (LexiconsOntology GUI) с полностью аналогичной функциональностью.

  • Алгебраический (второй) уровень (уровень структур и операций) Amine содержит определения элементарных типов данных (элементарных объектов Java, таких, как Integer, Double, String, Boolean и т. п., а также элементарных объектов Amine – AmineInteger, AmineDouble и т. д.), базовых структур (агрегатов) данных (списки, множества, термы, концепты, отношения, КГ), которые могут содержать переменные произвольных типов, и операций над базовыми структурами. Определения операций указывают на связывание переменных (ассоциативные связи между переменными и их значениями) и контекст связывания (описание того, как интерпретируется связывание, т. е. как следует получить значение переменной). При этом контекст связывания является в Amine базовым концептом («BindingContext»), т. е. связывание и контекст связывания явно представляются и специфицируются в системе, образуя при этом Java-интерфейс Amine: любой Java-класс, реализующий интерфейс BindingContext, рассматривается в Amine как контекст связывания. Соответственно, любые внешние приложения, содержащие этот интерфейс, могут интегрироваться с Amine, и наоборот, могут использовать его для корректной интерпретации компонентов алгебраического уровня Amine. Следовательно, во внешней программной среде могут обрабатываться и структуры данных, определенные в Amine (подобно тому как Amine способна «научиться» работать с агрегатами переменных, для которых во внешних приложениях описаны соответствующие контексты связывания). Таким образом, можно считать, что платформа Amine не имеет ограничений на интерпретацию операций над базовыми структурами и на саму номенклатуру этих структур. Алгебраический уровень поддерживает также широкий набор операций, основанных на различных формах сочетаний объектов структур – сопоставление, равенство, унификация, категоризация, охватывающее присоединение. Все эти операции распространяются на любую Amine-структуру, при этом любые Java-классы, поддерживающие специальные интерфейсы AmineObject и Matching, становятся полноценной Amine-структурой (опять же с симметричной возможностью использования алгебры Amine во внешних приложениях). Помимо описанного API для алгебраического уровня Amine поддерживает графические интерфейсы CGNotations GUI (многооконный редактор КГ, обеспечивающий использование для представления КГ нотаций DF, LF и CGIF, а также применение при этом всех языков, описанных лексиконами Amine) и CGOperations GUI (для описания и реализации операций над КГ).

  • Уровень машин вывода (третий уровень) Amine представляет собой совокупность трех кооперированных машин: а) машины динамических онтологий (для пошагового и автоматического создания, коррекции и обновления онтологий); б) языка Prolog+CG (объектно-ориентированного расширения языка Prolog, ориентированного на аппарат КГ); в) языка SYNERGY (специализированного языка, основанного на концепциях «активных КГ» и «переходов состояний», т. е. на моделях активных, динамических семантических сетей с «цепным» распространением процесса обработки по компонентам сети в приложении к классу КГ). Следует отметить, что все 3 машины могут работать как независимо, так и совместно, реализуя при этом и различные базовые, и произвольно комбинированные обобщенные подходы к обработке знаний. Важно также, что машины Amine, аналогично комплексам первого и второго уровней, сохраняют полную открытость системы благодаря поддержке соответствующих Java-интерфейсов. Интересной возможностью в Amine является использование машины динамических онтологий двумя другими машинами – языками Prolog+CG и SYNERGY. Это открывает практически неограниченную свободу для динамической обработки знаний – рассуждений, обучения, планирования, извлечения, поиска знаний и т. п. В этих процессах Amine-онтологии могут выступать в качестве «системной памяти» проектируемой интеллектуальной системы, хранящей терминологию и описания ситуаций, декларативные и процедурные знания. Соответственно, построенная в Amine система становится способной к «переосмыслению» проблемной области непосредственно в процессе функционирования, причем глубина этого «переосмысления» ничем не ограничивается. Даже базовые системные примитивы Amine могут переопределяться самой системой на фазе эксплуатации, постоянно оставаясь при этом «онтологически связанными» с прочими.

Отдельно следует отметить развитые выразительные средства и важные модельные особенности языков Prolog+CG и SYNERGY. Так, Prolog+CG, поддерживая полный спектр Java-интерфейсов Amine (и, соответственно, оставляя полностью открытым доступ к функциональности прочих компонентов платформы), качественно расширяет семантику языка Prolog (который полностью входит в Prolog+CG как подмножество), позволяя создавать классы объектов из произвольных наборов правил и фактов, описанных средствами «обычного» (базового) Prolog, а затем образовывать иерархии наследования подобных классов. При всем этом сохраняется строгое соответствие данных метаконструкций идеологии КГ. КГ в Prolog+CG выступают как базовые структуры данных наравне с термами или списками. Простые цели (в терминах языка Prolog) могут представляться термами или КГ, к иерархиям типов и к КГ могут применяться операции, введенные в алгебраическом слое Amine, и т. п. Полностью функционален и интерфейс с Java: Java-программы и Prolog+CG-программы могут взаимно вызывать друг друга, Prolog+CG может определять и использовать совместно с Java глобальные объекты, а также вызывать любые исполняемые приложения и т. п.

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

  • уровень мультиагентных систем (четвертый уровень) Amine позволяет на базе компонентов предшествующих трех уровней конструировать интеллектуальных программных агентов и интегрировать их в единую МАС с использованием Java-технологий.

Следует отметить, что идеология сквозных Java-интерфейсов позволяет не только соединять функциональность различных уровней платформы, но и использовать их независимо, что делает Amine еще более гибким инструментом синтеза интеллектуальных приложений. В перспективе планируется обеспечить возможность интеграции этих приложений с уже существующими открытыми платформами Java-МАС, такими, как JADE или JASON.

Web-ориентированная система WebKB является альтернативным представителем мощных инструментальных и исполнительных сред, поддерживающих методологию КГ. WebKB (композиция двух программных продуктов – WebKB-1 и WebKB-2) представляет собой доступную по каналам Интернета сеть серверов баз знаний, способную выполнять (в режиме on-line) функции представления знаний (автоматически извлекаемых из входных потоков данных, интерактивно описываемых пользователем или предоставляемых в известных системе нотациях КГ), их систематизации (с формированием и обслуживанием соответствующих онтологий, включая их объединение, наращивание и оптимизацию) и осуществлять поисковые операции (обработку интеллектуальных запросов). WebKB поддерживает как разделяемые (общедоступные), так и приватные (персональные или коллективные) базы знаний, позволяя тем самым пользователю произвольно определять семантические пространства для предоставления своей и поиска своей или чужой информации. Система имеет программные (в частности, API С++) и командные, а также CGI-подобные интерфейсы. Таким образом, WebKB может использоваться в качестве компонента распределенных информационных систем различного назначения, требующих выполнения соответствующих функций обработки знаний. Среди текстовых нотаций КГ, используемых на входе и выходе системы, – LF, CGIF, FrameCG, KIF. WebKB обрабатывает также тэги XHTML и является одним из немногих средств поддержки КГ, которое способно получать на входе, функционально использовать, хранить и формировать в виде выходного потока Web-доступные документы (причем минимальным информационным примитивом в системе является не документ, а элемент документа с соответствующей разметкой). Планируется также включение в список поддерживаемых форматов RDF/XML.

Внутреннее представление базы знаний (в терминологии WebKB) основывается на понятиях категорий (концептов или отношений КГ) и утверждений (описаний фактов, гипотез, мнений и т. п.), выраженных в терминах категорий. При этом утверждения могут использоваться для определения связей между категориями. Данный механизм позволяет строить в WebKB онтологии (общедоступные или локальные), интегрируемые в базы знаний. Такие онтологии содержат списки своих категорий и утверждения, определяющие формальные механизмы их использования (свойства, связи, правила, ограничения). Фактически, онтологии WebKB выступают в роли схем организации и обобщенных характеристик баз знаний, обрабатываемых системой. Одной из базовых онтологий WebKB является база данных лексики английского языка WordNet. Существуют и другие онтологии общесистемного назначения. Логическое разделение онтологических компонентов и целевого содержания баз знаний в WebKB позволяет более четко определять абстрактные и конкретные знания в рамках единого описания проблемной области.

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

Помимо уже рассмотренных «масштабных» систем обработки КГ на рынке программного инструментария искусственного интеллекта в значительном объеме представлены средства среднего и низкого уровней функциональности. В основании иерархии средств поддержки КГ находятся узкоспециализированные программные продукты – редакторы КГ, библиотеки интерфейсных модулей и т. п. Примером подобных маломощных средств может служить Web-доступная система CGWorld Editor.

Визуальный редактор CGWorld Editor помимо высокого уровня сервиса при выполнении графических работ с КГ обладает важной эксплуатационной возможностью удаленного вызова. Сам редактор реализован в виде java-апплета и может использоваться непосредственно через Интернет-браузер, причем объем его исполняемого кода не превышает 150 Кбайт. В CGWorld поддерживаются форматы CGIF и CGPro, а также специализированное расширение XML для представления КГ – формат XCG (Sun Microsystems). Разработан также программный интерфейс с серверами MySQL. Помимо непосредственного редактирования (в графической и текстовой формах) CGWorld позволяет осуществлять и формализованные логические выводы на концептуальных графах (т. е. «исполнять» КГ). Данная функция реализована на языке Prolog. Практически, аналогичным CGWorld по функциональным возможностям является целый ряд редакторов КГ (CharGer, Knowledge Extractor и др.), но пользовательский Web-интерфейс в них не поддерживается. Java-апплет CGWorld реализован в рамках трехслойной архитектуры:

  • Уровень представления отвечает за внешний вид и удобство работы с приложением. Уровень представления включает в себя элементы клиентской стороны и является интерфейсной частью приложения.

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

  • Уровень логики приложения управляет данными приложения, выполняет вычисления и обменивается данными с вспомогательными ресурсами. Уровень логики приложения представляет собой сердце приложения и отвечает за фактическое исполнение любой задачи, которая поставлена приложению. Этот уровень реализован при помощи набора JavaBeans и Java-классов, которые используют объектно-ориентированную модель базы знаний и Prolog-предикатов.

Трехслойная архитектура позволила наиболее оптимальным образом реализовать требования, предъявленные к приложению.

Библиотека CoGITaNT является другим примером средств представления КГ среднего функционала. Библиотека CoGITaNT – это набор классов С++, позволяющий достаточно просто манипулировать КГ, так же как и другими объектами модели (например, правилами). Каждому объекту модели подходит класс в CoGITaNT, а использованные структуры данных являются базовыми реализациями объектов модели (например, граф – это множество вершин и множество дуг). Благодаря этому разработчикам, уже знакомым с исходными моделями КГ, проще понимать структуру CoGITaNT и использованные расширения.

Библиотека CoGITaNT является расширением библиотеки CoGITo, разрабатываемой с 1994 г. командой «Représentation de connaissances par des graphes» («Представление знаний при помощи графов»). CoGITo расшифровывается как Conceptual Graphs Integrated Tools (Интегрированные инструменты концептуальных графов). В 1997 г. имя библиотеки было изменено на CoGITaNT v-4, CoGITo allowing Nested Typed graphs (CoGITo, допускающий вложенные типизированные графы) в связи с внедрением в библиотеку возможности оперировать правилами и типизированными вложенными графами с кореферентными ссылками. С того момента в библиотеку CoGITaNT был внесен ряд улучшений и в 2001 г. была выпущена версия 5, которая используется в настоящий момент с постоянными улучшениями и дополнениями.

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

  1. Управление множеством концептуальных графов. Библиотека может манипулировать простыми и вложенными графами, необязательно взаимосвязанными, которые могут содержать кореферентные. Типы узлов-концептов могут быть узлами-конъюнкциями.

  2. Управление множеством «окружения» – наборов типов концептов, типов отношений, типов вложенности и индивидуальных тэгов. Несколько окружений могут сосуществовать в одном пространстве памяти, но концептуальный граф может быть определен на единичном окружении.

  3. Базовые операции на графах – добавление вершин, соединение вершин, раздельная сумма и т. д.

  4. Операции проекции на концептуальных графах.

  5. Операции ввода/вывода в формате CGIF, а также форматах BCGCN, CoGXML. Выходной граф представляется в формате линейной формы.

  6. Управление ограничениями концептуальных графов, а также проверка графов при наличии ограничения.

  7. Обеспечение доступа к функционалу CoGITaNT приложений, написанных на языке Java, благодаря существованию Java-классов, обеспечивающих доступ к CoGITaNT-классам через JNI. Существует также возможность обеспечения удаленного доступа к функциям CoGITaNT благодаря наличию клиент-серверной архитектуры, основанной на обмене XML-сообщениями.

Для более простого управления окружениями или графами больших размеров (равно как и большим количеством маленьких графов) классы модели разработаны, чтобы вмещать разумный объем информации. Библиотека совместима со всеми основными операционными системами и компиляторами, существующими в настоящее время. Она была протестирована на платформах GNU/Linux, MS Windows XP/Vista/2000, Solaris/OpenSolaris, FreeBSD, NetBSD, MacOS X, проверена ее работоспособность со следующими компиляторами: GNU C++ 3.x и 4.x, Microsoft Visual C++ 8.0 (2005) и 9.0 (2008), Intel C++ 11, Cygwin G++ 3.4, Mingw G++ 3.4, Sun Studio Express 12.

В целях систематизации некоторых общих эксплуатационных характеристик и классификационных признаков программного инструментария КГ в таблице приведены краткие данные сравнительного анализа типичных представителей различных видов программных продуктов рассматриваемого назначения. Среди приведенных продуктов ранее не рассматривались поисковая система Corese, среда программирования CPE, Java-API Notio.

Следует отметить, что за рамками рассмотрения в данном пособии остается широкий класс инструментальных средств различного назначения и выразительной мощности, который может использовать аппарат КГ не в целях непосредственного выполнения своих базовых эксплуатационных функций, а в целях поддержки интеллектуальных интерфейсов с внешним программным окружением. Возможными сферами подобного применения КГ являются, например, серверы распределенных баз данных и систем с поддержкой OLAP (в задачах обмена семантическими портретами схем хранилищ данных), корпоративные информационные системы различного профиля (в целях «осмысления» потоков данных между подсистемами), хранилища документов (в целях систематизации и внутрисистемного семантического поиска) и многие др. Аппарат КГ часто используется в аналогичной роли и в гетерогенных системах, основанных на знаниях, где КГ могут являться не «рабочими» моделями знаний, а лишь средством общения между базами знаний, имеющими различные форматы и «собственные» механизмы представления знаний. Показательно, например, что популярный язык представления знаний KIF, на котором часто реализуются текстовые описания КГ, имеет гораздо более широкую сферу применения, чем представление классических моделей КГ. Тем не менее, реализованные с его применением системы могут эффективно обмениваться знаниями на основе КГ. Характерным отражением высоких «посреднических способностей» КГ является и появление значительного количества промышленно используемых расширений языков гипертекстовой разметки (XHTML, XML, RDF), поддерживающих «перенос» моделей КГ.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]