Абриаль 2.1 Начало Выше16/08/03 А.И.Пацкин [packin.ru]

Описание ядра


Описание ядра

Общие замечания.

Ядром сети называются метаданные, служащие для описания метаданных. Ядро состоит из множества системных объектов и связей, появляющихся в сети в момент её инициализации и остающихся неизменными всё время работы с сетью.

Системные классы (класс CLASS).

Имя класса Назначение (содержание) класса Категория класса
CLASS Дескрипторы классов ITEM
CATEG Категории классов ITEM
LINK Дескрипторы отношений ITEM
LTYPE Категории отношений ITEM
SLOT Дескрипторы аспектов ITEM
ATYPE Категории аспектов ITEM
KEY_ Ключи отношений DATA
INT Целые числа VALUE
NUM Действительные числа VALUE
STR Символьные строки VALUE
TOBJ Всеобщий суперкласс для всех классов SUPER
ALT Альтернативы ассоциаций DATA
COND Условия ассоциаций DATA
VARI Переменные ассоциаций ITEM
LITER Контейнеры литералов (константных значений) DATA
REF Ссылки на объекты в условиях/действиях DATA
AMEM Суперкласс для членов условий ассоциаций SUPER
RULE Дескрипторы правил ITEM
RALT Альтернативы правил DATA
RCOND Условия ЛЧ и действия ПЧ правил DATA
RVAR Переменные правил ITEM
AVAL Суперкласс для значений-литералов SUPER
ACOND Суперкласс для условий/действий ассоциаций и правил SUPER
RARG Суперкласс для членов условий/действий правил SUPER

Описания системных классов

Класс ACOND

Этот суперкласс объединяет все общие свойства условий и действий составляющих ассоциации и правила.

Класс ALT

Объекты класса представляют альтернативы ассоциаций, т.е. AND-группы условий объединенные подразумеваемым OR.

Класс AMEM

Это абстрактный класс (не содержащий представителей) для членов условий в виртуальных отношениях. В него входят два класса: VAR - переменных и REF - ссылок.

Класс ATYPE

Класс сущностей - категорий аспектов. Его представители - дескрипторы категорий аспектов - 4 штуки.

Класс AVAL

Суперкласс объединяющий все классы значений (категории VALUE).

Класс CATEG

Класс сущностей - категорий классов. Его представители - дескрипторы категорий классов - 4 штуки.

Класс CLASS

Это класс сущностей - дескрипторов всех классов. См. таблицу представителей класса CLASS.

Класс COND

Это класс неименованных структур - условий в виртуальных отношениях. Условия как бы "состоят" из одного предиката - представителя класса LINK, и нескольких членов - представителей абстрактного класса AMEM.

Класс INT

Это класс значений - целых чисел.

Класс KEY_

Это класс структур, описателей-ключей для отношений/ассоциаций. Эти описатели связаны с входящими в их состав аспектами и со своими отношениями.

Класс LINK

Это класс сущностей - дескрипторов всех отношений. См. таблицу представителей класса LINK.

Класс LITER

Объекты-значения могут входить в условия/действия в виде аргументов, но входят туда не непосредственно, а в оболочке из структур этого класса.

Класс LTYPE

Класс сущностей - категорий отношений. Его представители - дескрипторы категорий отношений - 3 штуки.

Класс NUM

Это класс значений - действительных чисел.

Класс RALT

Алтернативы (группы действий, соединенные подразумеваемым OR) для правил.

Класс RARG

Суперкласс для аргументов объектов RCOND.

Класс RCOND

Это класс структур представляющих условия ЛЧ и действий ПЧ правил. Условия и действия работают по разному но формально устроены одинаково.

Класс REF

Это класс структур - ссылок на объекты-константы в отношениях.

Класс RULE

Класс сущностей - описателей правил.

Класс RVAR

Переменные в правилах. Переменные локально именуются внутри правила.

Класс SLOT

Это класс сущностей - дескрипторов всех аспектов. Эти дескрипторы локально именуются в пределах своих отношений (ассоциаций).

Класс STR

Это класс значений - текстовых строчек.

Класс TOBJ

Это особый абстрактный класс, являющийся всеобщим суперклассом. Всякий класс является его наследником. Поэтому если доменом некоторого аспекта является этот класс, то в соответствующих слотах связи может быть любой объект.

Класс VARI

Это класс сущностей - переменных ассоциаций (виртуальных отношений) Переменные локально именуются внутри ассоциации. При нескольких альтернативах множество переменных ассоциации разбивается на непересекающиеся подмножества для альтернатив, т.е. в разных альтернативах не могут встретиться одноименные переменные.

Категории классов (класс CATEG).

ITEM Сущности или Именованные объекты
DATA Структуры
SUPER Суперклассы (абстрактные классы)
VALUE Значения

Категории аспектов (класс ATYPE).

UNIQ Одиночные аспекты
SET Множественные аспекты
LIST Списочные аспекты
TARGET Результирующие аспекты

Категории отношений (класс LTYPE).

PRIM Примитивные ассоциации, функции и операции
REAL Реальные отношения
VIRT Ассоциации и события

Системные отношения (класс LINK).

Имя отношения Назначение отношения Домены и категории* аспектов
№ 1 №2
Отношения-свойства классов
NAME Словарь представителей класса (3 аспекта**) CLASS S STR U
DOMAIN Связь атрибут-домен SLOT U CLASS L
ISA Наследование классов CLASS L CLASS S
CATEG Категория класса CLASS U CATEG L
ROOTATR Порождающий аспект класса (для таблиц) CLASS U SLOT S
BODYATR Аспект - содержимое класса (для таблиц) CLASS U SLOT S
GENLNK Именующее отношение класса CLASS U LINK U
Отношения свойств отношений
LTYPE Категория отношения LINK U LTYPE S
ANAME Словарь аспектов отношения (3 аспекта**) LINK L STR U
SL_LK Аспекты отношения по порядку LINK L SLOT U
KEYS Ключи отношения LINK S KEY_ U
Отношения свойств аспектов
ATYPE Категория аспекта SLOT U ATYPE S
HOLD Признак аспектов владеющих объектом SLOT U -----  
POLY Признак полиморфных аспектов SLOT U -----  
LOCAL Признак локально выбираемых аспектов SLOT U -----  
SOUR Признак исходных аспектов SLOT U -----  
TITLE Заголовок аспектного столбца SLOT U STR U
TITLR Заголовок объектного столбца SLOT U STR U
MASK Формат ввода атрибутных значений SLOT U STR U
NO_TXT Текст, заменяющий пустые ячейки таблиц SLOT U STR U
WIDE Ширина атрибутного столбца SLOT U INT U
WIDER Ширина аспектного столбца SLOT U INT U
Отношения, обеспечивающие вычислительную модель
VARS Переменные виртуального аспекта SLOT L VAR U
VNAME Словарь переменных ассоциации (3 аспекта**) LINK L STR U
RVARS Словарь переменных правила (3 аспекта**) LINK L STR U
CONDS Условия виртуального отношения LINK S COND U
PRED Отношение-предикат условия COND U LINK S
MEMS Члены условия COND L AMEM S
ROBJ Указатель на объект-константу AMEM U TOBJ S
Примечания: (*) Категории аспектов: U-UNIQ, S-SET, L-LIST

(**) Именующие отношения NAME, ANAME, VNAME RVARS имеют по три аспекта, аспект №3 имеет категорию U, и домен формально TOBJ, SLOT VARI RVAR соответственно.


Описание системных отношений.

Отношения, описывающие структуру сети.

Отношение CATEG

Формат:

CATEG:LINK(CAT1:&CLASS,CAT2:(&CATEG))

Это отношение задаёт категорию класса, категория выбирается из класса CATEG. Если категория не задана, для класса по умолчанию предполагается категория ITEM.

Отношение DOMAIN.

Формат:

DOMAIN:LINK(DOMAIN:&SLOT,ATTRIBS:(&CLASS))

Это отношение связывает класс домен с его аспектами - атрибутами. Для каждого аспекта указание домена обязательно. Класс может не иметь собственных атрибутов, (однако, если он не наследует атрибутов от суперклассов, то от такого класса мало пользы).

Отношение ISA

Формат:

ISA:LINK(ISA:(&CLASS),BASE_FOR:{&CLASS})

Это отношение связывает классы в структуру наследования. Если задано ISA(A,B) это значит, что класс A  наследует от класса B все его атрибуты (вместе с теми, который класс B унаследовал сам от своих суперклассов). В указанном отношении наследующий класс называется наследником, а второй класс - предком.

Отношение NAME.

Формат:

NAME:LINK(ITEMS:{&CLASS},NAME_OF:STR,CLASS:TOBJ)

Это трехместное отношение играет особую роль в системе. Оно связывает классы категории ITEM с их представителями и именами этих представителей. 1-й слот связи NAME связан с классом, 2-й - связан со строковым объектом, представляющим имя, а третий слот связан с объектом представителем класса. Фактически отношение NAME представляет собой множество словарей для объектов глобально доступных классов.

Отношение GENLNK

Формат:

GENLK:LINK(GENLK:&CLASS,GENCL:&LINK)

Это отношение задаёт для локального класса его именующее отношение. Локально доступные классы имеют именующее отношение, которое используется для этих классов вместо NAME. Именующее отношение должно иметь тот же формат, что и NAME. Доменом его 1-го аспекта должен быть "старший" класс, объекты которого содержат словари для локального класса. (Например, для класса Улица "старшим" классом может быть Город). Домен 2-го аспекта - класс STR (для имен). Доменом третьего аспекта должен быть тот же локальный класс, для которого это отношение является именующим.

Отношение LTYPE

Формат:

LTYPE:LINK(LTYPE:LINK,LTYPE_OF:{&LTYPE})

Это отношение задаёт категорию отношения. Категорией отношений могут быть три объекта из одноименного класса LTYPE:PRIM, REAL, VIRT. По умолчанию категория нового отношения равна REAL. Отношения REAL настоящие, в том смысле, что для них фактически существуют связи (факты) в базе данных (в сети). Отношения оставшихся двух категорий вычисляются тем или иным образом.

Отношение SL_LK

Формат:SL_LK:LINK(LINK_SLOTS:(&LINK),SLOT_LINK:SLOT)

Данное отношение связывает дескриптор отношения со списком дескрипторов его аспектов. Каждый аспект должен принадлежать к некоторому отношению. Каждое отношение должно иметь хотя бы один аспект.

Отношение KEYS

KEYS:LINK(KEYS:(&LINK),RELAT:&KEY_)

Данное отношение связывает дескриптор отношения со списком дескрипторов  его ключей.

Отношение ASPKEY

Формат:

ASPKEY:LINK(ASPKEY:{&SLOT},KEYASP:(&KEY_))

Это отношение связывает дескриптор ключа с дескрипторами составляющих этот ключ аспектов. Аспект может входить в два ключа, хотя это довольно редкий случай.

Отношение ATYPE

Формат:

ATYPE:LINK(ATYPE:&SLOT,TYPE_OF:{&ATYPE})

Это отношение задает категорию аспекта. По умолчанию категорией аспекта считается категория SET.

Отношение HOLD

Формат:

HOLD:LINK(HOLD:&SLOT)

Унарное отношение HOLD, отмечает соответствующим признаком дескрипторы аспектов, владеющих объектами. При удалении связи, все объекты, соединенные со слотами аспектов, имеющих этот признак, также автоматически удаляются. Это значит, что объекты через такие слоты соединяются со своими объектами "хозяевами", частями которых они являются.

Отношение POLY

Формат:

POLY:LINK(POLY:&SLOT)

Унарное отношение POLY задаёт признак полиморфных аспектов. Полиморфными считаются аспекты могущие принадлежать объектам нескольких классов. Эти классы должны быть наследниками домена данного аспекта. Если домен аспекта принадлежит категории SUPER, то этот аспект считается полиморфным по умолчанию.

Отношение LOCAL

Формат: LOCAL:LINK(LOCAL:&SLOT)

Унарное отношение LOCAL, отмечает соответствующим признаком дескрипторы локально выбираемых аспектов.


Отношения, поддерживающие интерфейс пользователя.

Отношение TITLE

Формат:

TITLE:LINK(TITLE:&SLOT,TITLE_OF:STR)

Это отношение задаёт текстовую строку - заголовок аспектного столбца таблицы для данного аспекта. По умолчанию для заголовка используется имя аспекта.

Отношение TITLR

Формат:

TITLR:LINK(TITLER:&SLOT,TITLEROF:STR)

Это отношение задаёт текстовую строку - заголовок объектного столбца таблицы для данного аспекта. По умолчанию для заголовка используется имя аспекта.

Отношение WIDE

Формат:

WIDE:LINK(WIDE:&SLOT,WIDE_OF:INT)

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

Отношение WIDER

Формат:

WIDER:LINK(WIDER:&SLOT,WIDER_OF:INT)

Это отношение задаёт ширину объектного столбца таблицы для данного аспекта. Используется аналогично WIDE.

 Отношение MASK

Формат:

MASK:LINK(MASK:&SLOT,MASK_OF:STR)

Это отношение задаёт текстовую строку - формат для вводимого значения простого аспекта. Простой аспект, это одиночный аспект бинарного отношения. Например, аспект MASK является простым.

Отношение NO_TXT

Формат:

NO_TXT:LINK(NO_TXT:&SLOT,NO_TXT_OF:STR)

Это отношение задаёт текстовую строку, выводимую по умолчанию в клетках таблицы соответствующих пустому значению аспекта. Например, может быть задано NO_TXT(Жена,"Холост")

Отношение BODYATR

Формат:

BODYATR:LINK(BODYATR:&CLASS,BODY_OF:{SLOT})

Это отношение задаёт для некоторого класса аспект содержимого. Когда у класса есть аспект содержимого, меняет своё поведение таблица просмотра: если в главной таблице просматриваются объекты данного класса и выбран объектный столбец, то в таблице просмотра показывается содержание аспекта содержимого. Например, в главной таблице мы можем выбирать заголовки разделов помощи (help), а в таблице просмотра будут показываться сами эти разделы, если сделать соответствующий аспект аспектом содержимого для класса "Заголовок help-а".

Отношение ROOTATR

Формат:

ROOTATR:LINK(ROOTATR:&CLASS,ROOT_OF:{SLOT})

Это отношение задаёт для некоторого класса так называемый порождающий аспект. Когда у некоторого класса есть такой аспект, меняется реакция на клавишу Esc при просмотре таблицы состоящей из представителей этого класса. При этом происходит переход по порождающему аспекту к старшему объекту, взамен обычной реакции на клавишу Esc.


Отношения, поддерживающие вычислительную модель.

Это отношения (CONDS, MEMS, PRED, ROBJ, VARS) а также примитивные ассоциации.

Отношение CONDS

Формат:

CONDS:LINK(CONDS:{&LINK},COND_OF:COND)

Это отношение связывает дескриптор виртуального отношения с его условиями.

Отношение MEMS

Формат:

MEMS:LINK(MEMS:(&COND),MEMB_OF:{AMEM})

Это отношение связывает условие виртуального отношения с его членами.

Отношение PRED

Формат:

PRED:LINK(PRED:&COND,PRED_OF:{&LINK})

Это отношение связывает условие виртуального отношения с дескриптором отношения-предиката, т.е. с типом этого условия.

Отношение ROBJ

Формат:

ROBJ:LINK(REF:&AMEM,REF_OF:{&TOBJ})

Это отношение связывает член условия виртуального отношения - ссылку с тем объектом, на который она ссылается. Связь с этим объектом нужна только для объектов класса REF, но аспект распространяется и на VAR, для того чтобы в таблице членов условия был виден аспект REF.

Отношение VARS

Формат:

VARS:LINK(VARS:(&SLOT),VAR_OF:VAR)

Это отношение связывает аспект-параметр виртуального отношения с соответствующими ему переменными.


Форматы всех системных классов отношений.

Ниже приводится описание ядра на языке представления знаний. При сохранении базы данных это описание пропускается. При загрузке - добавляется автоматически.

CLASS:CLASS(NAME\ITEMS,CATEG\CAT1,DOMAIN\ATTRIBS,  ISA\ISA,ISA\BASE_FOR,BODYATR\BODYATR, ROOTATR\ROOTATR,GENLK\GENLK)
TOBJ:CLASS(NAME\CLASS,SET\SET1,SET\SET2,LET\LET1,LET\LET2,
   INT\INT1,NUM\NUM1,STR\STR1,TOINT\TOINT1,TOINT\TOINT2,
   TONUM\TONUM1,TONUM\TONUM2,TOSTR\TOSTR1,TOSTR\TOSTR2,ROBJ\REF_OF)
INT:CLASS(WIDE\WIDE_OF,WIDER\WIDER_OF,NE\NE1,NE\NE2,
    GE\GE1,GE\GE2,LE\LE1,LE\LE2,LT\LT1,LT\LT2,GT\GT1,GT\GT2,
    EQ\EQ1,EQ\EQ2,ADD\ADD1,ADD\ADD2,DIV\DIV1,DIV\DIV2,
    MUL\MUL1,MUL\MUL2,SUB\SUB1,SUB\SUB2,INT\INT2,NUM\NUM2)
LINK:CLASS(ANAME\ASPECTS,SL_LK\LINK_SLOTS,LKEY\LKEY,
    KEYS\KEYS,VNAME\VARIABLES,LTYPE\LTYPE,GENLK\GENCL,
   ALTS\ALTS,PRED\PRED_OF,CONDS\CONDS,RPRED\RULES)
NUM:CLASS()
SLOT:CLASS(DOMAIN\DOMAIN,ANAME\ASPOFLK, ATYPE\ATYPE,
   HOLD\HOLD,POLY\POLY,SL_LK\SLOT_LINK,SKEY\SKEY,
   ASPKEY\ASPKEY,SOUR\SOUR,VARIS\VARIS,TITLE\TITLE,
   TITLR\TITLER,MASK\MASK,NO_TXT\NO_TXT, WIDE\WIDE,WIDER\WIDER,
   LOCAL\LOCAL,BODYATR\BODY_OF,ROOTATR\ROOT_OF,VARS\VARS,
   GENLK=ANAME)
STR:CLASS(NAME\NAME_OF,ANAME\ANAM2,TITLE\TITLE_OF,
   TITLR\TITLEROF,MASK\MASK_OF,NO_TXT\NO_TXT_OF,
   VNAME\VNAM2,CAT\CAT1,CAT\CAT2,STR\STR2,RVARS\VNAME)
ATYPE:CLASS(ATYPE\TYPE_OF)
AKEY:CLASS()
KEY_:CLASS(KEYS\RELAT,ASPKEY\KEYASP)
KEY:CLASS(SKEY\KSLOT,LKEY\KLINK)
CATEG:CLASS(CATEG\CAT2)
AMEM:CLASS(MEMS\MEMB_OF)
COND:CLASS(CONDI\COND_ALT,PRED\PRED,MEMS\MEMS,CONDS\COND_OF)
LTYPE:CLASS(LTYPE\LTYPE_OF)
REF:CLASS(ROBJ\REF)
VAR:CLASS(VARS\VAR_OF)
VARI:CLASS(VARIS\VAR_OF,VNAME\VAR_OF_REL, ALVA\VAR_OF_ALT,GENLK=VNAME)
ALT:CLASS(ALTS\ALT_OF,ALVA\ALTVARS,CONDI\CONDI)
AVAL:CLASS(LVAL\VAL_OF_LIT)
LITER:CLASS(LVAL\LIT_VALUE)
ACOND:CLASS(NEG\NEG,ONCE\ONCE,REP\REP)
RARG:CLASS(RARGS\COND)
RALT:CLASS(RALTS\RULE,RACTS\ACTS)
RCOND:CLASS(RCONDS\RULE,RARGS\ARGS,RPRED\PRED,RACTS\ALT)
RULE:CLASS(RCONDS\RCONDS,RALTS\RALTS,RVARS\VARS)
RVAR:CLASS(RVARS\RULE,GENLK=RVARS)
ANAME:LINK(ASPECTS:{&LINK},ANAM2:[STR],ASPOFLK:SLOT)
ATYPE:LINK(ATYPE:&SLOT,TYPE_OF:{&ATYPE})
BODYATR:LINK(BODYATR:&CLASS,BODY_OF:{SLOT})
CATEG:LINK(CAT1:&CLASS,CAT2:(&CATEG))
DOMAIN:LINK(DOMAIN:&SLOT,ATTRIBS:(&CLASS))
GENLK:LINK(GENLK:&CLASS,GENCL:&LINK)
HOLD:LINK(HOLD:&SLOT)
ISA:LINK(ISA:(&CLASS),BASE_FOR:{&CLASS})
LKEY:LINK(LKEY:(&LINK),KLINK:&KEY)
KEYS:LINK(KEYS:(&LINK),RELAT:&KEY_)
ASPKEY:LINK(ASPKEY:{&SLOT},KEYASP:(&KEY_))
SKEY:LINK(SKEY:{&SLOT},KSLOT:(&KEY))
LOCAL:LINK(LOCAL:&SLOT)
MASK:LINK(MASK:&SLOT,MASK_OF:STR)
MEMS:LINK(MEMS:(&COND),MEMB_OF:{AMEM})
NAME:LINK(ITEMS:{&CLASS},NAME_OF:[STR],CLASS:TOBJ)
NEG:LINK(NEG:&ACOND)
NO_TXT:LINK(NO_TXT:&SLOT,NO_TXT_OF:STR)
ONCE:LINK(ONCE:&ACOND)
POLY:LINK(POLY:&SLOT)
REP:LINK(REP:&ACOND)
ROOTATR:LINK(ROOTATR:&CLASS,ROOT_OF:{SLOT})
SL_LK:LINK(LINK_SLOTS:(&LINK),SLOT_LINK:SLOT)
SOUR:LINK(SOUR:&SLOT)
TITLE:LINK(TITLE:&SLOT,TITLE_OF:STR)
TITLR:LINK(TITLER:&SLOT,TITLEROF:STR)
WIDE:LINK(WIDE:&SLOT,WIDE_OF:INT)
WIDER:LINK(WIDER:&SLOT,WIDER_OF:INT)
VARS:LINK(VARS:(&SLOT),VAR_OF:VAR)
PRED:LINK(PRED:&COND,PRED_OF:{&LINK})
CONDS:LINK(CONDS:{&LINK},COND_OF:COND)
ROBJ:LINK(REF:&REF,REF_OF:{&TOBJ})
LTYPE:LINK(LTYPE:LINK,LTYPE_OF:{&LTYPE})
VNAME:LINK(VARIABLES:{&LINK},VNAM2:[STR],VAR_OF_REL:VARI)
VARIS:LINK(VARIS:(&SLOT),VAR_OF:&VARI)
ALTS:LINK(ALTS:(&LINK),ALT_OF:ALT)
ALVA:LINK(ALTVARS:{&ALT},VAR_OF_ALT:&VARI)
LVAL:LINK(LIT_VALUE:&LITER,VAL_OF_LIT:AVAL)
CONDI:LINK(CONDI:{&ALT},COND_ALT:COND)
RCONDS:LINK(RCONDS:{&RULE},RULE:RCOND)
RALTS:LINK(RALTS:(&RULE),RULE:RALT)
RVARS:LINK(VARS:{&RULE},VNAME:[STR],RULE:RVAR)
RARGS:LINK(ARGS:(&RCOND),COND:{RARG})
RPRED:LINK(PRED:&RCOND,RULES:{&LINK})
RACTS:LINK(ACTS:(&RALT),ALT:RCOND)
ADD:LINK(ADD1:[*INT],ADD2:*INT)
CAT:LINK(CAT1:[*STR],CAT2:*STR)
SET:LINK(SET1:[&TOBJ],SET2:*TOBJ)
DIV:LINK(DIV1:[*INT],DIV2:*INT)
EQ:LINK(EQ1:*INT,EQ2:*INT)
GE:LINK(GE1:*INT,GE2:*INT)
GT:LINK(GT1:*INT,GT2:*INT)
INT:LINK(INT1:[&TOBJ],INT2:*INT)
LE:LINK(LE1:*INT,LE2:*INT)
LET:LINK(LET1:[*TOBJ],LET2:*TOBJ)
LT:LINK(LT1:*INT,LT2:*INT)
MUL:LINK(MUL1:[*INT],MUL2:*INT)
NE:LINK(NE1:*INT,NE2:*INT)
NUM:LINK(NUM1:[&TOBJ],NUM2:*INT)
STR:LINK(STR1:[&TOBJ],STR2:*STR)
SUB:LINK(SUB1:[*INT],SUB2:*INT)
TOINT:LINK(TOINT1:[*TOBJ],TOINT2:*TOBJ)
TONUM:LINK(TONUM1:[*TOBJ],TONUM2:*TOBJ)
TOSTR:LINK(TOSTR1:[*TOBJ],TOSTR2:*TOBJ)
SET:ATYPE
LIST:ATYPE
UNIQ:ATYPE
TARGET:ATYPE
REAL:LTYPE
VIRT:LTYPE
PRIM:LTYPE
ITEM:CATEG
DATA:CATEG
SUPER:CATEG
VALUE:CATEG
POLY(NAME\ITEMS)
LOCAL(SL_LK\SLOT_LINK)
LOCAL(VARIS\VARIS)
LOCAL(VARIS\VAR_OF)
LOCAL(ALVA\VAR_OF_ALT)
LOCAL(MEMS\MEMS)
POLY(MEMS\MEMB_OF)
LOCAL(MEMS\MEMB_OF)
POLY(ROBJ\REF_OF)
POLY(LVAL\VAL_OF_LIT)
LOCAL(VARS\VARS)
LOCAL(RARGS\ARGS)
POLY(RARGS\COND)
LOCAL(RARGS\COND)
CATEG(CLASS,ITEM)
CATEG(CATEG,ITEM)
CATEG(KEY,ITEM)
CATEG(LINK,ITEM)
CATEG(LTYPE,ITEM)
CATEG(SLOT,ITEM)
CATEG(VAR,ITEM)
CATEG(VARI,ITEM)
CATEG(ATYPE,ITEM)
CATEG(RULE,ITEM)
CATEG(RVAR,ITEM)
CATEG(ALT,DATA)
CATEG(COND,DATA)
CATEG(KEY_,DATA)
CATEG(LITER,DATA)
CATEG(REF,DATA)
CATEG(RALT,DATA)
CATEG(RCOND,DATA)
CATEG(AMEM,SUPER)
CATEG(AVAL,SUPER)
CATEG(AKEY,SUPER)
CATEG(TOBJ,SUPER)
CATEG(ACOND,SUPER)
CATEG(RARG,SUPER)
ISA(COND,ACOND)
ISA(INT,AVAL)
CATEG(INT,VALUE)
CATEG(NUM,VALUE)
CATEG(STR,VALUE)
ISA(KEY,AKEY)
ISA(KEY_,AKEY)
ISA(LITER,AMEM)
ISA(LITER,RARG)
ISA(NUM,AVAL)
ISA(REF,AMEM)
ISA(REF,RARG)
ISA(STR,AVAL)
ISA(VAR,AMEM)
ISA(VARI,AMEM)
ISA(RCOND,ACOND)
ISA(RVAR,RARG)
LTYPE(ALTS,REAL)
LTYPE(ALVA,REAL)
LTYPE(ANAME,REAL)
LTYPE(ATYPE,REAL)
LTYPE(BODYATR,REAL)
LTYPE(CATEG,REAL)
LTYPE(CONDI,REAL)
LTYPE(CONDS,REAL)
LTYPE(DOMAIN,REAL)
LTYPE(GENLK,REAL)
LTYPE(HOLD,REAL)
LTYPE(ISA,REAL)
LTYPE(LKEY,REAL)
LTYPE(KEYS,REAL)
LTYPE(MASK,REAL)
LTYPE(MEMS,REAL)
LTYPE(NAME,REAL)
LTYPE(NO_TXT,REAL)
LTYPE(LOCAL,REAL)
LTYPE(POLY,REAL)
LTYPE(PRED,REAL)
LTYPE(ROBJ,REAL)
LTYPE(ROOTATR,REAL)
LTYPE(SL_LK,REAL)
LTYPE(SKEY,REAL)
LTYPE(ASPKEY,REAL)
LTYPE(SOUR,REAL)
LTYPE(TITLE,REAL)
LTYPE(TITLR,REAL)
LTYPE(LTYPE,REAL)
LTYPE(LVAL,REAL)
LTYPE(VARIS,REAL)
LTYPE(VARS,REAL)
LTYPE(VNAME,REAL)
LTYPE(WIDE,REAL)
LTYPE(WIDER,REAL)
LTYPE(RCONDS,REAL)
LTYPE(RALTS,REAL)
LTYPE(RVARS,REAL)
LTYPE(RARGS,REAL)
LTYPE(RPRED,REAL)
LTYPE(RACTS,REAL)
LTYPE(NE,PRIM)
LTYPE(EQ,PRIM)
LTYPE(LE,PRIM)
LTYPE(LET,PRIM)
LTYPE(GE,PRIM)
LTYPE(LT,PRIM)
LTYPE(GT,PRIM)
LTYPE(ADD,PRIM)
LTYPE(CAT,PRIM)
LTYPE(DIV,PRIM)
LTYPE(MUL,PRIM)
LTYPE(SUB,PRIM)
LTYPE(INT,PRIM)
LTYPE(NUM,PRIM)
LTYPE(STR,PRIM)
LTYPE(SET,PRIM)
LTYPE(TOINT,PRIM)
LTYPE(TONUM,PRIM)
LTYPE(TOSTR,PRIM)
LTYPE(NEG,REAL)
LTYPE(ONCE,REAL)
LTYPE(REP,REAL)

Графическая схема ядра


Все права защищены. © 2000-2004 РосНИИ ИИ
http://artint.ru
Copyright. © 2000-2004 by RRIAI
Александр Иосифович Пацкин [mailto:aleksandr@tochka.ru].
16/08/03

К началу документа.