Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по языку ФРЛ.doc
Скачиваний:
53
Добавлен:
28.06.2014
Размер:
324.61 Кб
Скачать

6. Извлечение информации из сети фреймов

╒══════════════════════╤═════════════════════════════════════╕

│ Синтаксис │ Семантика │

╞══════════════════════╪═════════════════════════════════════╡

│ (FPRINT : fnl) │ Указанные фреймы выводятся на эк- │

│ │ ран в виде, удобном для восприятия. │

│ │ По умолчанию fnl=*FRAMES* │

- 33 -

│ │ Результат - список фреймов, кото- │

│ │ рые удалось отпечатать. │

├──────────────────────┼─────────────────────────────────────┤

│ (PPRINT : pnl) │ Указанные процедуры выводятся на │

│ │ экран в виде, удобном для восприя- │

│ │ тия. По умолчанию pnl=*PROCEDURES* │

│ │ Результат - список процедур, ко- │

│ │ торые удалось отпечатать. │

├──────────────────────┼─────────────────────────────────────┤

│ (FGET f : s a k) │ Результат - список подструктур или│

│ │ их имен, извлеченных из сети фреймов│

│ │ на основании приводимых аргументов. │

│ │ Например: │

│ │ (FGET f) - возвращает список имен │

│ │ слотов фрейма f. │

│ │ (FGET f s а) - возвращает список │

│ │ имен данных из аспекта a слота s │

│ │ фрейма f. │

│ │ По умолчанию a=$VALUE │

│ │ k=(L -C ! @ A H 1) │

│ │ Присоединенные процедуры выполня- │

│ │ ются. Комментарии обрабатываются │

├──────────────────────┼─────────────────────────────────────┤

│ (FGET1 f : s a v l) │ То же, что и FGET с той разницей,│

│ │ что в если результат FGET равен NIL,│

│ │ то запрос распространяется на фрей-│

│ │ мы, имена которых содержатся в каче-│

│ │ стве имен данных слота AKO до тех│

│ │ пор, пока один из них не выдаст ре-│

│ │ зультат, отличный от NIL. │

├──────────────────────┼─────────────────────────────────────┤

│ (FGETN f : s a v l) │ То же, что и FGET1, но результиру-│

│ │ ющий запрос представляет конкатена-│

│ │ цию запросов во все возможные фреймы│

│ │ вдоль AKO связи. │

├──────────────────────┼─────────────────────────────────────┤

│ (FGET- f s a : v l) │ То же, что и FGET, но не выполня- │

│ │ ются присоединенные процедуры и не │

│ │ обрабатываются комментарии. │

│ │ Принцип умолчания на аспект "a" не│

│ │ распространяется. │

├──────────────────────┼─────────────────────────────────────┤

│ (FGET1- f s a : v l) │ То же, что и FGET1, но не выпол- │

│ │ няются присоединенные процедуры и │

│ │ не обрабатываются комментарии. │

│ │ Принцип умолчания на аспект "a" не│

- 34 -

│ │ распространяется. │

├──────────────────────┼─────────────────────────────────────┤

│ (FGETN- f s a : v l) │ То же, что и FGETN, но не выпол- │

│ │ няются присоединенные процедуры и │

│ │ не обрабатываются комментарии. │

│ │ Принцип умолчания на аспект "a" не│

│ │ распространяется. │

├──────────────────────┼─────────────────────────────────────┤

│ (FGET-STRUCTURE f : │ Результат - список подструктур │

│ s a v l) │ выделенных из фрейм структуры на │

│ │ основании приводимых аргументов. │

│ │ Например: │

│ │ (FGET-STRUCTURE f s а) - возвра- │

│ │ щает аспект "a" слота "s" фрейма "f"│

│ │ По умолчанию a=$VALUE │

│ │ Присоединенные процедуры выполня- │

│ │ ются. Комментарии обрабатываются │

├──────────────────────┼─────────────────────────────────────┤

│ (FGET-STRUCTURE1 f : │ То же, что и FGET-STRUCTURE, но в │

│ s a v l) │ случае если результат │

│ │ FGET-STRUCTURE nil запрос распрост- │

│ │ раняется на фреймы, имена которых │

│ │ содержатся в качестве имен данных │

│ │ слота AKO, до тех пор пока один из │

│ │ них не выдаст результат отличный от │

│ │ nil. │

├──────────────────────┼─────────────────────────────────────┤

│ (FGET-STRUCTUREN f : │ То же, что и FGET-STRUCTURE1,но │

│ s a v l) │ результирующий запрос представляет │

│ │ конкатенацию запросов во все воз- │

│ │ можные фреймы вдоль AKO связи. │

├──────────────────────┼─────────────────────────────────────┤

│ (FGET-STRUCTURE- f : │ То же, что и FGET-STRUCTURE, │

│ s a v l) │ FGET-STRUCTURE1, FGET-STRUCTUREN, │

│ (FGET-STRUCTURE1- f │ но не выполняются присоединенные │

│ : s a v l) │ процедуры и не обрабатываются ком- │

│ (FGET-STRUCTUREN- f │ ментарии. │

│ : s a v l) │ Принцип умолчания на аспект "a" не│

│ │ распространяется. │

├──────────────────────┼─────────────────────────────────────┤

│ (FGETE f s : a) │ =(FGET f s a '(E)) │

├──────────────────────┼─────────────────────────────────────┤

│ (FGETV f s : k) │ =(FGET f s $VALUE k), причем в │

│ │ случае неуспеха результат формируют │

│ │ процедуры, наследуемые из аспекта │

│ │ $IF-REQ слота "s" фрейма "f". │

- 35 -

├──────────────────────┼─────────────────────────────────────┤

│ (FGET-STRUC f : s a │ =(FGET-STRUCTURE f : s a v l m) │

│ v l m) │ │

├──────────────────────┼─────────────────────────────────────┤

│ (FGET-SEL f s a : k │ Извлекает (при помощи FGET с уче- │

│ : l1 m1 ... lN mN) │ том ключей k) из аспекта a слота s │

│ │ фрейма f, все данные, которые со- │

│ │ держат комментарии (l1 m1) ... (lN │

│ │ mN). │

├──────────────────────┼─────────────────────────────────────┤

│ (FGETIND f1 (s+) : a │ Цепной вариант FGET. Возвращает │

│ k) │ (FGET fN sN : a k), где f2=(FGET f1 │

│ │ s1 : a), f3=(FGET f2 s2 : a) и т.д. │

│ │ Если f2 или f3 или ... или fN явля- │

│ │ ются многоэлементными списками, то │

│ │ результатом FGET от такого списка │

│ │ будет конкатенация результатов │

│ │ FGETов от элементов этого списка. │

├──────────────────────┼─────────────────────────────────────┤

│ (FHERITAGE f : s) │ Возвращает список имен слотов │

│ │ фрейма f и всех фреймов, связанных │

│ │ с ним через слот s. Если слот s не │

│ │ задан, то s=AKO. │

├──────────────────────┼─────────────────────────────────────┤

│ (FDESCENDANTS f : s) │ Возвращает список всех имен фрей- │

│ │ мов (за исключением самого фрейма │

│ │ f) дерева отношения s с корнем в f. │

│ │ Если s не задано, то s=AKO. │

├──────────────────────┼─────────────────────────────────────┤

│ (FTREE f : s) │ Возвращает списковое представле- │

│ │ ние дерева отношения s с корнем в │

│ │ f. Если s не задано, то s=AKO. │

├──────────────────────┼─────────────────────────────────────┤

│ (FRINGE f : s) │ Возвращает список всех листьев │

│ │ дерева отношения s с корнем в f. │

│ │ Если s не задано, то s=AKO. │

├──────────────────────┼─────────────────────────────────────┤

│ (FCHILDREN f : s) │ Возвращает список всех непосредс- │

│ │ твенных потомков фрейма f в дереве │

│ │ отношения s. Если s не задано, то │

│ │ s=AKO. │

├──────────────────────┼─────────────────────────────────────┤

│ (FINHERIT f s : a) │ =(FGET f s a (C 0)) │

├──────────────────────┼─────────────────────────────────────┤

│ (FINHERIT1 f s : a) │ =(FGET f s a (C O)) │

├──────────────────────┼─────────────────────────────────────┤

- 36 -

│ (FINHERIT2 f s : a) │ =(FGET f s a (C O 2)) │

├──────────────────────┼─────────────────────────────────────┤

│ (FSLOTS f) │ Результат - список имен слотов │

│ │ фрейма f │

├──────────────────────┼─────────────────────────────────────┤

│ (FRAMES) │ Возвращает в качестве результата │

│ │ список фреймов, находящихся в опе- │

│ │ ративной памяти (активных фреймов). │

├──────────────────────┼─────────────────────────────────────┤

│ (PROCEDURES) │ Возвращает в качестве результата │

│ │ список процедур, находящихся в опе- │

│ │ ративной памяти (активных фреймов). │

├──────────────────────┼─────────────────────────────────────┤

│ (DESCRS) │ Список всех дескрипторов. │

├──────────────────────┼─────────────────────────────────────┤

│ (FQUERY f s a : ref │ Поиск в сети фреймов │

│ field relation) │ │

╘══════════════════════╧═════════════════════════════════════╛