рррр. Лабораторная работа 1 по курсу Интеллектуальные информационные системы Создание онтологии и её применение в ис цель работы
Скачать 0.67 Mb.
|
Лабораторная работа №1 по курсу «Интеллектуальные информационные системы» Создание онтологии и её применение в ИС Цель работы Ознакомиться с понятием онтологии в сфере представления знаний и основ- ными типами онтологий. Освоить принципы проектирования онтологий и их разра- ботки с использованием инструментальных средств. Методические указания Онтологии и их применение Существуют различные модели представления знаний: формально-логическая, продукционная, фреймовая, семантическая сеть. Одним из современных средств представления знаний являются онтологии – формальные явные описания терминов предметной области и отношений между ними (определение дано по Т. Груберу). Под определение онтологии попадают многие модели представления знаний: фрей- мы, семантические сети, концептуальные карты и т.п. Формальное определение он- тологии можно записать в виде: } , , { A R C O где O – онтология, С – совокупность концептов (понятий) предметной облас- ти, R – совокупность отношений между концептами, A – набор аксиом (законов и правил, которые описывают законы и принципы существования концептов). Классификация онтологий по целям создания: Назначение прикладной онтологии в том, чтобы описать концептуальную модель конкретной задачи или приложения. Прикладные онтологии описывают концепты, которые зависят как от онтологии задач (см. ниже), так и от онтологии предметной области. Примером может служить онтология для автомобилей, строи- тельных материалов, вычислительной техники. Такие онтологии содержат наиболее специфичную информацию. Классификация онтологий по содержимому: Онтология, ориентированная на задачу (онтология задач) – это онтология, используемая конкретной прикладной программой и содержащая термины, которые используются при разработке ПО, выполняющего конкретную задачу. Она отражает специфику приложения, но может также содержать некоторые общие термины (на- пример, в графическом редакторе будут и специфические термины — палитра, тип заливки, наложение слоев и т.д., и общие — сохранить и загрузить файл). Задачи, которым может быть посвящена онтология, могут быть самыми разнообразными: составления расписания, определение целей, диагностика, продажа, разработка ПО, построение классификации. При этом онтология задачи использует специализацию терминов, представленных в онтологиях верхнего уровня (общих онтологиях) [1]. Почему возникает потребность в разработке онтологии? Вот некоторые при- чины [2]: Для совместного использования людьми или программными агентами общего понимания структуры информации. Для возможности повторного использования знаний в предметной об- ласти. Для того чтобы сделать допущения в предметной области явными. Для отделения знаний в предметной области от оперативных знаний. Для анализа знаний в предметной области. Часто онтология предметной области сама по себе не является целью. Разра- ботка онтологии сродни определению набора данных и их структуры для использо- вания другими программами. Методы решения задач, доменно-независимые прило- жения и программные агенты используют в качестве данных онтологии и базы зна- ний (БЗ), построенные на основе этих онтологий – онтология, содержащая экземп- ляры классов, является базой знаний, хотя на практике и не всегда возможно про- вести точную границу между БЗ и онтологией. Среди таких приложений можно отметить современные интеллектуальные системы (ИС) – системы, способные решать задачи в некоторой предметной облас- ти, традиционно считающиеся творческими. Такие системы являются системами, основанными на знаниях (СОЗ), хотя иногда различие между этими двумя типами систем фактически не проводится. Основными компонентами ИС являются база знаний (декларативный компонент) и «решатель» или «механизм вывода» (проце- дурный компонент); в некоторых случаях в качестве важных составляющих ИС упоминаются также интеллектуальный интерфейс пользователя, подсистема объяс- нений и интеллектуальный редактор БЗ. Фреймовые и гибридные онтологии Продукционная модель представления знаний (реализуемая, в частности, в логических языках Prolog, CLIPS), в общем случае может быть представлена в виде: Q B A L S i ; ; ; где S – описание класса ситуаций; L – условие, при котором продукция акти- визируется; A B – ядро продукции; Q – постусловие продукционного правила. Такая модель является одним из самых распространённых средств представ- ления знаний в интеллектуальных системах благодаря своей наглядности, модуль- ности (как следствие – легкости внесения изменений и дополнений) и удобства для осуществления вывода. Тем не менее, продукционная модель обладает и существен- ными недостатками: 1) отсутствие иерархии продукционных правил (и вообще отношений между правилами), что приводит к малой пригодности модели для описания поля знаний сложной предметной области; 2) сложность учёта правил, которые могут начать противоречить друг другу, и управления очерёдностью их выполнения. Для устранения этих недостатков возможно использование продукционной модели в симбиозе средств представления знаний, который в последнее время при- обрёл популярность при формализации знаний. В этом случае продукционная мо- дель может выступать в качестве процедурного компонента во фреймовой 1 модели, которая способна сочетать декларативный и процедурный компоненты представле- ния знаний. 1 Термин «фрейм», впервые введённый в области ИИ Марвином Минским, означает структуру знаний, моде- лирующую мышление человека и соответствующую абстрактному образу какого-либо объекта, явления, события, си- туации, процесса. Фреймовая онтология, как и другие виды онтологий, представляется в виде сети, состоящей из узлов и связей между ними, причем «верхние уровни» фрейма образованы общими понятиями (классами), а на более низких уровнях фрейма рас- полагаются вершины-терминалы (так называемые слоты), которые должны быть за- полнены конкретными данными или примерами. Характерной особенностью фрей- мовой модели является то, что первоначально слоты могут быть заполнены «зада- ниями отсутствия» – заранее заготовленными значениями, не обязательно имеющи- ми место в конкретной ситуации. Следовательно, в составе фреймовой структуры фрейм содержит: имя фрейма, указатели наследования (если фреймовая структура является иерархической), слоты (с именами слотов), тип данных значения слотов и сами значения слотов (могут отсутствовать). В большинстве фреймовых структур значениями слотов могут выступать другие фреймы, реализовывая тем самым раз- личные виды связей между понятиями, а в некоторых случаях – и присоединённые процедуры, реализующие процедурный компонент в представлении знаний. В качестве процедурного компонента во фреймовой онтологии может высту- пать продукционная модель, при этом фреймы будут являться главными источника- ми знаний, а правила продукционной модели – играть вспомогательную роль, ис- пользуясь, например, для заполнения значениями фреймов-экземпляров. Инструментальные средства для создания онтологий При создании онтологий целесообразно пользоваться подходящими инстру- ментами – программными средствами, созданными специально для проектирования, редактирования и анализа онтологий и называемыми редакторами онтологий. В большинстве своем современные редакторы онтологий предоставляют средства «кодирования» формальной модели в том или ином виде. Некоторые дают дополни- тельные возможности по анализу онтологии, используют механизм логического вы- вода. Под формализмом понимается теоретический базис, лежащий в основе спо- соба представления онтологических знаний. Примерами формализмов могут слу- жить логика предикатов (First Order Logic — FOL), дескриптивная логика, фреймо- вые модели, концептуальные графы и т.п. Формализм, используемый редактором, может не только существенно влиять на внутренние структуры данных, но и опре- делять формат представления или даже пользовательский интерфейс. Формат пред- ставления онтологии задает вид хранения и способ передачи онтологических опи- саний (могут использоваться языки представления онтологий RDF, OWL, KIF, SCL). Например, некоторая формальная модель представляется в формализме FOL и мо- жет быть выражена средствами языка KIF. Редакторы онтологий обычно поддержи- вают работу с несколькими формализмами и форматами представления, но часто только один формализм является «родным» (native) для данного редактора. Одним из популярных редакторов онтологий является свободно распростра- няемый редактор Protégé, разработанный в Стэнфордском университете (США) – см. http://protege.stanford.edu/ . Изначально единственной моделью знаний (форма- лизмом), поддерживаемой Protege, была фреймовая модель (в версии редактора Protégé-Frames), однако впоследствии была добавлена поддержка языка OWL 2 Версия редактора Protégé-OWL, на настоящий момент стала основной, а её различия с Protégé-Frames описаны в [3]. Редактор Protégé-Frames позволяет пользователям строить и заполнять онто- логии, основанные на фреймах, в соответствии с протоколом OKBC 3 , а форматом представления является язык KIF 4 . Таким образом, основными элементами онтоло- гии в Protégé-Frames являются классы (classes), экземпляры (instances), слоты (slots), представляющие свойства классов и экземпляров, и фасеты (facets), задаю- щие дополнительную информацию о слотах. Protege имеет открытую, легко расширяемую архитектуру и поддерживает модули расширения функциональности (plug-ins). В частности, модуль расшире- ния CLIPSTab позволяет осуществлять интеграцию с языком разработки экспертных систем CLIPS (C Language Integrated Production System). Наконец, для Protégé разра- ботана концепция совместной работы нескольких пользователей (Collaborative Protégé), воплощенная в онлайн-версии данного редактора (см. пример на http://webprotege.stanford.edu/ ), хотя для выполнения данной лабораторной работы использование онлайн-версии редактора не рекомендуется. Подробное описание интерфейса Protégé-Frames приводится на веб-сайте разработчика ( http://protegewiki.stanford.edu/wiki/PrF_UG ). Последняя версия Protégé-Frames может быть получена на сайте авторов. Методология создания онтологий (на примере Protégé-Frames) Разработка функциональной онтологии для сложной предметной области, как правило, является трудоемким и итеративным процессом, к тому же вплоть до конца 1990-х годов отмечался недостаток проработанных методологий для создания онто- логий. Однако в течение 2000-х годов интерес к применению онтологий был значи- телен, как со стороны исследователей, так и специалистов, и это нашло своё отра- жение, в частности, в методологии, предлагаемой разработчиками Protégé (полную версию см. в [2]). Следует иметь в виду, что не существует единственного «правильного» спо- соба или методологии разработки онтологий – всегда существуют жизнеспособные 2 OWL (Web Ontology Language) – язык описания онтологий для семантической паутины (Semantic Web). 3 OKBC (Open Knowledge Base Connectivity protocol) – прикладной интерфейс программирования для доступа к базам знаний систем представления знаний. 4 KIF (Knowledge Interchange Format) – язык, предназначенный для обмена знаниями между различными ком- пьютерными программами (соответствует стандарту Common Logic). альтернативы, однако содержание онтологии всегда определяется её целями (пред- полагаемым применением) и планируемыми направлениями дальнейшего развития (процесс создания онтологий, как правило, является итеративным). Тем не менее, в рамках процесса создания онтологий можно выделить следующие шаги. 1. Определение области и масштаба онтологии Для этого разработчик онтологии должен ответить на следующие вопросы: 1) Какую область будет охватывать онтология? 2) Для чего мы собираемся использовать онтологию? 3) На какие типы вопросов должна давать ответы информация в онтологии? 4) Кто будет использовать и поддерживать онтологию? Так, в [2] описывается разработка онтологии, область которой – ви на и еда, а предполагаемое использование – в интеллектуальных системах, которые будут предлагать сочетания вин и еды (например, для совершения заказа в ресторане). 2. Поиск существующих онтологий Целесообразно бывает рассмотреть возможность использования уже сущест- вующей онтологии, если она полностью или частично покрывает нужды разработ- чика. Многие онтологии уже доступны в электронном виде и могут быть импорти- рованы в используемую среду проектирования онтологии (в особенности, если она способна работать с различными формализмами). Примечание: при выполнении данной лабораторной работы допустимо ис- пользование существующих онтологий, частично (но не полностью) соответст- вующих заданию. В этом случае в отчете должно быть приведено описание суще- ствующей онтологии (со ссылкой) и процесса её доработки. 3. Перечисление важных терминов в онтологии На данном шаге рекомендуется составление неструктурированного списка терминов предметной области, без разделения на классы (концепты) и слоты (атри- буты классов). Следующие два шага – разработка иерархии классов и определение свойств понятий (слотов) – являются наиболее важными в процесс создания онтологии и тесно переплетены между собой (как правило выполняются параллельно). 4. Определение классов и иерархии классов Существует несколько возможных подходов для разработки иерархии классов: 1) процесс нисходящей разработки, который начинается с определения самых общих понятий предметной области с последующей конкретизацией понятий; 2) процесс восходящей разработки, который начинается с определения самых конкретных классов (листьев иерархии), с последующей группировкой этих классов в более общие понятия; 3) процесс комбинированной разработки – сочетание нисходящего и восходя- щего подходов: сначала мы определяем более заметные понятия, а затем соответст- вующим образом обобщаем и ограничиваем их. Ни один из этих трех методов не лучше других по своей сути и выбор подхода в большой степени зависит от личного взгляда разработчика на предметную об- ласть. Часто для многих разработчиков онтологий самым простым является комби- нированный метод, т.к. понятия, находящиеся «посередине», имеют тенденцию быть самыми наглядными понятиями в предметной области В любом случае, в ходе данного шага из списка, составленного на шаге 3, должны быть выбраны термины, являющиеся классами в иерархической структуре (т.е. связанные отношениями is_a – a_kind_of). 5. Определение свойств классов – слотов Те термины из списка, составленного на шаге 3, которые не являются класса- ми, скорее всего, станут их свойствами – слотами. Вообще, в онтологии слотами мо- гут стать несколько типов свойств объектов: 1) «внутренние» свойства (например, вкус вина); 2) «внешние» свойства (например, название вина и область его производства); 3) структурные части – как физические, так и абстрактные (например, блюда, входящие в обед); 4) отношения с другими концептами – между отдельными членами класса и другими элементами (например, производитель вина, представляющий отношение между вином и винным заводом). Все подклассы класса наследуют слоты класса-родителя. Слот должен быть привязан к самому общему классу, у которого может быть данное свойство. Важно различать класс и его имя: классы представляют понятия предметной области, а не слова, которые обозначают эти понятия (подробные замечания по созданию иерар- хии классов в онтологии приведены в [2, С.11-18]). 6. Определение фасетов слотов Слоты могут иметь различные фасеты, которые описывают тип значения, раз- решенные значения, число значений (мощность) и другие свойства значений, кото- рые может принимать слот. Мощность слота определяет, сколько значений может иметь слот. В некото- рых системах различаются только единичная мощность (возможно только одно зна- чение) и множественная мощность (возможно любое число значений). Некоторые системы позволяют определить минимальную и максимальную мощность для того, чтобы более точно описать количество значений слота (минимальная мощность N означает, что слот должен иметь не менее N значений). Иногда полезно установить максимальную мощность в 0 – это будет означать, что для определенного подкласса слот не может иметь значений. Тип значения слота описывает, какие типы значений можно ввести в слот. Вот список наиболее общих типов значений: строка, число (целое или дробное), булевое (логическое) значение, перечисление (в Protégé – тип Symbol), экземпляр класса (позволяет определить отношения между концептами). Диапазон значений слота – разрешенные классы для слотов типа экземпляр. Например, для класса «Мясное блюдо» слот «рекомендованное вино» может иметь в качестве допустимых значений экземпляры класса «Красное вино», а для класса «Рыбное блюдо» – «Белое вино» (при этом их класс-родитель, «Еда», может иметь в качестве допустимых значений экземпляры класса «Вино»). 7. Создание экземпляров Последний шаг – это создание отдельных экземпляров классов в иерархии. Для определения отдельного экземпляра класса требуется выбрать класс, создать отдельный экземпляр этого класса и установить значения слотов (не обязательно всех). Дополнительные замечания: 1. Следует выбрать стандарт наименования классов и слотов и придержи- ваться его при разработке онтологии. Как правило, названия классов начинаются с заглавной буквы, а слотов – со строчной. Наименование классов чаще производится в единственном числе («Вино», а не «Вина»), хотя допустимо и множественное. Следует также выбрать разделитель (пробел, подчеркивание, знак минуса или плю- са), который будет использоваться в именах классов и слотов, состоящих из не- скольких слов. При выполнении лабораторной работы рекомендуется использование назва- ний на английском языке, для большей совместимости с CLIPS. 2. При создании онтологии в Protégé отношение с другим концептом задает- ся посредством слота, значением которого является экземпляр класса, с кото- рым устанавливается отношение. Для установления двусторонних отношений могут использоваться обратные слоты (inverse slots): например, если вино было произве- дено на винном заводе, то винный завод производит это вино. В случае таких об- ратных отношений, система сможет автоматически заполнить значение для обрат- ного отношения, обеспечивая согласованность базы знаний. 3. Если значение определенного слота одинаково для большинства экземпля- ров класса, то мы можем определить это значение как значение слота по умолча- нию. Затем, когда создается каждый экземпляр класса, имеющего этот слот, система автоматически заполняет значение по умолчанию, но после этого мы можем изме- нить это значение на любое другое, которое позволят фасеты. То есть, значения по умолчанию созданы для удобства: в любом случае они не накладывают какие-либо ограничения на модель или никак ее не меняют. Примеры онтологий: В качестве примера, к лабораторной работе прилагается фрагмент онтологии WDO 5 (WDO-lab.pprj), предназначенной для контекстной организации знаний (практических рекомендаций) в сфере проектирования веб-интерфейсов. Созданная на основе онтологии база знаний, в составе интеллектуальной системы позволяет пользователю (проектировщику веб-интерфейсов) быстрый доступ к рекомендаци- ям, организованным в зависимости от элемента интерфейса (или веб-сайта) и других факторов, определяющих контекст проектируемого взаимодействия. Исходя из это- го, онтология содержит такие основные классы (см. Рис. 1) как Interface element (элемент интерфейса), Website element (элемент веб-сайта), Style (CSS) property (свойство каскадной таблицы стилей) и HCI knowledge representation class (Класс представления знаний в сфере человеко-компьютерного взаимодействия). Рис. 1. Визуализация (при помощи модуля OntoViz) взаимосвязей основных классов онтологии. Среди подклассов класса HCI knowledge representation class (см. Рис. 2), соот- ветствующих знаниям различного уровня (закон, принцип, рекомендация) следует особо отметить класс Guideline (рекомендация), одним из слотов которого является tag (тэг), реализующий тэговую категоризацию – значением данного слота может являться подкласс класса THING, т.е. любой класс (концепт) онтологии. Таким об- разом, онтология является не только основой для БЗ системы, но и содержит упоря- доченную терминологию предметной области, используемую для тэговой категори- зации. 5 WDO: Web Design Ontology (Бакаев М.А.) Рис. 2. Визуализация класса HCI knowledge representation class и подклассов. В комплекте с Protégé поставляется несколько дополнительных примеров он- тологий (Newspaper, Pizza). Кроме того, авторы редактора предлагают документ ( http://protegewiki.stanford.edu/images/e/e8/Protege-frames-get-started.pdf ), детально описывающий процесс создания одной из онтологий. Ход выполнения работы 1. Изучить методические указания к лабораторной работе. 2. Установить редактор Protégé-Frames и осуществить донастройки: Установка Protégé-Frames Рекомендуемая версия редактора Protégé-Frames: 3.4.8 ( http://protege.stanford.edu/download/protege/3.4/installanywhere/Web_Installers/ ). Русификация Protégé (необязательный шаг) Для русификации интерфейса Protégé-Frames, замените файл protege_text.properties, находящийся в папке Protégé, на файл, прилагаемый к лабо- раторной работе 6 Установка OntoViz (необязательный шаг) Модуль расширения Protégé под названием OntoViz служит для визуализации онтологии (автоматического построения схем взаимосвязей классов и экземпляров). OntoViz может быть использован для отражения структуры онтологии в отчёте по лабораторной работе (см. описание, инструкции по установке и документацию по использованию модуля по адресу http://protegewiki.stanford.edu/wiki/OntoViz ). Альтернативным средством визуализации онтологии может являться вкладка Jambalaya. 3. Спроектировать онтологию для выбранной предметной области: Предметные области (по вариантам): 1. Разработка ПО (ИС) 2. Анализ требований к ПО 3. Проектирование архитектуры ПО 4. Программная реализация ПО 5. Тестирование и отладка ПО 6. Внедрение и поддержка (сопровождение) ПО 7. Проектирование компьютерных интерфейсов 8. CASE-средства 9. Контроль качества ПО 10. Моделирование бизнес-процессов По согласованию с преподавателем, студенты могут предложить свой вариант предметной области – например, соответствующий теме РГР. 6 локализация взята с сайта http://shcherbak.net/iniciativa-lokalizaciya-redaktora-ontologij-protege/ При выборе следует иметь в виду, что выбираемая предметная область и цели ИС, разрабатываемой в лабораторной работе №2, должны соотноситься между собой. 4. Создать онтологию в редакторе Protégé-Frames: В соответствии с описанным выше процессом создания онтологии, реализуйте в Protégé-Frames прикладную онтологию задач для выбранных в лабораторной рабо- те №3 предметной области и цели создания ИС. Создаваемая онтология должна со- держать не менее 50 основных фреймов (классов, слотов) и не менее 20 фреймов- экземпляров. 5. Оформить отчёт по лабораторной работе: Содержание отчёта Выбранная предметная область и возможная цель использования онто- логии Описание существующих (готовых) онтологий, если таковые есть и ис- пользуются при выполнении работы Список терминов предметной области с указанием их разделения на классы, слоты, экземпляры и т.д. Описание структуры онтологии (классы, слоты, экземпляры). К отчёту также должны прилагаться: Файл с классами онтологии (ontology.pont) Файл с экземплярами классов (ontology.pins) Файл проекта Protégé (ontology.pprj) 6. Защитить лабораторную работу, при необходимости ответив на кон- трольные вопросы. Контрольные вопросы 1. Поясните, каким образом цель создания онтологии определяет её структу- ру? 2. В чём вы видите отличие онтологии от базы знаний и от интеллектуальной (экспертной) системы? 3. Какие модели представления знаний (помимо фреймов) вы знаете? 4. Какие типичные отношения между концептами в онтологиях вы знаете? 5. В чём отличие иерархических и ассоциативных связей между концептами? Литература 1. Б.В. Добров, В.В. Иванов, Н.В. Лукашевич, В.Д. Соловьев. Онтологии и те- заурусы: модели, инструменты, приложения. http://www.intuit.ru/department/expert/ontoth/ 2. Н.Ф. Ной и Д.Л. МакГиннесс. Разработка онтологий 101: руководство по созданию Вашей первой онтологии. http://ifets.ieee.org/russian/depository/ontology101_rus.doc 3. H.H. Wang и др. Frames and OWL Side by Side http://protege.stanford.edu/conference/2006/submissions/abstracts/7.2_Wang_Hai_Protege _conf.pdf |