Интеллектуальные информационные системы. Базы знаний

Построение баз знаний для семантической сети. Цели создания и язык представления онтологий. Структура исследований в области многоагентных интеллектуальных информационных систем, архитектура агента. Экономическое обоснование разработки базы знаний.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 29.09.2013
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Интеллектуальные информационные системы. Базы знаний

Содержание

Введение

1. Построение баз знаний для семантической сети

1.1 Цели создания онтологий

1.2 Semantic Web

1.3 Метаданные

1.4 Язык представления онтологий: OWL

1.5 Методология создания онтологической базы знаний

1.6 Процесс построения онтологической базы знаний

1.6.1 Постановка задачи

1.6.2 Построение базы знаний в редакторе Protege-OWL

1.6.3 Перспективы использования онтологических баз знания

2. Многоагентные системы

2.1 Структура исследований в области многоагентных систем

2.2 Агентно-ориентированный подход в программировании

2.3 Классификация агентов

2.4 Архитектура агента

2.5 Кооперация агентов

2.6 Платформа для разработки мультиагентных систем JADE

2.7 Создание прототипа интеллектуального агента

3. Технико-экономическое обоснование разработки базы знаний

3.1 Характеристика программного продукта

3.2 Расчет затрат и отпускной цены программного средства

3.3 Расчет стоимостной оценки результата

3.3.1 Расчет прироста чистой прибыли

3.3.2. Расчет прироста амортизационных отчислений

3.4 Расчет показателей эффективности использования программного продукта

4. Охрана труда тема: безопасная организация трудового процесса пользователей и разработчиков интеллектуальных информационных систем

Заключение

Литература

Приложение А. Общая методология создания онтологий

Приложение Б. Исходные коды интеллектуального агента

Приложение В. Диаграмма классов интеллектуального агента

Введение

Онтология (от др.-греч. онтос - сущее, логос - учение, понятие) - термин, определяющий учение о бытии, о сущем, в отличие от гносеологии - учения о познании. Уже у X. Вольфа (1679-1754), автора самого термина «онтология», учение о бытии было отделено от учения о познании. Введен же термин в философскую литературу немецким философом Р. Гоклениусом (1547-1628). При этом онтология являлась частью метафизики, наукой самостоятельной, независимой и не связанной с логикой, с «практической философией», с науками о природе. Ее предмет составляет изучение абстрактных и общих философских категорий, таких как бытие, субстанция, причина, действие, явление и т. д., а сама онтология как наука претендовала на полное объяснение причин всех явлений.

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

Онтология - философская дисциплина, которая изучает наиболее общие характеристики бытия и сущностей.

Онтология - это формальная теория, ограничивающая возможные концептуализации мира. [Никола Гуарино].

Онтология - это точная спецификация концептуализации, где в качестве концептуализации выступает описание множества объектов предметной области и связей между ними. [Томас Грубер]

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

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

Онтология - набор базовых понятий и отношений между ними.

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

В середине 80х гг. XX века происходит переоткрытие понятия "онтология". Отчасти это случилось в связи с проектом CYC - проектом базы так называемых "общеизвестных" знаний. Появилось понимание того факта, что взаимодействие разных исследовательских сообществ невозможно без наличия "слоя-посредника", в котором должен определяться словарь предметной области. Таким посредником и выступили онтологии предметных областей.

На первых порах, в сфере информационных технологий часто противопоставляли два определения онтологии: более философское (определение Николы Гуарино) и более практическое (определение Томаса Грубера).

В философском контексте, онтология - система категорий, используемая для рассмотрения с учетом конкретного видения мира.

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

На самом деле, вопрос в отличии двух определений сводится к разным требованиям к "слою-посреднику": в одном случае нужна строгая формальная теория, формальный язык (например, язык исчисления предикатов 1-го порядка), в другом - достаточно списка терминов предметной области (онтологии - словари).

В рамках данной работы нас будут интересовать следующие подходы к определению онтологии.

В известном проекте Ontolingila, который ведется в Стэндфордском университете, предполагается, что онтология -- это эксплицитная спецификация определенной темы.

В разработках системы стандартов на мульти-агентные системы международным сообществом FIPA (Foundation for Intelligent Physical Agents) утверждается, что в философском смысле можно ссылаться на онтологию как на определенную систему категорий, являющихся следствием определенного взгляда на мир.

Базы знаний, которые используют онтологии, называют базами онтологических знаний или онтологическими базами знаний.

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

1. Построение баз знаний для семантической сети

1.1 Цели создания онтологий

Вот некоторые причины создания онтологий:

- для совместного использования людьми или программными агентами общего понимания структуры информации;

- для возможности повторного использования знаний в предметной области;

- для того чтобы сделать допущения в предметной области явными;

- для отделения знаний в предметной области от оперативных знаний;

- для анализа знаний в предметной области.

Часто онтология предметной области сама по себе не является целью. Разработка онтологии сродни определению набора данных и их структуры для использования другими программами. Доменно-независимые приложения и программные агенты используют в качестве данных онтологии и базы знаний, построенные на основе этих онтологий.

1.2 Semantic Web

Идея Семантической Сети (Semantic Web) впервые была провозглашена в 2001 году Тимом Бернерсом-Ли (создателем World Wide Web). Однако она не является новой ни для автора, ни для web-сообщества в целом. Суть ее состоит в автоматизации, то есть обработкой информации и её обменом должны заниматься не люди, а специальные интеллектуальные агенты (программы, размещенные в Сети). Но для того, чтобы взаимодействовать между собой, агенты должны иметь общее (разделяемое всеми) формальное представление значения для любого ресурса. Именно для цели представления общей, явной и формальной спецификации значения в Semantic Web используются онтологии.

Работа над средствами описания семантики в Сети началась задолго до публикации 2001 года. В 1997 году консорциум W3C определил спецификацию RDF (Resource Description Framework). RDF предоставляет простой, но мощный язык описания ресурсов, основанный на триплетах (triple-based) "Субъект-Предикат-Объект" и спецификации URI. В 1999 году RDF получает статус рекомендации. Этот шаг в направлении улучшения функциональности и обеспечения интероперабельности (т.е. возможности обмениваться данными несмотря на их разнородность) в Сети считается одним из важнейших. Концептуально RDF дает минимальный уровень для представления знаний в Сети. Спецификация RDF опирается на ранние стандарты, лежащие в основе Web:

- Unicode служит для представления символов алфавитов различных языков,

- URI используется для определения уникальных идентификаторов ресурсов,

- XML и XML Schema - для структурирования и обмена информацией и для хранения RDF (XML синтаксис RDF).

Кроме RDF был разработан язык описания структурированных словарей для RDF - RDF Schema (RDFS). Он предоставляет минимальный набор средств для спецификации онтологий. RDFS получил статус рекомендации W3C в 2004 году. Однако препятствием для Semantic Web стало то, что документов, написанных на языке RDF/RDFS, было относительно мало. В период с 2001 по 2004 годы шла интенсивная работа по созданию программных средств для обработки и автоматической генерации RDF-документов.

Результатом в 2004 году стал язык GRDDL (Gleaning Resource Descriptions form Dialects of Languages). Его назначение состоит в предоставлении средств для извлечения RDF-триплетов из XML и XHTML данных (в особенности это относится к документам, автоматически генерируемым из закрытых баз данных). Развивалось и программное обеспечение для Semantic Web. В области создания библиотек классов и построения логических выводов над RDF-графами была создана библиотека Jena Framework, в области создания модулей расширения для браузеров - Simile для Firefox. В области создания визуальных сред редактирования большое число редакторов онтологий стали поддерживать RDF.

В 2004 году статус рекомендации получил язык OWL (Web Ontology Language). Он имеет 3 диалекта (3 множества структурных единиц), используемых в зависимости от требуемой выразительной мощности. OWL фактически является надстройкой над RDF/RDFS и поддерживает эффективное представление онтологий в терминах классов и свойств, обеспечение простых логических проверок целостности онтологии и связывание онтологий друг с другом (импорт внешних определений). Многие формализмы описания знаний могут быть отображены на формализм OWL (два из его диалектов - OWL Lite и OWL DL - соответствуют двум дескриптивным логикам, имеющим разную выразительную силу). Большое число создаваемых в настоящее время онтологий кодируются на OWL; уже существующие онтологии транслируются в него.

На этом работа по обеспечению Semantic Web необходимыми стандартами не остановилась. В 2005 году началась работа над форматом обмена правилами - RIF (Rule Interchange Format). Его назначение - соединить в одном стандарте несколько формализмов для описания правил (по которым может осуществляться нетривиальный логический вывод): логику клауз Хорна, логики высших порядков, продукционные модели и т.п.

Язык SPARQL - язык запросов к RDF-хранилищам - в январе 2008 года приобрел статус официальной рекомендации Консорциума W3C. Синтаксически он очень похож на SQL. Он уже широко используется разработчиками информационных систем.

На рис. 1.3.1 представлена диаграмма, называемая иногда стеком (или даже "слоеным пирогом") Semantic Web.

Рисунок 1.2.1 - Диаграмма Semantic Web

Все основные уровни диаграммы были описаны выше. Уровням "Ontology vocabulary" и "Logic" соответствуют OWL и RIF. Уровень "Trust" на данный момент остается незатронутым никакими стандартами. Здесь и возникает одно из существенных препятствий к реализации всей идеи: поддержка автоматической проверки корректности и правдивости информации. В самом деле, у многих поставщиков семантических описаний может возникнуть соблазн "обмануть" программу-агента, предоставив информацию, не соответствующую действительности, либо навязчивую рекламу, как это в настоящее время проделывается с поисковыми машинами, спам-фильтрами и т.п.

Еще одним камнем преткновения для создания Semantic Web является фактическое отсутствие работающих интеллектуальных агентов. [2]

1.3 Метаданные

Неотъемлемой характеристикой любого ресурса Сети является сопровождающая его информация. Эту "сверхинформацию", или информацию об информации (о ресурсе), принято называть метаданными.

Под метаданными будем понимать машинопонятную информацию о веб-ресурсах и других сущностях.

Термин "машинопонятная" является ключевым. Речь идет о понимании информации программными агентами. Причем "понимании" с одной целью - использовать информацию для решения задач, возложенных на них (агентов) пользователем.

Метаданные должны иметь хорошо определенную ясную структуру и семантику.

Приведем два постулата (А1 и А2), на которых основана архитектура метаданных Сети.

А1. Метаданные - это данные (другими словами, информация об информации - это тоже информация).

Поскольку метаданные - это данные, то они могут храниться в ресурсе (могут быть представлены как ресурс). То есть любой ресурс Сети может хранить как данные, так и метаданные о себе или о других ресурсах. Метаданные могут храниться внутри самого документа, внутри другого документа либо передаваться вместе с документом средствами протокола HTTP. Метаданные состоят из высказываний о данных и при представлении имеют форму имени (или типа высказывания) и набора параметров.

А2. Архитектура, представляемая метаданными, является набором независимых высказываний (утверждений).

Как следствие, при группировке двух и более высказываний об одном ресурсе они объединятся логическим "И". Альтернативные высказывания являются независимыми, а их наборы представляют собой неупорядоченные множества.

Наиболее распространенной формой высказывания является следующая модель:

Ресурс - атрибут - значение

Здесь ресурс - это объект, о котором фиксируется высказывание, атрибут - некоторое свойство или параметр объекта, значение представляет некоторое значение из области значений атрибута (или диапазона значений атрибута данного объекта).

RDF - язык представления информации о ресурсах WWW. Базовой структурной единицей RDF является коллекция троек (или триплетов), каждая из которых состоит из субъекта, предиката и объекта (S,P,O). Набор триплетов называется RDF-графом. В качестве вершин графа выступают субъекты и объекты, в качестве дуг - предикаты (или свойства). Направление дуги, соответствующей предикату в данной тройке (S,P,O), всегда выбирается так, чтобы дуга вела от субъекта к объекту.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Рисунок 1.3.1 - RDF-тройка

Каждая тройка представляет некоторое высказывание, увязывающее S, P и O.

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

1.4 Язык представления онтологий: OWL

Распространение онтологического подхода к представлению знаний оказало содействие при создании разнообразных языков представления онтологии и инструментальных средств, предназначенных для их редактирования и анализа. Существуют традиционные языки спецификации онтологий: Ontolingua, CycL, языки, основанные на дескриптивных логиках (такие как LOOM), языки, основанные на фреймах (OKBC, OCML, F-Logic). Более поздние языки основаны на Web-стандартах (XOL, SHOE, UPML). Специально для обмена онтологиями через Web были созданы языки RDF, RDFS, DAML+OIL, OWL.

Язык, о котором пойдет речь в данном разделе, является одним из основных языков так называемой Семантической Сети (Semantic Web). О Semantic Web упоминалось ранее. На сегодняшний день наблюдается разрыв между способами представления метаданных (языками их определения) и теми интеллектуальными агентами, которые должны ими пользоваться. Языки описания метаданных и онтологий в Web развиты очень хорошо, языки запросов и языки описания правил доведены до стадии технологических стандартов в данной области. Однако узким местом всё еще являются механизмы взаимодействия агентов на основе онтологий.

Многие популярные редакторы онтологий, используют в качестве основного формализма дескриптивную логику (DL) и предоставляют средства для создания OWL-онтологий.

OWL (Web Ontology Language, в аббревиатуре буквы намеренно переставлены местами, чтобы получилось английское слово "сова") - язык представления онтологий в Web. Фактически это словарь, расширяющий набор терминов, определенных RDFS. OWL-онтологии могут содержать описания классов, свойств и их экземпляров. Создание OWL - это ответ на необходимость представления знаний в Сети в едином формате. Исторически предшественником OWL был язык DAML+OIL, объединивший две инициативы: проект DAML (DARPA Agent Markup Language) и проект OIL (Ontology Inference Layer). Наиболее ранним проектом представления онтологий в Web был SHOE (Simlpe HTML Ontology Extensions). Ветви развития языков описания онтологий для Web показаны на рис. 1.4.1. Верхний уровень: OIL, DAML+OIL и OWL продолжают развиваться, но наибольшей популярностью пользуется OWL.

OWL с 2004 года является рекомендацией W3C и объединяет лучшие черты своих предшественников.

Рисунок 1.4.1 - Основные ветви развития языков описания онтологий для Web

Язык OWL имеет три диалекта: OWL Lite, OWL DL, OWL Full. Каждый из этих диалектов (кроме OWL Lite) является расширением предыдущего. Как следствие, любая OWL Lite онтология является OWL DL онтологией, а любая OWL DL онтология является OWL Full онтологией.

Рассмотрим структуру OWL-онтологии. Любая онтология имеет заголовок и тело. В заголовке содержится информация о самой онтологии (версия, примечания), об импортируемых онтологиях. За заголовком следует тело онтологии, содержащее описания классов, свойств и экземпляров.

Базовый элемент в OWL - это класс (owl:Class).

Для организации классов в иерархию используется свойство rdfs:subClassOf. Особое место занимают два взаимодополняющих класса - owl:Thing и owl:Nothing. Первый из них является надклассом любого класса OWL, второй - подклассом любого класса OWL. Экземпляр любого класса OWL входит в экстенсионал класса owl:Thing. Экстенсионал класса owl:Nothing является пустым множеством.

OWL-класс может быть описан шестью способами:

1) идентификатором класса (URI);

2) перечислением всех экземпляров класса;

3) ограничением на значение свойства;

4) пересечением 2-х и более определений классов;

5) объединением 2-х и более определений классов;

6) дополнением (логическим отрицанием) определения класса.

Только первый способ определяет именованный класс OWL. Все оставшиеся определяют анонимный класс через ограничение его экстенсионала. Способ 2 явно перечисляет экземпляры класса, способ 3 ограничивает экстенсионал только теми экземплярами, которые удовлетворяют данному свойству. Способы 4-6 используют теоретико-множественные операции (объединение, пересечение и дополнение) над экстенсионалами соответствующих классов, чтобы определить экстенсионал нового класса.

Описания класса являются строительными блоками для определения классов посредством аксиом.

В OWL определены еще 3 конструкции, комбинируя которые, можно определять более сложные аксиомы классов:

- rdfs:subClassOf говорит о том, что экстенсионал одного класса (подкласса) полностью входит в экстенсионал другого (надкласса);

- owl:equivalentClass говорит о том, что экстенсионалы двух классов совпадают;

- owl:disjointWith говорит о том, что экстенсионалы двух классов не пересекаются. Иногда говорят, что таким образом определяются дизъюнктивные классы.

В OWL выделяют две категории свойств: свойства-объекты (или объектные свойства) и свойства-значения. Первые связывают между собой индивиды (экземпляры классов). Вторые связывают индивиды со значениями данных. Оба класса свойств являются подклассами класса rdf:Property.

Для определения новых свойств как экземпляров owl:ObjectProperty или owl:DatatypeProperty используются аксиомы свойств.

Кроме того, OWL поддерживает следующие конструкции для построения аксиом свойств:

- Конструкции RDFS: rdfs:subPropertyOf (определяет подсвойство данного свойства), rdfs:domain (определяет домен свойства) и rdfs:range (определяет диапазон свойства)

- Отношения между свойствами: owl:equivalentProperty (определяет эквивалентное свойство) и owl:inverseOf (определяет обратное свойство).

- Ограничения глобальной кардинальности: owl:FunctionalProperty (определяет однозначное свойство - однозначное отображение домена свойства на диапазон) и owl:InverseFunctionalProperty (обратно функциональное свойство, т.е. определяет, что свойство, обратное данному свойству, является однозначным).

- Логические характеристики свойства: owl:SymmetricProperty (определяет свойство как симметричное) и owl:TransitiveProperty (определяет транзитивное свойство).

Индивиды (экземпляры классов) определяются при помощи аксиом индивидов (т.н. фактов). Рассмотрим два вида фактов:

- факты членства индивидов в классах и факты о значениях свойств индивидов;

- факты идентичности/различности индивидов.

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

- owl:sameAs постулирует, что две ссылки URI ссылаются на один и тот же индивид;

- owl:differentFrom постулирует, что две ссылки URI ссылаются на разные индивиды;

- owl:AllDifferent предоставляет средство для определения списка попарно различных индивидов. [2]

Итак, базовыми элементами OWL являются классы, свойства и индивиды.

Вероятно, сами по себе языки представления онтологий не были бы так сильно востребованы, если бы не возникало необходимости автоматически обрабатывать онтологии, наполнять их содержимым и выполнять к ним запросы. Наиболее популярными среди языков запросов к RDF-хранилищам на сегодняшний день являются языки RDQL и SPARQL.

Рассмотрим несколько упрощенный синтаксис SPARQL-запроса:

SELECT <список_переменных>

FROM <URI_онтологии>

WHERE { <список_шаблонов>.

FILTER <фильтр>

}

Где: список_переменных - список имен переменных; URI_онтологии - URI-ссылка на онтологию; список_шаблонов - список шаблонов; фильтр - ограничения на значения переменных.

1.5 Методология создания онтологической базы знаний

Под знаниями в Semantic Web, как правило, понимается формализованная информация, известная тому или иному пользователю, приложению или агенту. Распространенным способом представления знаний являются логические формулы (или аксиомы в терминологии OWL), смысл которых четко определяется семантикой используемого языка. [3]

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

Следует сразу отметить, что эти подходы и методологии базируются на следующих принципах проектирования и реализации онтологий, предложенных Томасом Грубером:

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

- Согласованность - означает, что, по крайней мере, все определения должны быть логически непротиворечивы, а все утверждения, выводимые в онтологии, не должны противоречить аксиомам.

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

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

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

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

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

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

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

Общая схема создания онтологий представлена в Приложении А.

В этой схеме, процесс построения онтологии здесь распадается на серию параллельных подпроцессов по созданию промежуточных представлений. Сначала строится глоссарий терминов, затем деревья классификации концептов и диаграммы бинарных отношений. И только после этого - остальные промежуточные представления. [1]

Практическая разработка онтологии включает:

- определение классов в онтологии;

- расположение классов в таксономическую иерархию;

- создание базы знаний, определяя отдельные экземпляры классов.

Выделим некоторые фундаментальные правила разработки онтологии. Они выглядят довольно категоричными, но во многих случаях помогут принять верные проектные решения.

- Не существует единственно правильного способа моделирования предметной области - всегда существуют жизнеспособные альтернативы.

- Разработка онтологии - это обязательно итеративный процесс.

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

Знание того, для чего предполагается использовать онтологию, и того, насколько детальной или общей она будет, может повлиять на многие решения, касающиеся моделирования. Нужно определить, какая из альтернатив поможет лучше решить поставленную задачу и будет более наглядной, более расширяемой и более простой в обслуживании. Следует помнить, что онтология - это модель реального мира, и понятия в онтологии должны отражать эту реальность.

Повторное использование существующих онтологии может быть необходимым, если системе нужно взаимодействовать с другими приложениями, которые уже вошли в отдельные онтологии или контролируемые словари. Многие полезные онтологии уже доступны в электронном виде и могут быть импортированы. Существуют библиотеки повторно используемых онтологий, например, Ontolingua или DAML.

1.6 Процесс построения онтологической базы знаний

1.6.1 Постановка задачи

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

Таблица 1.1 - Фрагмент глоссария

Термин

Описание термина

University

Один из типов высшего учебного заведения

Academic subjects

Учебный предмет, научная дисциплина

Administrative unit

Административная единица - факультет, кафедра, группа

Educational form

Форма образования - дневная, заочная

Functional roles

Роль которую играет человек в определенном сообществе

Academic rank

Академическое звание - доцент, доктор наук

Administrative post

Должность - декан, ректор

Speciality

Специальность, профессия

Sciens

Наука

1.6.2 Построение базы знаний в редакторе Protege-OWL

Protege - Это свободно распространяемая Java-программа, предназначенная для построения (создания, редактирования и просмотра) онтологий той или иной прикладной области. Она включает редактор онтологий, позволяющий проектировать онтологии, разворачивая иерархическую структуру абстрактных и конкретных классов. На основе сформированной онтологии Protege позволяет генерировать формы получения знаний для введения экземпляров классов и подклассов.

Данный инструмент поддерживает использование языка OWL и позволяет генерировать HTML-документы, отображающие структуру онтологий.

Когда глоссарий терминов достигает «существенного» объема, строятся деревья классификации концептов. Как правило, при этом используются отношения типа subclass-of, is-a и некоторые другие таксономические отношения. Для отображения деревьев классификации концептов базы знаний “Университеты” можно использовать плагин Protege - OWL Viz.

Следующим шагом является построение диаграмм бинарных отношений, целью создания которых является фиксация отношений между концептами одной или разных онтологий Для отображения диаграмм бинарных отношений можно использовать плагин Protege - OntoGraph.

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

1.6.3 Перспективы использования онтологических баз знания

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

Как показывает анализ литературы и Интернет-ресурсов по данной тематике, в настоящее время:

- эффективная обработка информации в Web связывается, в первую очередь, с использованием ИИ-технологий;

- основные подходы в этой области ориентированы на решение проблемы извлечения из Web-pecypcoв эксплицитных знаний на основе семантического маркирования таких ресурсов;

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

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

2. Многоагентные системы

2.1 Структура исследований в области многоагентных систем

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

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

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

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

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

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

Структура исследований в области MAC очень широка и сравнима с широтой исследований в области ИИ. С некоторой долей условности исследования в области MAC можно разделить на следующие основные направления:

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

- методы кооперации агентов (организации кооперативного поведения) в процессе совместного решения задач или при каких-либо других вариантах взаимодействия;

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

- языки программирования агентов,

- методы, языки и средства коммуникации агентов,

- методы и программные средства поддержки мобильности агентов (миграции агентов по сети).

Особое место занимают исследования, связанные с разработкой

приложений MAC и инструментальных средств поддержки технологии их разработки.

2.2 Агентно-ориентированный подход в программировании

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

- активность, способность к организации и реализации действий;

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

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

- целенаправленность, предполагающая наличие собственных источников мотивации, а в более широком плане, специальных интенциональных характеристик.

Соответственно, если рассмотреть систему абстрактных полярных шкал типа “пассивный - активный”, “реактивный - целенаправленный”, “зависимый - автономный” и поместить на них объекты и агенты, то интуитивно ясно, что объекты будут находиться на левых полюсах, а агенты должны быть расположены правее, ближе к полюсам “активный”, “целенаправленный”, “автономный”. Сдвинутое к правым полюсам промежуточное положение агентов на указанных шкалах показывает достигнутый уровень субъектности в искусственной системе.

Агентно-ориентированный подход к программированию - разновидность представления программ, или парадигма программирования, в которой основополагающими концепциями являются понятия агента и его ментальное поведение, которое зависит от среды, в которой он находится.

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

Под интеллектуальными агентами в информатике и ИИ понимаются любые физические или виртуальные единицы:

- способные действовать на объекты в некоторой среде, на других агентов, а также на самих себя (действие);

- способные общаться с другими агентами (общение);

- исходящие из некоторых потребностей и способные к целеобразованию (потребностно-целевая основа);

- обладающие набором интенциональных характеристик (убеждения, желания, намерения и пр.);

- несущие определенные обязанности и предоставляющие ряд услуг (наличие обязательств);

- обладающие собственными ресурсами, обеспечивающими их автономию (автономия);

- способные к восприятию среды (восприятие с ограниченным разрешением);

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

- способные к обучению, эволюции и адаптации (эволюционный и адаптационный потенциал);

- способные к самоорганизации и самовоспроизведению (самосохранение). [1]

Точное определение агента на сегодняшний день отсутствует. В основном используется определение, принятое на конференции международной ассоциации по лингвистике FIRA (Federation of Intelligent Physical Agents) в октябре 1996 года в Токио: "Агент - это сущность, которая находится в некоторой среде, интерпретирует их и исполняет команды, воздействующие на среду. Агент может содержать программные и аппаратные компоненты.

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

2.3 Классификация агентов

Фактически, используя понятие "агент", каждый автор или сообщество определяют своего агента с конкретным набором свойств в зависимости от целей разработки, решаемых задач, техники реализации, критериев. Как следствие, в рамках данного направления появилось множество типов агентов, например: автономные агенты, персональные ассистенты, интеллектуальные агенты, социальные агенты и т.д. А в зависимости от степени возможности внутреннего представления внешнего мира и способа поведения агенты классифицируются как локальные, сетевые, мобильные, интерфейсные, транслирующие, маршрутизации и т.д.

Таблица 2.1 Пример классификации агентов

Характеристики

Простые агенты

Смышленые агенты

Интеллектуальные агенты

Автономное выполнение

+

+

Взаимодействие с другими агентами и/или пользователями

+

+

+

Слежение за окружением

+

+

+

Способность использования абстракций

+

+

Способность использования предметных знаний

+

+

Возможность адаптивного поведения для достижения целей

+

Обучение из окружения

+

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

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

По этому признаку, выделяются интеллектуальные (когнитивные, рассудочные) и реактивные агенты.

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

Когнитивные агенты обладают более богатым представлением внешней среды, чем реактивные. Это достигается за счет наличия у них базы знаний и механизма решения. Близкий термин “рассудочный” агент служит для обозначения агента, который обладает символьной моделью внешнего мира, а также возможностью принимать решения на основе символьных рассуждений, например, метода сравнения по образцу. Когнитивные агенты, благодаря развитым внутренним представлениям внешней среды и возможностям рассуждений, могут запоминать и анализировать различные ситуации, предвидеть возможные реакции на свои действия, делать из этого выводы, полезные для дальнейших действий и, в результате, планировать свое поведение. Именно интеллектуальные способности позволяют таким агентам строить виртуальные миры, работая в которых они формируют планы действий. Когнитивные агенты имеют ярче выраженную индивидуальность, будучи более автономными, чем реактивные, и характеризуются развитым целесообразным поведением в сообществе агентов, достаточно не зависимым от других агентов.

Когнитивные агенты, благодаря их сложности, наличию знаний и способностей к рассуждениям о своем поведении и внешней среде могут работать относительно независимо, демонстрируя достаточно гибкое поведение. Но та же сложность автономных агентов, выливающаяся в способность противиться внешним воздействиям, вызывает определенные трудности при организации их эффективного взаимодействия. Поэтому в составе MAC, построенной из интеллектуальных агентов, как правило, присутствует около 5 - 10 автономных единиц.

Наоборот, довольно простая структура реактивных агентов, обусловливает их жесткую зависимость от среды. Следовательно, их возможности сравнительно невелики, когда они функционируют в одиночку и ограничены своими собственными ресурсами. Однако им легче образовать группу или организацию, способную гибко адаптироваться к изменениям среды под действием механизма естественного отбора. Поэтому реактивные агенты представляют интерес не на индивидуальном, а на коллективном уровне, причем их способности к адаптации и развитию возникают в результате локальных взаимодействий. Таким образом, реактивные агенты, которые почти не имеют индивидуальности, растворяются в общей массе, но за счет своего большого числа и избыточности они могут решать сложные задачи. В пределе, соответствующие MAC могут формироваться в результате взаимодействий без точного определения отдельных агентов. Подобные “рои”, состоящие из значительного числа реактивных агентов, можно сравнить с неким сверхорганизмом, взаимная адаптация и кооперация клеток которого позволяет создать общую цепь обратной связи, обеспечивающую гомеостазис всей системы.

Таблица 2.2 Сравнительный анализ свойств когнитивных и реактивных агентов

Характеристики

Когнитивные агенты

Реактивные агенты

Внутренняя модель внешнего мира

Развитая

Примитивная

Рассуждения

Сложные и рефлексивные рассуждения

Простые одношаговые рассуждения

Мотивация

Развитая система мотивации, включающая убеждения, желания, намерения

Простейшие побуждения, связанные с выживанием

Память

Есть

Нет

Реакция

Медленная

Быстрая

Адаптивность

Малая

Высокая

Модульная архитектура

Есть

Нет

Состав MAC

Небольшое число автономных агентов

Большое число зависимых друг от друга агентов

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

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

2.4 Архитектура агента

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

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

- архитектура, которая базируется на принципах и методах классического ИИ, т.е. систем, основанных на знаниях (“архитектура разумного агента”),

- архитектура, основанная на поведении или “реактивная архитектура”, которая исходит из реакций системы на события внешнего мира.

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

Наиболее часто в архитектуре агента присутствуют уровни, ответственные за:

а) восприятие и исполнение действий;

б) реактивное поведение;

в) локальное планирование;

г) кооперативное поведение;

д) моделирование внешней среды;

е) формирование намерений;

ж) обучение агента.

2.5 Кооперация агентов

Идея многоагентности предполагает кооперацию агентов при коллективном решении задач. В MAC агент, который не способен решить некоторую задачу самостоятельно, может обратиться к другим агентам. Другой вариант, когда необходима кооперация -- это использование коллектива агентов для решения общей трудной задачи. При этом агенты могут строить планы действий, основываясь уже не только на своих возможностях, но и “думая” о планах и намерениях других агентов. Известно, что коллективы даже простейших автоматов, в которых каждый автомат преследует только свои примитивные цели, в целом способны решать очень сложные задачи. В качестве иллюстрации можно взять, например, пчелиный улей или муравейник. Можно надеяться, что система, в которой агенты могут учитывать планы и интересы других агентов, будет являться во многих случаях еще более гибкой.

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

Существуют две основные модели взаимодействия агентов:

- Одноуровневая архитектура - агенты не образуют иерархии и решают общую задачу в распределенной организационной структуре.

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

Рассмотрим простейший вариант иерархической организации взаимодействия агентов, который предполагает использование хотя бы одного агента “метауровня”, осуществляющего координацию распределенного решения задач агентами.

Агент-Координатор может быть привязан к конкретному серверу, и тогда он называется “местом встречи агентов”. Таким образом, место встречи агентов (АМР --Agent Meeting Place) -- это по сути дела агент, играющий роль брокера между агентами, запрашивающими некоторые требующиеся им ресурсы, и агентами, которые эти ресурсы могут предоставить. Поэтому архитектура АМР есть архитектура обычного агента, дополненная некоторыми вспомогательными компонентами, характеризующими функции координатора взаимодействия других агентов. Вспомогательные компоненты должны, с одной стороны, содержать единое описание множества доступных через АМР агентов и их возможностей (ресурсов, функций и пр.) а, с другой стороны, организовать унифицированный доступ к ним. Это обеспечивается следующими компонентами АМР:


Подобные документы

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

    реферат [16,9 K], добавлен 07.03.2010

  • База знаний - структурированная информация из области знаний для использования кибернетическим устройством (человеком). Классификация, структура, формат представления знаний, интеллектуальные системы поиска информации. Базы знаний на примере языка Пролог.

    презентация [51,3 K], добавлен 17.10.2013

  • Анализ процессов диагностики повреждений трубопровода. Разработка модели продукционной базы знаний: обзор методов представления знаний, описание создания базы знаний и разработки механизма логического вывода. Экономическое обоснование концепции проекта.

    дипломная работа [3,0 M], добавлен 16.04.2017

  • Основные виды и технологии интеллектуальных информационных систем. Аспекты представления знаний. Функциональная структура использования ИИС. Интеллектуальная поддержка дистанционного образования и экстерната. Электронные учебники и тесты.

    контрольная работа [93,8 K], добавлен 29.11.2006

  • Построение графа связей фактов и определение структуры базы знаний. Описание функций инициализации и констатации фактов, входных и выходных данных. Операции, направленные на занесение фактов и действий в базу знаний. Итоговое представление базы знаний.

    курсовая работа [176,9 K], добавлен 13.11.2012

  • Понятия, классификация и структура экспертных систем. Базы знаний и модели представления знаний. Механизмы логического вывода. Инструментальные средства проектирования и разработки экспертных систем. Предметная область ЭС "Выбор мобильного телефона".

    курсовая работа [2,2 M], добавлен 05.11.2014

  • Преимущества и недостатки моделей представления знаний. Модель, основанная на правилах, фреймовая модель. Семантическая сеть. Структура экспертных систем и этапы их разработки. Механизмы логического вывода. Стратегия "вверх-снизу", "от цели к ситуации").

    презентация [195,3 K], добавлен 29.10.2013

  • Процедура назначения дальнего воздушного боя по воздуху на истребителе 4-го поколения F-16M1. Индикационное обеспечение ДБВ, проект бортовой оперативно-советующей экспертной системы. Фрагмент базы знаний для проблемной субситуации "Защита с нападением".

    курсовая работа [4,4 M], добавлен 08.01.2016

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

    презентация [1,6 M], добавлен 25.12.2014

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

    дипломная работа [1,8 M], добавлен 30.08.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.