Страница 97

Страница 97: Базы знаний интеллектуальных систем, Автор неизвестен, 2001 читать онлайн, скачать pdf, djvu, fb2 скачать на телефон Учебник для технических вузов по входящим в различные дисциплины вопросам разработки интеллектуальных систем

Теперь рассмотрим примеры спецификации фреймов. Первый из них — спецификация прототипа вида:

[Person is_a prototype;

Name string, if_changed ask_why () ;

Age int, restr_by >= 0 ;

Sex , string, restr_by (==«male» || ==«female»),

by_default «male» ;

Children {frame}];

Из этого описания следует, что у фрейма Person, заданного как корневой прототип, имеются четыре слота с именами Name, Age, Sex и Children. Каждый слот может иметь значение определенного типа. Значениями слотов Name и Sex могут быть строки, слота Age — число, а слота Children — множество ссылок на другие фреймы. Кроме обязательной спецификации типа слот может иметь дополнительную спецификацию. Так, чтобы показать, что значение слота Age должно быть не меньше 0, а слот Sex может принимать только два значения, «male» или «female», использована дополнительная спецификация restr_by. Конструкция, следующая за этим ключевым словом, называется спецификатором и представляет собой логическое выражение особого вида. Другая дополнительная спецификация, by_default, определяет значение слота по умолчанию. Например, если в экземпляре фрейма Person не будет указано конкретное значение слота Sex, оно будет равно «male».

Кроме этих дополнительных спецификаций имеются в ЯПЗ PILOT/2 и спецификации демонов. Они определяют присоединенные процедуры, которые «запускаются» при добавлении (if_added), удалении (if_deleted) или изменении значений (if_changed).

Любой фрейм может стать прототипом для других фреймов:

[ John is_a Person; if_deleted bury();

Name = «Johnson» ;

Age = 32 ;

Children = {Ann, Tom} ];

[ Mary is_a Person;

without Age ;

Name = «Smirnova» ;

Sex = «female» ;

Children = empty];

Приведенные выше фреймы John и Mary — экземпляры фрейма Person. Их слоты получают конкретные значения. Фрейм-экземпляр можетле иметь некоторых слотов своего прототипа (имена таких слотов перечисляются после ключевого слова without) и может иметь дополнительные слоты, специфицируемые так же, как и в прототипе.

7.1.3. Процедурные средства языка

При обсуждении примеров спецификаций фреймов мы пользовались интуитивным пониманием значения. Спецификация этого понятия в ЯПЗ PILOT/2 следующая. Значения могут быть простыми (единичными) и множественными. Множественные значения — списки простых значений одного типа, заключенные в фигурные скобки. В качестве простых значений в PILOT/2 выступают выражения.

Введение префиксов и постфиксов к именам переменных является первым шагом на пути определения выражений. Но в ЯПЗ PILOT/2 есть и более мощные средства этого типа. Здесь используются традиционный набор арифметических операций и общепринятое их старшинство, а специфика ЯПЗ на уровне первичного выражения:

перв-арифм ::= | | число | |

| | GET-переменная | |

| | VAR-переменная | |

| | перв-арифм | |

| | вызов-функции | |

| | ( арифметическое ) | |

| | слот-фрейма | |

вызов-функции ::= имя-функции ( значение {{, значение }} )

Первые шесть вариантов вполне традиционны, а последний имеет следующее определение:

слот-фрейма ::= [ имя-фрейма : имя-слота ]

Учитывая вышесказанное, следующие примеры суть правильно построенные выражения ЯПЗ PILOT/2:

empty пустое выражение

"а" ASCII-символ char

«qwerty» строка string

Person имя-фрейма frame

$NameFrame VAR-переменная frame

$AgeValue> GET-переменная int

10 * ( $var1 + 2 ** 4 ) арифметическое int

[John : Age] слот-фрейма int

my_func («events.kb», [Event : Value]) вызов-функции bool

Теперь вернемся к основному средству построения конфликтного множества — к условиям. Напомним, что в ЯПЗ PILOT/2 две точки, где, согласно синтаксису языка, возможно использование условий: конструкция if в секционных и прави-ловых разрешениях и левые части продукционных правил. И в том и в другом случае инженер по знаниям может сформулировать произвольную условную конструкцию в базисе И-ИЛИ-НЕ с общепризнанным старшинством логических операций. Кроме того, на уровне первичных условий возможно использование отношений и образцов.

Базы знаний интеллектуальных систем

Базы знаний интеллектуальных систем

Обсуждение Базы знаний интеллектуальных систем

Комментарии, рецензии и отзывы

Страница 97: Базы знаний интеллектуальных систем, Автор неизвестен, 2001 читать онлайн, скачать pdf, djvu, fb2 скачать на телефон Учебник для технических вузов по входящим в различные дисциплины вопросам разработки интеллектуальных систем