В конкретной предметной области
Можно выделить несколько этапов разработки онтологии Эту методологию будем иллюстрировать примером онтологии вина и еды. Этап 1. Определение области и масштаба онтологии Прежде всего необходимо ответить на несколько основных вопросов: 1. Какую область будет охватывать онтология? 2. Для чего мы собираемся использовать онтологию? 3. На какие типы вопросов должна давать ответы информация в онтологии? 4. Кто будет использовать и поддерживать онтологию? Область нашей онтологии – представление еды и вин. Область использования этой онтологии - приложения, которые будут предлагать хорошие сочетания вин и еды. Конечно, в нашу онтологию будут включены понятия, описывающие различные типы вин, основные виды еды, понятие хорошего и плохого сочетания вина и еды. В то же время, маловероятно, что онтология будет включать понятия для управления инвентарем на винном заводе или служащими в ресторане, даже хотя эти понятия отчасти связаны с понятиями вина и еды. Если онтология будет использоваться для того, чтобы помочь посетителям ресторана решить, какое вино заказать, нам нужно будет включить информацию о розничных ценах. Если она будет использоваться для помощи покупателям вина в создании запасов в винном погребе, то могут понадобиться сведения об оптовых ценах и о наличии вин. Один из способов определить масштаб онтологии – это набросать список вопросов, на которые должна ответить база знаний, основанная на онтологии, то естьвопросы для проверки компетентности. Эти вопросы помогут ответить на вопрос: содержит ли онтология достаточно информации для ответа на эти типы вопросов? В области вина и еды возможны следующие вопросы для проверки компетентности: 1. Какие характеристики вина следует учитывать при выборе вина? 2. Вино Bordeaux красное или белое? 3. Хорошо ли сочетается Cabernet Sauvignon с морскими продуктами? 4. Какое вино лучше всего подойдет к жареному мясу? 5. Какие характеристики вина влияют на его сочетаемость с блюдом? 6. Влияет ли год производства вина на его букет или крепость? 7. Какие урожаи Napa Zinfandel были хорошими? Судя по этому списку вопросов, онтология будет включать информацию о различных характеристиках вина и типах вин, годах производства вин (хороших и плохих), классификациях еды, которые нужно учесть при выборе подходящего вина, рекомендуемых сочетаниях вина и еды. Этап 2. Перечисление важных терминов в онтологии Полезно составить список всех терминов, о которых мы хотели бы сказать что-либо. Какие термины мы бы хотели рассмотреть? Какие свойства имеют эти термины? Что бы мы хотели сказать об этих терминах? Например, в число важных терминов, связанных с винами, входят вино, виноград, винный завод, местоположение, цвет вина, его крепость, вкус и содержание сахара; различные виды еды, такие как рыба и черное мясо; типы вина, такие как белое вино и т.д. Вначале важно получить полный список терминов, не беспокоясь о пересечении понятий, которые они представляют, об отношениях между терминами, о возможных свойствах понятий или о том, чем являются понятия – классами или атрибутами. Этап 3. Определение классов и иерархии классов Существует несколько возможных подходов для разработки иерархии классов: § Процесс нисходящей разработки начинается с определения самых общих понятий предметной области с последующей конкретизацией понятий. Например, мы можем начать с создания классов для общих понятий Вино и Еда. Затем мы конкретизируем класс Вино, создавая его подклассы: Белое вино, Красное вино, Розовое вино. Мы можем еще дальше категоризировать класс Красное Вино, например, в Syrah, Red Burgundy, Cabernet Sauvignon и т.д. § Процесс восходящей разработки начинается с определения сам § ых конкретных классов, листьев иерархии, с последующей группировкой этих классов в более общие понятия. Например, сначала мы определяем классы для вин Pauillac и Margaux. Затем мы создаем общий надкласс для двух этих классов – Medoc, который, в свою очередь является подклассом Bordeaux. § Процесс комбинированной разработки – это сочетание нисходящего и восходящего подходов: Сначала мы определяем более заметные понятия, а затем соответствующим образом обобщаем и ограничиваем их. Мы могли бы начать с нескольких понятий высшего уровня, таких как Вино, и нескольких конкретных понятий, таких как Margaux. Затем мы можем соотнести их с понятием среднего уровня, таким как Medoc. После этого нам может понадобиться сформировать все классы вин из области Франции, формируя таким образом ряд понятий среднего уровня. На рис. показано возможное деление на различные уровни обобщения.
Рис. Различные уровни классификации Вино: Вино, Красное вино, Белое вино, Розовое вино – более общие понятия, верхний уровень. Pauillac и Margaux – самые конкретные классы в иерархии, нижний уровень. Ни один из этих трех методов не лучше других по своей сути. Выбор подхода в большой степени зависит от личного взгляда на предметную область. Если разработчик склонен к рассмотрению предметной области сверху вниз, то ему, возможно, больше подойдет нисходящий метод. Часто для многих разработчиков онтологий самым простым является комбинированный метод. Если вы склонны делать сначала самую общую классификацию вин, то вам больше подойдет нисходящий метод. Если вы бы начали приводить конкретные примеры, то более подходящим является восходящий метод. Какой метод мы бы ни избрали, обычно мы начинаем с определения классов. Из списка, составленного на этапе 2, мы выбираем термины, которые описывают объекты, существующие независимо, а не термины, которые описывают эти объекты. В онтологии эти термины будут классами. Классы образуют иерархическую классификацию. Если класс А – надкласс класса В, то каждый экземпляр В также является экземпляром А. Другими словами, класс В представляет собой понятие, которое является «разновидностью» А. Например, каждое вино Pinot Noir – обязательно красное вино. Поэтому класс Pinot Noir – подкласс класса Красное вино. Этап 4. Определение свойств классов. Классы сами по себе не предоставляют достаточно информации для ответа на вопросы проверки компетентности из этапа 1. После определения некоторого количества классов мы должны описать внутреннюю структуру понятий. Мы уже выбрали классы из списка терминов, который мы создали на этапе 2. Большинство оставшихся терминов, вероятно, будут свойствами этих классов. Эти термины включают, к примеру, цвет вина, его крепость, вкус и содержание сахара, а также местоположение винного завода. Для каждого свойства из списка мы должны определить, какой класс оно описывает. Эти свойства станут атрибутами, привязанными к классам. Таким образом, у класса Вино будут следующие атрибуты цвет, крепость, вкус и сахар. А у класса Винный завод будет атрибут местоположение. Вообще, в онтологии атрибутами могут стать несколько типов свойств объектов: - «внутренние» свойства, такие как вкус вина; - «внешние» свойства, такие как название вина и область, в которой оно было произведено; - части, если объект имеет структуру; они могут быть как физическими, так и абстрактными «частями» (например, блюда, входящие в обед); - отношения с другими индивидными концептами; это отношения между отдельными членами класса и другими элементами (например, производитель вина, представляющий отношение между вином и винным заводом, и виноград, из которого произведено вино). Таким образом, в дополнение к ранее определенным свойствам, к классу Вино нам нужно добавить следующие атрибуты: название, область, производитель, виноград. Все подклассы класса наследуют атрибут этого класса. Например, все атрибуты класса Вино будут унаследованы всеми подклассами этого класса, включая Красное Вино и Белое Вино. К классу Красное Вино мы добавим дополнительный атрибут уровень танина (низкий, средний или высокий), будет унаследован всеми классами, представляющими красные вина (такие как Bordeaux и Beaujolais). Атрибут должен быть привязан к самому общему классу, у которого может быть данное свойство. Например, крепость и цвет вина нужно будет привязать к классу Вино, так как это самый общий класс, чьи экземпляры будут иметь крепость и цвет. Этап 5. Создание экземпляров Последний этап – это создание отдельных экземпляров классов в иерархии. Для определения отдельного экземпляра класса требуется (1) выбрать класс, (2) создать отдельный экземпляр этого класса (3) ввести значения атрибутов. Например, мы можем создать отдельный экземпляр Chateau-Morgon-Beaujolais для представления определенного типа вина Beaujolais. Chateau-Morgon-Beaujolais – это экземпляр класса Beaujolais, представляющего все вина Beaujolais. У этого экземпляра определены следующие значения атрибутов: 1. Крепость: Легкое 2. Цвет: Красный 3. Вкус: Мягкий 4. Уровень танина: Низкий 5. Виноград: Gamay (экземпляр класса Виноград для изготовления вин) 6. Производитель: Chateau-Morgon (экземпляр класса Винный завод) 7. Область: Beaujolais (экземпляр класса Винная область) 8. Сахар: Сухое Рассмотрим некоторые проблемы, которые могут возникнуть при выполнении этих этапов: · Множественное наследование. Большинство систем представления знаний позволяют осуществлять множественное наследование в иерархии классов: класс может быть подклассом нескольких классов. Предположим, что мы хотим создать отдельный класс десертных вин - класс Десертное вино. Вино Port является и красным, и десертным вином [4]. Следовательно, мы определяем, что у класса Port есть 2 надкласса: Красное вино и Десертное вино. Все экземпляры класса Port будут экземплярами как класса Красное вино, так и класса Десертное вино. Класс Port унаследует атрибуты от обоих родителей. Таким образом, он унаследует значение СЛАДКОЕ из атрибута Сахар класса Десертное вино, а также атрибут уровень танина и атрибут цвета класса Красное вино. · Когда вводить (или не вводить) новый класс Одно из самых сложных решений, которое нужно принять во время моделирования, - это определить, когда ввести новый класс или когда сформулировать различие с помощью разных значений свойств. Сложно ориентироваться как в иерархии с очень большой степенью вложенности и множеством посторонних классов, так и в очень плоской иерархии, где очень мало классов, но в их атрибутах закодировано слишком много информации. Найти подходящий баланс нелегко. Существует несколько практических способов определения того, когда в иерархию следует ввести новые классы: Обычно подклассы класса (1) имеют дополнительные свойства, которых нет у надкласса, или (2) ограничения, отличные от тех, которые есть у надкласса, или (3) состоят в других отношениях, нежели надклассы. У красных вин разные уровни танина, тогда как это свойство не используется для описания вин в общем. Атрибут сахар класса Десертное вино имеет значение СЛАДКОЕ, тогда как для надкласса класса Десертное вино это не так. Вина Pinot Noir могут хорошо сочетаться с морскими продуктами, тогда как другие красные вина – нет. Другими словами, мы обычно вводим в иерархию новый класс только тогда, когда мы можем сказать про этот класс что-то такое, чего мы не можем сказать о надклассе. На практике к каждому подклассу нужно добавить новые атрибуты. Однако иногда может быть полезно создать новые классы, даже если они не вводят никаких новых свойств. Классы в иерархиях терминов не обязаны новые свойства. Например, некоторые онтологии включают большие иерархии ссылок обычных терминов, используемых в предметной области. К примеру, онтология, которая лежит в основе электронной системы записи медицинской информации, может включать классификацию различных болезней. Эта классификация может быть как раз такой - иерархией терминов, без свойств (или с одним и тем же набором свойств). В этом случае по-прежнему полезно организовать термины в иерархию, а не в линейный список, потому что она (1) облегчит изучение и навигацию и (2) позволит врачу легко выбрать подходящий уровень общности термина. Другая причина введения новых классов без новых свойств – это моделирование понятий, среди которых эксперты в предметной области обычно проводят разграничение, даже несмотря на то, что мы могли принять решение не моделировать само разграничение. Так как мы используем онтологии для содействия коммуникации между экспертами в предметной области, а также между экспертами и системами, основанными на знаниях, то в онтологии мы бы хотели отразить точку зрения эксперта на предметную область. · Экземпляр или класс? Определение того, чем является определенное понятие - классом в онтологии или отдельным экземпляром - зависит от потенциальных приложений онтологии. Определение того, где заканчиваются классы и начинаются отдельные экземпляры, начинается с определения нужной глубины детализации в представлении. Глубина детализации, в свою очередь, определяется потенциальным приложением онтологии. Если возвратиться к вопросам для проверки компетентности, которые мы определили на этапе 1, самые конкретные понятия, которые будут ответами на эти вопросы, лучше всего подойдут на роль индивидных концептов в базе знаний. Отдельные экземпляры - самые конкретные понятия, представленные в базе знаний. Например, если мы собираемся говорить только о подборе сочетаний вина и еды, то нас не будут интересовать конкретные материальные бутылки вина. Поэтому такие термины как Sterling Vineyards Merlot, вероятно, будут самыми конкретными используемыми нами терминами. Следовательно, Sterling Vineyards Merlot будет экземпляром в базе знаний. С другой стороны, если бы мы хотели поддерживать в ресторане ассортимент вин в дополнение к базе знаний хороших сочетаний «вино-еда», то отдельными экземплярами в нашей базе знаний могли бы стать отдельные бутылки каждого вина. Другое правило может «переместить» некоторые отдельные экземпляры в разряд классов: Если понятия формируют естественную иерархию, то нам нужно представить их, как классы. Рассмотрим винные области. В начале мы можем определить основные винные регионы, такие как Франция, США, Германия и т.д. как классы, а конкретные винные области внутри этих регионов как экземпляры. Например, область Bourgogne – это экземпляр класса регион Франция. Однако мы бы также хотели отметить, что область Cotes d’Or – это область Bourgogne. Поэтому область Bourgogne должна быть классом (чтобы иметь подклассы или экземпляры). Однако представление области Bourgogne как класса, а области Cotes d’Or как экземпляра области Bourgogne кажется произвольным: очень сложно четко разграничить, какие области являются классами, а какие – экземплярами. Поэтому мы определяем все винные области как классы. · Обратные атрибуты Значение атрибута может зависеть от значения другого атрибута. Например, если вино было произведено на винном заводе, то винный завод производит это вино. Эти два отношения, производитель и производит, называются обратными отношениями. Излишне хранить информацию и о том, и о другом. Когда мы знаем, что вино производится на винном заводе, то приложение, которое использует базу знаний, всегда может вывести значение для обратного отношения: винный завод производит вино. Тем не менее, с точки зрения приобретения знаний удобно иметь оба блока информации доступными в явном виде. Этот подход позволяет пользователям указать вино в одном случае и винный завод в другом. После это система приобретения знаний может автоматически заполнить значение для обратного отношения, обеспечивая согласованность базы знаний. В нашем примере есть пара обратных атрибутов: производитель класса Вино и производит класса Винный завод. Когда пользователь создает экземпляр класса Вино и заполняет значение атрибута производитель, система автоматически добавляет вновь созданный экземпляр к атрибуту производит соответствующего экземпляра класса Винный завод. Например, когда мы говорим, что Sterling Merlot производится на заводе Sterling Vineyard, система автоматически добавляет Sterling Merlot к списку вин, которые производит завод Sterling Vineyard.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|