Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Safonov / AMPN_course_26.pptx
Скачиваний:
96
Добавлен:
16.04.2015
Размер:
105.45 Кб
Скачать

Архитектуры и модели программ и знаний

Лекция 26

Фреймы и фреймовые системы

Сафонов Владимир Олегович

Профессор кафедры информатики Заведующий лабораторией Java-технологии

(http://polyhimnie.math.spbu.ru/jtl)

Санкт-Петербургский государственный университет

Email: vosafonov@gmail.com

WWW: http://www.vladimirsafonov.org

Фреймы (frames)

Основоположник концепции – M.Minsky

(США), 1970-е гг.

Идея фрейма: представить знания о

стереотипных ситуациях, сценах, решениях, сценариях, объектахОсновная операция – сопоставление

текущего анализируемого объекта с одним из фреймов некоторой системы фреймовФрейм – не только структура из имени и

слотов (slots), но и стереотип (шаблон) для сравнения и классификации

(C) Сафонов В.О. 2012

Фрейм -- определение

Фрейм – формальное выражение вида:

<F <S1 V1> . . . <Sn Vn> R1 R2>

где F – имя фрейм а, Si - имена слотов, Vi

– значения слотов, R1 – реакция, исполняемая при успешном сопоставлении с фреймом, R2 – реакция, исполняемая при неудачном сопоставлении с фреймомК сожалению, многие более поздние

фреймовые системы (например, KEE) рассматривают фреймы лишь как способ структурирования, а не как средство сравнения с образцомФреймы-классы и фреймы-экземпляры (последние могут(C) СафоновиметьВ.О. 2012свои

Слоты (slots) и фасеты (facets) фрейма

Слот – структурная единица фрейма, его элементСлот имеет имя и значениеБолее детальная точка зрения на фрейм: слот

состоит из фасетов – имени, типа и др.Основные фасеты слота:

- имя (NAME) - тип (TYPE)

- ограничение на значение (RESTRICTION) P(V)

- текущее значение (VALUE)

 

- значение по умолчанию (DEFAULT_VALUE)

- отношение класс-подкласс (IS_A)

IS_A:

ParentClassFrame

 

определяет иерархию фреймов

SAME,

- тип наследования (INHERITANCE) :

UNIQUE, RANGE, OVVERRIDE

- демоны: IF_NEEDED, IF_ADDED, IF_UPDATED, IF_REMOVED

(C) Сафонов В.О. 2012

Наследование во фреймовых системах

Фреймы-классы (class frames) и фреймы-

экземпляры (instance frames)Фрейм-класс имеет собственные слоты

(own slots) и слоты экземпляров (member

slots)

Фрейм-экземпляр наследует от класса все

его member slots (прямо или косвенно), а также может иметь свои собственные слоты

(own slots)

Соотношение экземпляр-класс задается

тем же слотом IS_A: INSTANCE FRAME EX; … IS_A: CL

(C) Сафонов В.О. 2012

Фреймы. Операции над фреймами

Выборка значения слота:

<get FrameName SlotName>Изменение значения слота

<set F S newValue>Создание или удаление слотаСоздание нового фреймаСравнение с фреймом (с системой

фреймов)

Использование IS_A: Если слот S не найден

во фрейме F, то выполняется поиск данного слота во фрейме-предке (согласно иерархии

IS_A)

(C) Сафонов В.О. 2012

Фреймовые языки

FRL, KRL (1970-е гг.), основаны на скобочном синтаксисе LISP’а

KEE (Knowledge Engineering Environment, 1980-е гг.) – фреймы-классы, фреймы-экземпляры, фреймы-наборы правил …Турбо-Эксперт (В.О.Сафонов, СПбГУ, 1991) – расширение Турбо-Паскаля гибридными знаниями, в т.ч. Фреймами

Knowledge.NET (В.О.Сафонов, А.В.Новиков, СПбГУ) – расширение C# гибридными знаниями, в т.ч. – фреймами, наборами правил и онтологиями

(C) Сафонов В.О. 2012

Фреймы: пример на языке Турбо-

Эксперт

frame Person: class; is_a: Mammal, System;

Type SexType = (Male, Female); member_slot

FirstName, SurName: string; sex: SexType;

age: facets

type: integer; default_value: 18; inheritance_type: Range; value: unknown;

is_needed: procedure begin if sex = Female then error; end;

end facets; knows: list of Person; … end frame

(C) Сафонов В.О. 2012

Язык Турбо-Эксперт

(1991)

Литература: Сафонов В.О. и др. Язык обработки знаний Турбо-Эксперт. – Кибернетика и системный анализ, 1991, №

6.

Язык, реализующий идею интеграции методов инженерии программ и знанийРасширение Турбо-Паскаля средствами представления знаний

Фрейм в данном примере содержит фрагменты традиционного кода на Паскале, что обеспечивает удобное сочетание методов разработки программ и баз знаний в одном языкеВозможно определение фреймов-наборов правил в том же стиле

Язык Турбо-Эксперт явился прообразом более позднего языка Knowledge.NET (см. лекцию 31)

(C) Сафонов В.О. 2012

Вопросы и домашнее задание к лекции 26

Изучите книгу: М.Минский. Фреймы для

представления знанийСравните концепции фрейма и объекта (в ООП)

Проанализируйте преимущества и недостатки,

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

Изучите язык Турбо-Эксперт. Какие, по-

Вашему, дополнительные возможности для разработчиков программ он предоставляет, по сравнению с “чистыми” языками инженерии программ (например, C++) и инженерии знаний (например, Prolog)

(C) Сафонов В.О. 2012

Соседние файлы в папке Safonov