Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 3.doc
Скачиваний:
51
Добавлен:
05.06.2015
Размер:
431.62 Кб
Скачать

1.2 Фрейм – ориентированный язык frl.

Одним из известных языков представления знаний является язык FRL(FrameRepresentationLanguage), относящийся к классу фрейм - ориентированных. Основная единица знания в таких языках – фрейм, представляющий собой информационную модель (или описание) некоторой стереотипной ситуации. «Стереотипная ситуация», является обобщением таких понятий, как действия, процессы, события, объекты, свойства, модификаторы и т.д.

Фрейм в FRL– это совокупность поименованных, ассоциативных списков, содержащая до пяти уровней подструктур. Подструктурами фреймов могут быть слоты, аспекты, данные, комментарии и сообщения. Основной структурной единицей во фрейме являются слоты, отражающие взаимосвязи между понятиями предметной области. Слот характеризуется своим именем и значением. Имена слотов назначаются проектировщиками БЗ. ОднакоFRLимеет также и зарезервированные имена слотов: АКО,INSTANSE,CLASSIFICATON. В качестве значения слотов могут выступать числа, символы, имена других фреймов, имена процедур.

Фреймы в FRLстроятся с помощью процедурыFASSERT.

В FRL имеется семь зарезервированных аспектов: ¤VALUE, ¤DEFAULT, ¤IF-NEEDED, ¤IF-ADDED, ¤IF-REMOVED, ¤IF-INSTANTIAD, ¤REQUIRE. Данные из аспекта ¤VALUEинтерпретируются как значение слота, а из аспекта ¤DEFAULT– как значение по умолчанию. Остальные пять аспектов связывают с фреймом процедуральные знания. Процедуры из аспекта ¤IF-ADDEDактивизируются в том случае, если в слот добавлено новое данные; из аспекта ¤IF-REMOVED– если из слота удаляется то или иное данные. Процедуры из аспекта ¤IF-NEEDEDзапускаются при создании экземпляров фрейма. Аспект ¤REQUIREсодержит процедуры, которые ограничивают значение слота.

Важным свойством FRLявляется наличие в нем встроенного механизма «наследования свойств». Суть этого механизма заключается в следующем. Все понятия предметной области в БЗ организовываются в виде иерархической классификационной системы, где каждое понятие связывается с помощью специальных отложений с более конкретными. Для реализации этих отложений существуют слоты АКО иINSTANSE. Слот АКО связывает понятие с более общим (родовым). СлотINSTANSEсвязывает понятие с более конкретным (видом). Свойства присущие всему классу, описывают только во фрейме класса, а остальные фреймы этого класса могут наследовать это свойство в случае надобности.

Процедуры обработки FRLподразделяются на независимые и присоединенные. Независимо от типа эти процедуры пишутся обычно на языке реализации самогоFRL. На сегодняшний день большинствоFRL– систем написаны наLISP.

1.3 Язык логического программирования prolog.

В последнее время к разработке ЭС все чаще стал привлекаться язык программирования Пролог. Свое наименование Пролог получил от сокращения «Программирование логики» (PRogramminginLOGic). Математической основой Пролога являются исчисление предикатов преимущественно первого порядка, метод резолюции Робинсона, теория рекурсивных функций.

Основной конструкцией языка (в форме, принятой для Пролога), является импликация:

А← В1, В2, …., Вn, называемая правилом, где А112….,Вn– предикаты.

Смысл ее таков «А истинно, если истинно В1и истинно В2и … и истинно Вn». Например;

РЕЖИМ_УСТАНОВКИ («РЕЖИМ_1») ТИП_НЕФТИ)

(«ЗАПАДНО-СИБИРСКАЯ»)

КОЛ_НЕФТИ (Х),

БОЛЬШЕ (Х,0)

Смысл этого правила: «ЕСЛИ тип нефти – западно-сибирская и количество нефти больше нуля, то технологическая установка работает на первом режиме».

Из приведенной импликации следует два вырожденных случая:

1. А- такая конструкция называется фактором и имеет смысл: «Аистинно всегда». Например: ВХОДИТ («УСТАНОВКА - 26», «ЦЕХ № 2»), т.е. установка 26 входит в цех № 2.

2. В1, В2, …,Вn – данная конструкция носит название «вопрос» и означает: «Истинно лиВ1В2 Вn? (знак - конъюнкция)». Например: РЕЖИМ_УСТАНОВКИ («РЕЖИМ_2»), т.е. следует проверить работает ли установка во втором режиме?

Предикаты Пролога имеют вид:

<ИМЯ предиката> (<аргумент 1>, … <аргумент К>)

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

ВХОДИТ (Х, «ЗАВОД НПЗ1») ВХОДИТ (Х, «ЦЕХ_№-2»)

Т.е. если некоторый объект (Х) входит цех № 2, то он входит в НПЗ1;

ВХОДИТ (Х,У) ВХОДИТ (Х,Z), ВХОДИТ (Z,Y).

Здесь Х входит в У, если Х входит в Z, аZвходит в У.

При использовании переменных «в вопросе» можно получить их значения в качестве результата. Например: РЕЖИМ_УСТАНОВКИ (Х). Если режим установки известен и определен, то в качестве ответа получим логическое «да» или «истинно», а в качестве побочного эффекта получим значение переменной Х, т.е. действующий режим работы установки, например Х= «РЕЖИМ_2».

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

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

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

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

В настоящее время создано большое число различных по эффективности и мощности Пролог – систем, каждая из которых предлагает свой синтаксис языка и свой набор встроенных предикатов. Синтаксис языка определен формой записи Пролог – конструкций: фактов, правил, вопросов, предикатов, атомов, переменных, выражений и т.д.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]