Страница 98

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

Образцы являются наиболее важной и мощной конструкцией языка PILOT/2, так как они позволяют находить и фиксировать интересующую инженера по знаниям ситуацию в базе знаний. По синтаксису образец похож на слот-фрейма, но у него существенно большие возможности и другая семантика. Образец — это предикат на базе знаний, принимающий значения «истина» или «ложь», тогда как слот-фрейма возвращает значение конкретного слота конкретного фрейма. Образец определяет некий шаблон, которому могут удовлетворять фреймы из базы знаний. Образец состоит из синтаксического обрамления «?[...]» и тела. Тело представляет собой шаблон фрейма, которому, быть может, предшествует конструкция «захвата» результатов отождествления в переменную, и список слотов-образцов, который может быть пустым. Каждый слот-образец также имеет шаблон слота в качестве базы отождествления и, быть может, конструкцию «захвата» результатов. Таким образом, тело определяет структуру, которую должны иметь фреймы базы знаний, чтобы успешно сопоставиться с образцом. Шаблон фрейма определяет множество фреймов базы, на которых будет происходить отождествление. Это множество может состоять из единственного фрейма (при этом указывается имя фрейма или его отрицание); всей базы (тогда шаблоном фрейма является символ «*»); фрейма (фреймов), имена которых хранятся в переменных типа VAR или GET, а также фиксироваться с помощью конструкции явного задания множества, образованного из элементов и стандартных теоретико-множественных операций one_of (пересечение); all_of (объединение); ~ (вычитание). Пустой префикс соответствует операции one_of. При этом семантика операции one_of — «первый из сопоставленных». Операция «вычитание» может использоваться только с именами фреймов, заданными явно. Результаты успешных сопоставлений могут запоминаться в переменных с помощью операции присваивания (в случае префикса one_of или его отсутствия запоминается результат первого успешного сопоставления, а в случае префикса all_of — результаты всех успешных сопоставлений). Шаблон слота практически тот же, что и шаблон фрейма. Однако для слотов есть еще один способ указания объединения — перечисление нужных слотов через разделитель «;». Отличие шаблона слота от шаблона фрейма в том, что здесь добавляется значение-образец. Как и в предыдущих случаях, найденные значения могут «захватываться» в переменные. Шаблон значения может фиксировать, что оно произвольно, но существует (в этом случае используется символ «*», либо определить возможные значения более точно с помощью элементов (значение-первичного-спецификатора) и логических операций в базисе И-ИЛИ. Заметим, что отрицание здесь не требуется, так как его функцию берет на себя отношение «!=« в первичном-спецификатора. Спецификаторы задают декларативно ограничения на значения. Синтаксис спецификаторов следующий:

спецификатор ::= терм-спецификатора {{ || терм-спецификатора ||

терм-спецификатора ::= первичное-спецификатора

{{ && первичное-спецификатора }}

первичное-спецификатора::=

|| || < || значение-первичн-спецификатора ||

II II <= II ||

II II == II II

II II != || II

II II >= I| II

II II > II ||

|| ( спецификатор ) I|

значение-первичн-спецификатора ::=

|| значение ||

|| ||пусто || || VAR-переменная || ||

|| || one_fгоm || || GET-переменная || ||

II II all_from || ||

Знаки отношений имеют стандартную семантику для чисел и семантику сравнения ASCI-кодов для символов и строк. В тех случаях, когда значение в первич-ном-спецификатора является множеством, все знаки отношений имеют следующую интерпретацию:

• < — строгое включение множества значений спецификатора во Множество значений слота;

• <= — нестрогое включение множества значений спецификатора во множество значений слота;

• = = — совпадение множества значений спецификатора с множеством значений слота;

• != — несовпадение множества значений спецификатора с множеством значений слота;

• >= — нестрогое покрытие множества значений спецификатора множеством значений слота;

• > — строгое покрытие множества значений спецификатора множеством значений слота.

Дополнительно к этому значение-первичного-спецификатора может быть VAR-или GET-переменной, которым предшествует префикс one_from (один из элементов в переменной должен быть использован); all_from (все элементы переменной должны быть использованы). Пустой префикс соответствует операции one_from.

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

[ F1 is_a prototype; [ F2 is_a F1; [ F3 is_a F1;

S1 Int, by_default 8 ; S2 = "x" ]; S1=0];

82 char];

Имеются также переменные $V1 (типа frame) и $V2 (типа char), которые до применения каждого из образцов содержат следующие значения:

$V1 = ╎F1 ╎F2 ╎F3 $V2 = ╎'a' ╎'b' ╎

Примеры образцов с их значениями и значениями переменных $V1 и $V2 после применения этих образцов к описанной базе представлены ниже.

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

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

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

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

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