Объектно-ориeнтированное программирование в CLIPS
•Пусть вас не смущает, что в обработчике сообщения анализируется условие, которое уже было проанализировано правилом, отославшим сообщение (в данном случае речь идет об условии safety off). Дело в том, что одно и то же сообщение может отсылаться разными правилами и нет никакой гарантии, что в каждом из них будет проверяться это условие.
•После завершения стрельбы пистолет нужно вновь вернуть в положение "по-походному". Начинается это с того, что пистолет устанавливается на предохранитель, для чего используется ранее разработанный обработчик сообщения safety.
1. (defrule unready
2. (object (name [PPK]) (safety off))
3. (range-test (fired yes)) =>
4. (send [PPK] safety on) )
• Следующая операция — вынуть обойму. Обратите внимание, что в нем мы вновь обращается к
обработчику сообщения drop.
5. (defrule drop
6. (object (name [PPK]) (safety on))
7. (range-test (fired yes)) =>
8. (send [PPK] drop) )
Объектно-ориeнтированное программирование в CLIPS
Последнее правило выбрасывает патрон из патронника, вызывая обработчик сообщения clear.
1.(defrule unload
2.(object (name [PPK]) (safety on) (magazine out))
3.(range-test (fired yes)) =>
4.(send [PPK] clear) )
В этом примере было продемонстрировано, как в рамках единой CLIPS программы "уживаются" правила и объекты. Правила управляют ходом вычислений, но некоторые операции объекты выполняют и самостоятельно, получив "указание" (сообщение) от правил. Объекты не являются резидентами рабочей памяти, но члены левой части правил (условий) могут быть сопоставлены с содержимым их слотов. Состояние объектов может измениться и вследствие побочных эффектов активизации правил, но я считаю, что лучше предоставить объектам возможность самостоятельно выполнять манипуляции с хранящимися в них данными в ответ на поступающие от правил сообщения. Объекты не могут самостоятельно активизировать правила, но их обработчики сообщения могут возвращать определенную информацию о результатах, которая используется для управления логикой выполнения действий в правой части правил.
представления знаний о предметной области»
Что такое онтология?
Онтологии используются для описания знаний о некоторой предметной области. Онтология описывает понятия предметной области, а также отношения, которые имеются между этими понятиями.
Онтология, как модель, выражает определенный взгляд (разработчика) на некоторую предметную область и формально может быть описана следующим набором множеств:
O = <Х,R,Ф>
где: X – конечное множество концептов (понятий, терминов) предметной области, которую представляет онтология О. R – конечное множество отношений между концептами (понятиями, терминами) заданной предметной области. Ф – конечное множество функций интерпретации, заданных на
концептах и/или отношениях онтологии О.
2
Из всего множества отношений в онтологии выделяется специальный класс – простая таксономия:
О = Т° = < X, {is_a}, {}>
Под таксономической структурой понимается иерархическая система понятий, связанных между собой отношением is_a («быть элементом класса» или «быть подклассом класса»). Это отношение (is_a) позволяет организовать структуру понятий онтологии в виде
дерева. Отношение is_a имеет фиксированную заранее семантику. Предложение «Элемент А является подклассом
класса В», описывается простой логической формулой (импликацией): А В –
«Если А, то В». Получаем формальную таксономию.
Таким образом, из определения онтологии следует, что основными ее компонентами являются: Классы (Концепты) или понятия, Индивидуальности (экземпляры), Отношения, Функции, Аксиомы.
Концептуальная схема онтологии
Причины потребности в разработке онтологий
•Совместное использование людьми или программными агентами общего понимания структуры информации;
•Разработка и управление терминологией;
• Возможность повторного использования знаний в предметной области;
• Получение надежного семантического базиса в определении содержания;
• Отделение знаний в предметной области от оперативных знаний;
•Получение логической теории, которая состоит из словаря и набора утверждений на некотором языке логики, что позволяет на основе этой
теории получать вывод новых знаний, явно не заложенных в онтологии;
• Возможность использования онтологий для поддержки функционирования
и роста нового вида цифровых библиотек.
Процесс создания онтологий
1.Определение классов в онтологии;
2.Организация классов в некоторую иерархию (подкласс → класс);
3.Определение отношений (связей) между классами, между элементами классов;
4.Определение свойств (характеристик, атрибутов) элементов класса;
5.Определение экземпляров классов и задание значений их свойств.
При построении онтологии нужны определенные ориентиры для принятия решений. Целый ряд решений может приниматься на основе практической цели построения онтологии. Однако можно сформулировать и универсальные требования к онтологиям, не зависящие от конкретной задачи. Так, общая структура онтологии должна быть понятной и должна существовать возможность ее многократного использования. Онтология должна быть когнитивно прозрачной. Важно учитывать следующие требования:
•Ясность: онтология должна быть ясной и легко передавать подразумеваемый смысл. Она должна быть объективной;
•Последовательность: в ней должны содержаться утверждения, которые не противоречат друг другу, иерархии понятий, связывающим их отношениям, экземплярам.
•Возможность расширения: наличие возможности введения новых элементов без пересмотра остальных элементов;
•Минимальная степень специализации онтологии: нежелательность полного подчинения онтологии конкретной задаче, что может осложнить ее последующее использование в других задачах.