READTERM (<Имя области памяти>,< терм>)
(< имя области>,< терм>) : (i,0)
После открытия файла этот предикат читает факты из него. Первый аргумент предиката д.б. описан в разделе domains программы
EOF (< символьное имя файла>)
(file) : (i)
Предикат имеет значение “ Истина”, если указатель файлов позиции установлен на конце файла
FILEPOS (< сим. имя файла>,< позиция>,< режим>)
(file,real, integer) : (i,i,i) (i,0,i)
RENAME (< имя файла1 в ОС>,< имя файла2 в ОС>) — переим. файла
(string,string) : (i,i)
DELETE (< имя файла в ОС>) — удаление файла
(string) : (i)
DISK (< маршрут>)
(string) : (i) (0) — устанавливает ,если (1) или возвращает, если задана (0) дисковод или тех. каталог, подкаталог...
CLOSEFILE (< сим. имя файла>)
(file) : (i)
3. Стандартные предикаты обработки файлов и техника их использования.
Техника работы с файлами в программах
1.Создание файла
domains
file = ff
P2 = integer
Pole, Pole1 = string
predicates
vvod
put
clouses
put if
write (“Введите признак продолжения”),
readint (Pr),
Pr=0
vvod
vvod if
write (“Введите строку”),
readln (Pole), nl,
write (Pole),
concat (Pole, “ \n”, Pole1),
openappend (ff, “text”)
writedevice (ff),
write (pole1),
closefile (ff),
writedevice (screen),
write ( “Строка”, Pole1, “на диск записана”)
В поле м.б. введенозначение предиката-факта, с кот. в дальнейшем м. работать как ср-вами обработки файла, так и ср-вами динам. фаз фактов. Предположим,что в этом примере пользователь ввел значение предиката-факта tmc
tmc ( Post, Kod, Kol, Cena)
2.Обработка фактов из файла
domains
file = ff
data= tmc ( Post, Kod, Kol, Cena)
Post,Kod=string
Kol, Cena=integer
predicates
put
spr
clouses
put if
not (eof (ff)),
spr.
put if
eof(ff),nl,
write (“Работа закончена”),
closefile (ff)
spr if
readterm (data, tmc (Post, Kod, Kol, Cena), nl,
write (post), nl,
put.
goal
openread (ff, “text”),
readdevice (ff),
spr.
3.Модификация данных файла
domains
file=ff
Pr= integer
Pole, Pole1 = string
K = real
predicaes
put
mod
clouses
put if
write ( “Введите признак продолжения”),
readint (P2),
p2 = 0,
mod.
mod if
write (“Введите номер записи”), nl,
readreal (K), nl,
K1=K*12,
openmodify (ff, “text”),
readdevice (ff),
48
filepos (ff,K1,0)
readln (Pole),
write ( “Старое значение”, pole), nl,
writedevice (ff),
filepos (ff,K1,0),
write (Pole1,”\n”),
closefile (ff),
writedevice (screen),
write ( “Новое значение”, Pole1), nl,
readdevice (keybord),
put
goal
mod
ТЕМА: Средства модульного прг-я в ТП
ТП, являясь прообразом языка парал. вычислений, поддерживает стиль модульного проектирования.
Средства ТП для поддержки мод. прог-я следующие:
1.Междумольная информационная связь в П. реализуется кака и в других языках прог-я, через общие переменные. Для этого в связываемых модулях после раздела domains, где описываются те приемы, кот. описываются в разных модулях.
2.Актуализация каждого модуля производится путем вызова соответствующего правила, кот. д.б. известно во всех связывающих модулях в разделе global predicates.
3.Ср-ва обр-ки модульных программ.
3.1.Использование предиката include “ имя программного файла”.
include — используется в том случае, когда к текущей программе на уровне исходного модуля.
Цепочка модулей м.б. сколь угодно длинной, но не д.б. циклов.
“ имя прогр. файла “ м. содержать маршрут поиска файла на диске.
4.project “имя файла-проекта”
Эта дирректива д.б. записана 1-й в тех модулях, кот. необходимо объединить в 1-й загрузочный модуль с именем файла-проекта. По аналогам с разработками Borland, все модули, объед. в проект, компилируется отдельно, а связь происходит на уровне объектных модулей.
ТЕМА: Фреймовые модели представления знаний
1.Особенности представления знаний с помощью фреймов
2.Аппарат логического вывода фреймовой модели
3.Примеры-приложения фреймовой модели
1. Особенности представления знаний с помощью фреймов
Представление знаний с помощью фреймов явл. альтернативным по отнош. к системам продукции и лог. моделям. Оно дает возможность хранить родовидовую иерархию в явной форме.
Фрейм — составная структурная единица, предназначенная для описания относящихся к стериотипной ситуации на объекте
Осн. элемент единиц фрейма явл. слот, кот. исп. для хранения единичного знания. Станд. стр-ра слота след.:
{ имя слота; <f1> <S1>;...<fm> <Sm>; <q1> <q2>...<qn>.}
fi — имя атрибута, характерного для слота
Si — значение атрибута
qi — ссылки на другие слоты или фреймы
Стр-ра слота след-я:
имя файла
имя слота1 значение слота1
имя слота n значение слота n
Если стр-ра знаний позволяет, то при описании нужно исп-ть простые слоты, т.е. слоты, кот. имеют одно значение. Значением слота м.б. не т. константа или ссылка на др. фрейм , но и функция, кот. требует определенной детализации в процессе решения. Т. функции получили название фасет .
Фреймы-прототипы — это готов. стр-ры для описания законов опр. п/о. В них отсутствуют конкр. значения слотов. При заполнении слотов конкр. значениями, они превращаются в конкретные фреймы. Часто в системах фреймы исп-ся для стереотипных послед-й действий и тогда они наз. сушариями.
При заполнении фреймов -прототипов, часть слотов м. оставаться пустой фреймовой стр-ры дают воз-ть описывать объекты разного уровня иерархии, кот. явл. ключевым понятием.
Иерархия объектов реализуется через аппарат исследования свойств, когда классы объектов определенного уровня наследуют строения классов фреймов более высокого уровня. Если объект, кот. описывается некоторой группой фреймов находится в концептуальной связи с верхним и нижним уровнями фреймов, то соотв. ему фреймы конструируются с учетоми иерархических отношений и при этом наследование свойств осущ. через слоты или фреймы с одинаковым именем.
2. Аппарат логического вывода фреймовой модели
Логический вывод во фреймовой системе осущ. путем обмена сообщениями между фреймами разного уровня иерархии, вначале получает управление корневой фрейм, далее динам. формируется необходимая для реализации запросов цепочка фреймов след. уровня иерархии. Т.о. во фреймовой системе каждому из фреймов задается строго опр-е.
Основной операцией при работе с фреймами явл. поиск по образцу. В рамках фреймовой модели образец — это фрейм, в кот. заполнены не все стр. ед-цы, а т. те, кот. б. использованы в качестве ключа для реализации действий в конкр. фреймах.
Используются спец. процедуры наполнения слотов спец. значениями, а т. введение в систему новых фреймов-прототипов и новых связей между ними.
3. Примеры-приложения фреймовой модели
В наст. время фреймовая модель явл. основой всех объектно-ориентированных систем прог-я. В качестве наиболее популярных приложений м. назвать языки FRL,KRL, FSM, Small Talk, а также дополнения к процедурным языкам: C++, Delphi и т.д.
FRL
Реализован на базе языка LISP.
Каждый фрейм предст. собой станд. стр-ру с мах степенью вложенности <=5. Стр-ра фрейма след-я:
(имя фрейма
(имя первого слота
(имя первой ячейки
(первый коментарий)
(второй коментарий)...
(i-й коментарий))
(имя второй ячейки
(...
))
(имя второго слота
(...
))
Для указания местоположения некот. порции информации во фрейме путь