Лекция 7

Реализация логического представления знаний на примере учебной системы ESTA .

Верхний уровень представления знаний в ESTA ( expert system for text animation ) состоит из секций. Первая секция в любой БЗ должна называться START . Секция включает имя, текстовое описание и число параграфов. Если параграф включает логическое условие ( Boolean expression ), тогда условие выполняется вначале.

ESTA обрабатывает параграфы в секции последовательно. Если условия являются истинными или параграф не включает логическое условие вообще, список действий выполняется в порядке, данном в параграфе.

Когда начинается консультация (команда BeginConsultation), ESTA начинает с выполнения логических условий в параграфах секций START. Секция START включает три параграфа: первый включает в себя заголовок секции и список двух действий, разделенных запятыми. Второй параграф включает в себя только одно действие. Последний параграф включает отдельное действие без предшествующего логического условия.

Вычисление логического условия обычно должно использовать параметры. Если параметры не имеют значения, ESTA будет устанавливать переменную для ввода пользователем, основываясь на объявлении параметра. Параметры подобны переменным, которые определяют поток управления между секциями. Любой параметр имеет описательное поле и тип поля; далее число полей, опираясь на тип параметра может быть использовано, чтобы описать сам параметр. Параметр может иметь один из следующих типов: логический, текстовый, числовой и параметр категории. Любой параметр позволяет задать переменным значения следующими путями: ответом на вопрос, как результат некоторых правил или как присвоение результата от некоторых действий

Пример

Title

Sections

Section START: ‘work out where the cinema is located'

if (cinema = ‘odeon') do city_centre

if (cinema = ‘palace') do suburb

Section city_centre: ‘accessing a city centre cinema'

if (distance >= 10') advice ‘Use your car'

if (distance >= 3' and distance < 10) advice ‘Walk'

...

Parameters

parameter cinema: ‘cinema'

type category

options

odeon,

palace.

question ‘Which cinema is showing the film?'

Синтаксис секции :

<section> ::= section<section_name>[:]<description_text><paragraph_list>

<paragraph_list> ::= <paragraph>[<paragraph_list>]

<paragraph> ::= [if<boolean_expression>]<action> | [if<boolean_expression>](<actions>)

<actions> ::= <action>[,<actions>]

<action> ::= advice | assign | call | chain | do | do_section_of | exit | stop