Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ГОСы / ФБИ ИИС 2016

.pdf
Скачиваний:
28
Добавлен:
04.01.2020
Размер:
5.97 Mб
Скачать

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

GPL. Инструмент использует для представления онтологий язык OIL. В OilEd отсутствует поддержка экземпляров классов.

WebOnto

WebOnto представляет собой Java-апплет и разработан для просмотра, создания и редактирования онтологий. Для моделирования онтологий он использует язык OCML (Operational Conceptual Modeling Language). Пользователь может создавать различные структуры, в том числе классы со множественным наследованием. Инструмент имеет ряд полезных особенностей: просмотр отношений, классов и правил, возможна совместная работа над онтологией нескольких пользователей.

ODE, WebODE

ODE (Ontological Design Environment) взаимодействует с пользователями на концептуальном уровне, обеспечивает их набором таблиц для заполнения (концептов,

атрибутов, отношений) и автоматически генерирует код на языках LOOM, Ontolingua и F-

Logic. Данный инструмент получил свое развитие в редакторе онтологий WebODE,

который интегрирует все сервисы ODE в единую архитектуру, сохраняя свои онтологии в реляционной БД.

37 Подход к формированию онтологий в редакторе Protégé.

Последовательность создания онтологий

Фундаментальные правила разработки онтологии:

1)Не существует единственного правильного способа моделирования предметной области – всегда существуют жизнеспособные альтернативы. Лучшее решение почти всегда зависит от предполагаемого приложения и ожидаемых расширений.

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

3)Понятия в онтологии должны быть близки к объектам (физическим или логическим)

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

37.2. Последовательность создания онтологий.

1 шаг: Определение области и масштаба онтологии Ответить на вопросы:

1.Какую область будет охватывать онтология?

2.Для чего мы собираемся использовать онтологию?

3.На какие типы вопросов должна давать ответы информация в онтологии?

4.Кто будет использовать и поддерживать онтологию?

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

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

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

3 шаг: Перечисление важных терминов в онтологии Полезно составить список всех терминов, о которых мы хотели бы сказать что-либо

или которые хотели бы объяснить пользователю. 4 шаг: Определение классов и иерархии классов

5 шаг: Определение свойств классов – слотов

6 шаг: Определение фацетов слотов Слоты могут иметь различные фацеты, которые описывают тип значения, разрешенные

значения, число значений (мощность) и другие свойства значений, которые может принимать слот. Например, значение слота название (как в «название вина») – одна строка. То есть, название – это слот с типом значения Строка.

7 шаг: Создание экземпляров Для определения отдельного экземпляра класса требуется (1) выбрать класс, (2)

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

38 Элементы фреймовых онтологий – классы, экземпляры,

слоты (типы значений, кардинальность), отношения и т.д.

Классы – абстрактные группы, коллекции или наборы объектов. Они могут включать в себя экземпляры, другие классы (подклассы), либо же сочетания и того, и другого.

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

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

Мощность слота (кардинальность) определяет, сколько значений может иметь слот. В

некоторых системах различаются только единичная (возможно только одно значение) и

множественная (возможно любое число значений) мощности. Некоторые системы позволяют определить минимальную и максимальную мощности. Минимальная мощность

N означает, что слот должен иметь не менее N значений. Установка «0» будет означать,

что для определенного подкласса слот не может иметь значений.

Фацет типа значения слота описывает, какие типы значений можно ввести в слот.

Наиболее часто используемыми типами значений являются:

- простые скалярные типы (строки, целые и вещественные числа, булевы величины и т.

д.);

- списки разрешенных значений (нумерованные слоты; в Protege-2000 тип называется

«Symbol» – «символ»);

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

экземпляры которых можно использовать в слоте).

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

Отношения– зависимость между объектами онтологии. Обычно отношением является атрибут, значением которого является другой объект.

39 Язык создания экспертных систем CLIPS: поддерживаемые парадигмы, основные структуры данных, конструкции языка для обработки данных и осуществления вывода.

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

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

которые совместно работают над разрешением проблемы) и процедурную парадигму представления знаний.

Поддерживает логическую, процедурную и объектно-ориентированную парадигмы программирования. Также в CLIPS предусмотрены 3 основных формата представления информации: факты, глобальные переменные и объекты.

Синтаксис языка CLIPS можно разбить на три основных группы элементов,

предназначенных для написания программ: примитивные типы данных; функции,

использующиеся для обработки данных; конструкторы, предназначенные для создания таких структур языка, как факты, правила, классы.

Основные конструкции:

факты - одна из основных форм представления данных в CLIPS. Каждый факт представляет собой определенный набор данных, сохраняемый в текущем списке фактов

— рабочей памяти системы. Список фактов представляет собой универсальное хранилище фактов и является частью базы знаний. Для создания неупорядоченных фактов в CLIPS

предусмотрен специальный конструктор deftemplate.

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

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

Функции - являются последовательностью действий с заданным именем,

возвращающей некоторое значение или выполняющей различные полезные действия

(например, вывод информации на экран).

Язык CLIPS, который разрабатывался с 1985 г. космическим агентством NASA

(США), в настоящее время находится в свободном доступе, а основное его назначение – создание интеллектуальных систем, в первую очередь на базе продукционной модели.

Хотя в последнее время активного развития языка CLIPS как такового не происходит, на его основе были созданы такие средства как JESS (реализация языка разработки экспертных систем на Java) и FuzzyCLIPS (среда для разработки систем, использующих нечѐткую логику), что подтверждает популярность среды CLIPS и адекватность основных подходов, заложенных в ней.

CLIPS сочетает в себе 3 парадигмы программирования: логическую,

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

Интерфейс среды CLIPSWindows в целом соответствует Prolog. Команда (run)

запускает выполнение программы в среде (с машиной логического вывода), (reset)

обновляет рабочую память, а (clear) – полностью очищает среду CLIPS (рабочую память).

Опция главного меню Load позволяет загрузить файл с конструкциями, а Load Batch

файл с командами (программу).

Главный файл программы на CLIPS (например, main.bat) может иметь следующий

вид:

(clear)

(load* "classes.clp") ; загрузка структуры классов

(load-instances "instances.clp") ; загрузка экземпляров классов

(load* "templates.clp") ; загрузка предопределѐнных фактов

(load* "functions.clp") ; загрузка функций

(load* "rules.clp") ; загрузка правил

(reset)

(run)

Вывод информации может осуществляться как на экран, так и в выходные файлы.

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

(deffunction foo

() ; функция не имеет аргументов

(printout t crlf "Please input value:" crlf) ; t – ключ для вывода на экран

(bind ?var (read)) ; bind – функция для присваивания значения

(printout t crlf "Your value: " ?var crlf) ; crlf – символ конца строки

)

В свою очередь, команды (save-facts ?file+name) и (save-instances ?file+name)

служат для сохранения всех имеющихся в CLIPS на текущий момент фактов и экземпляров классов соответственно. Значением переменной ?file+name может быть,

например, "system_output.clp".

Обратите внимание, что в CLIPS в именах функций для обозначения пробела обычно используется знак «-», а в именах переменных и строковых значениях – знак «+».

Имя переменной всегда начинается со знака «?».

Форматы представления данных в CLIPS

Факты являются одной из основных форм высокого уровня для представления информации в системе CLIPS. Факт (fact) – это список элементарных значений, на которые ссылаются либо позиционно (упорядоченные (ordered) факты), либо по имени

(неупорядоченные (non-ordered) или шаблонные (template) факты).

Каждый факт представляет часть информации и помещается в текущий список фактов (fact-list). Факты могут быть добавлены в список фактов (используя команду assert), удалены из него (используя команду retract), изменены (используя команду modify) или скопированы (используя команду duplicate) в результате явного воздействия пользователя или при исполнении программы CLIPS.

Глобальные переменные. Конструкция defglobal позволяет описывать переменные, которые являются глобальными в контексте окружения CLIPS. То есть глобальная переменная доступна в любом месте окружения CLIPS и сохраняет свое значение независимо от других конструкций. Напротив, некоторые конструкции (как,

например, defrule или deffunction) могут иметь собственные локальные переменные,

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

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

Функция bind используется, чтобы задать значения глобальным переменным.

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

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

Для создания пользовательского класса используется конструкция defclass. Объект пользовательского класса создается посредством функции make-instance, и к созданному таким образом объекту можно обращаться по уникальному адресу. В пределах модульного контекста к объекту можно уникально обращаться и по имени.

Пример:

; описание класса car (машина)

(defclass Car

(is-a USER) ; пользовательский класс

(single-slot model+name ; слот «название модели» (одно значение)

(type STRING)) ; тип данных – строка

(multislot producer ; слот «производитель» (0 или более значений)

(type STRING)) ; тип данных – строка

)

; создание экземпляра класса Car (make-instance Toyota+Corolla of Car

(model+name "Corolla")

(producer "Toyota" "Kanto Auto Works")

)

Правила, функции и хэндлеры в CLIPS

Среда CLIPS имеет встроенные средства для осуществления логического вывода,

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