Абриаль 2.0 http://www.artint.ru/packin/abrial А.И.Пацкин [mailto:aleksandr@tochka.ru]
README 2.0 ] Абриаль 2.0 ] Введение (1.6) ] Обзор (1.6) ] Публикации ] Глоссарий ] Оглавление ] Руководство ] Выше ] [ _ operations ] A ] B ] C ] D ] E ] F ] G ] H-I ] L ] M ] N ] O ] P ] R ] S ] T-X ]

_ operations


_BLNK  Добавление или изменение бинарной связи.


Формат:

<#_BLNK [AN=aspect-name | A=aspect] [O=object] [D=dbname] [TO=target-object]>

Аргументы/Атрибуты:

aspect-name - имя исходного аспекта
aspect - идентификатор исходного аспекта
object - идентификатор объекта
dbname - путь к файлу БД
target-object - идентификатор целевого объекта

Описание:

Добавляет или изменяет бинарную связь аспекта объекта с целевым объектом. Если целевой объект не указан, будет создан новый. 

Исходный аспект может быть указан числовым идентификатором aspect или своим именем aspect-name. Объект и целевой объект могут быть указаны числовым идентификатором object и target-object. Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущий аспект текущего объекта текущей БД.

В случае успеха возвращает числовой идентификатор указанного или созданного целевого объекта, иначе пусто.

Признаки:

простой, энергичный.

Использование:

 

Примечание:

 

Пример:

<#FORDB D=((XBASE)"Test\AIS.ab")>
<#_BLNK AN="увлеч\об-ты увлечен" O=(OBJ N="Иванов ИИ" C="Личность") TO=(_NITM N="охота" C="увлечения")>
<#/>

Устанавливаем объект увлечения у конкретной личности. 


_DELA  Удаление аспекта объекта.


Формат:

<#_DELA [[AN=]aspect-name | A=aspect] [O=object] [D=dbname] > 

Аргументы/Атрибуты:

aspect-name - имя аспекта
aspect - идентификатор аспекта
object - идентификатор объекта
dbname - путь к БД

Описание:

Удаляет аспект объекта.  Если аспект держащий, то удаления не происходит. 

Аспект может быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута "AN=" ожидается в качестве первого аргумента. Объект может быть указан числовым идентификатором object. Если указана БД dbname, отличная от текущей, то необходимо явно указывать аспект и объект. По умолчанию удаляется текущий аспект текущего объекта текущей БД.

Возвращает в случае успеха непустое значение (символ  "пробел"), иначе пусто.

Признаки:

простой, энергичный. 

Использование:

 

Примечание:

 

Пример:

<#FORDB D=((XBASE)"Test\AIS.ab")>
<#_DELA AN="увлеч\об-ты увлечен" O=(OBJ N="Иванов ИИ" C="Личность")>
<#/>

Устанавливаем отсутствие увлечений у конкретной личности. 


_DELI  Удаление объекта.


Формат:

<#_DELI [O=object] [D=dbname] >

Аргументы/Атрибуты:

object - идентификатор объекта
dbname - путь к файлу БД

Описание:

Удаляет объект из БД. Если указана БД dbname отличная от текущей, то необходимо явно указывать объект числовым идентификатором object. По умолчанию удаляется текущий объект текущей БД. 

Возвращает в случае успешного удаления непустое значение (символ "пробел"), иначе пусто.

Признаки:

простой, энергичный.

Использование:

 

Примечание:

 

Пример:

<#FORDB D=((XBASE)"Test\AIS.ab")>
 <#_DELI O=(OBJ N="охота" C="увлечения")>
<#/>

Удаляем конкретную личность из БД.


_DELK  Удаление одной связи объекта.


Формат:

<#_DELK {LK=link | {{R=relation-name | RID=relation | AN=aspect-name | A=aspect} {Oi=object | Vi=value}+}} [D=dbname] >

Аргументы/Атрибуты:

link - идентификатор связи  
relation-name  - имя отношения
relation - идентификатор отношения
aspect-name - имя аспекта  
aspect - идентификатор аспекта
object - идентификатор объекта
value - значение объекта
dbname - путь к файлу БД

Описание:

Удаляет из БД связь любой размерности, заданную либо числовым идентификатором связи, либо исходным аспектом или отношением и списком целевых объектов или значений. Если указан аспект, и он держащий, то удаления не происходит. Если не указана БД dbname, используется текущая.

Связь должна быть указана явно: 
1) С атрибутом "LK=" числовым идентификатором связи link
2) С атрибутом "R=" именем отношения relation-name или с атрибутом "RID=" числовым идентификатором отношения relation или с атрибутом "AN=" именем исходного аспекта aspect-name или с атрибутом "A=" числовым идентификатором aspect исходного аспекта и списком числовых идентификаторов целевых объектов с атрибутом "Oi=", или значений с атрибутом "Vi=", где i=1,2,3...N, N-размерность связи.

В случае успеха возвращает числовой идентификатор удаленной связи, иначе пусто.

Признаки:

простой, энергичный.

Использование:

 

Примечание:

 

Пример:

<#FORDB D=((XBASE)"Test\AIS.ab")>
<#_DELK R="уч-ст" O1=(OBJ N="Иванов ИИ" C="Личность") O2=(OBJ N="доктор" C="ученая степень") O3=(OBJ N="физ.-мат. наук" C="область наук")>
<#/>

Удаляем связь "уч-ст". 


_EDIT  Добавление или изменение текстового значения атрибута объекта.


Формат:

<#_EDIT _VAL=value [AN=aspect-name | A=aspect] [O=object] [D=dbname] >

Аргументы/Атрибуты:

value - значение атрибута  
aspect-name - имя аспекта
aspect - идентификатор аспекта
object - идентификатор объекта
dbname - путь к БД

Описание:

Добавляет или изменяет на value значение атрибута объекта. 

Аспект может быть указан числовым идентификатором aspect или своим именем aspect-name. Объект может быть указан числовым идентификатором object. Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущий аспект текущего объекта текущей БД.

Возвращает в случае успеха непустое значение (символ "пробел"), иначе пусто. 

Признаки:

простой, энергичный.

Использование:

 

Примечание:

 

Пример:

<#ON O=(OBJ N="Иванов ИИ" С="Личность") AN="дата-рожд\дата рожд" D=((XBASE)"Test\AIS.ab")
 RET=(_EDIT _VAL= "25.04.1817")>

Устанавливаем дату рождения личности.


_HREF  Получение чистой ссылки на объект без обрамляющих тегов.


Формат:

<#_HREF [[M=]method | ACT=action] [{N=object-name C=class-name}| O=object] [D=dbname] [POS=position] [NUM=number] [{parameters}*]>

Аргументы/Атрибуты:

method - метод
action - действие
object-name - имя объекта
class-name - имя класса объекта
object - идентификатор объекта
dbname - путь к файлу базы знаний
position - позиция начала сегмента
number - размер сегмента
parameters - любые именованные параметры 

Описание:

Формирует ссылку на объект БД без обрамляющих тегов и без кавычек, в общем виде: "ab://ab/[&D=dbname] [&O=object] [&N=object-name&C=class-name] [&M=method] [&ACT=action] [&POS=position] [&NUM=number] [{&parameters}*]".

Если не указана БД, используется текущая, формируется внутренняя ссылка. В ссылке формируется параметр "&D=dbname", где dbname - полный путь к файлу текущей БД. Объект может быть указан числовым идентификатором object либо своим именем object-name и именем своего класса class-name. В ссылке формируются параметры: "&O=object[&N=object-name&C=class-name]". По умолчанию формируется параметр "&O=" с числовым идентификатором текущего объекта.

Если явно указана БД dbname, формируется внешняя ссылка. В ссылке формируется параметр с указанным именем БД без изменений "&D=dbname". Объект может быть указан только своим именем object-name и именем класса class-name. По имени и имени класса объекта определяется числовой идентификатор объекта object. В ссылке формируются параметры: "&O=object[&N=object-name&C=class-name]". Если объект не указан, либо отсутствует, либо указан числовым идентификатором, идентификатор обнуляется: "&O=0".  

С атрибутом "M=", или без него первым аргументом, может быть указан метод method формирующий страницу при переходе по ссылке. Если с атрибутом "ACT=" указано действие action, то при переходе по ссылке выполняется действие action, после выполнения которого вызывается метод формирующий текущую страницу.

Могут быть указаны также любые именованные параметры parameters, которые будут включены в ссылку для передачи параметров обрабатывающему методу. В их числе могут быть "NUM=", "POS=" определяющие сегмент итераций по умолчанию в циклах обрабатывающего метода.

Возвращает сформированную таким образом ссылку.

Признаки:

простой, ленивый. 

Использование:

Примечание:

Аналогичен URL. 

Пример:

<a href=<#_HREF M=test>>Тестовая страница</a>


_LINK  Добавление или изменение связи любой размерности.


Формат:

<#_LINK {R=relation-name | RID=relation | AN=aspect-name | A=aspect} {Oi=object | Vi=value}+  [D=dbname] >

Аргументы/Атрибуты:

relation-name  - имя отношения
relation - идентификатор отношения
aspect-name - имя аспекта
aspect - идентификатор аспекта
object - идентификатор объекта
value - значение объекта
dbname - путь к БД

Описание:

Создает или изменяет связь любой размерности.  Если не указана БД dbname, используется текущая.

Связь должна быть указана явно: либо с атрибутом "R=" именем отношения relation-name либо с атрибутом "RID=" числовым идентификатором отношения relation, либо с атрибутом "AN=" именем исходного аспекта aspect-name либо с атрибутом "A=" числовым идентификатором aspect исходного аспекта и списком целевых объектов с атрибутом "Oi=", или значений с атрибутом "Vi=", где i=1,2,3...N, N-размерность связи. 

В случае успеха возвращает числовой идентификатор связи, иначе пусто. 

Признаки:

простой, энергичный. 

Использование:

Примечание:

 

Пример:

<#FORDB D=((XBASE)"Test\AIS.ab")>
<#_LINK R="уч-ст" O1=(OBJ N="Иванов ИИ" C="Личность") O2=(OBJ N="доктор" C="ученая степень") O3=(OBJ N="физ.-мат. наук" C="область наук")>
<#/>

Создаем связь "уч-ст".  


_LOAD  Загрузка DDL-кода в БД.


Формат:

<#_LOAD [D=dbname] [{FILE=file-name [SHOW=Y]}| TEXT=ddl-code] >

Аргументы/Атрибуты:

dbname - путь к файлу БД
file-name - путь к файлу
ddl-code - текст DDL-кода

Описание:

Загружает текст кода DDL ddl-code или из файла file-name в БД dbname или, по умолчанию, в текущую. 

С ключом "SHOW=Y" выводится окно, в котором отображается процесс загрузки в БД текста DDL-кода из указанного файла file-name и кнопками завершения приостановки и продолжения процесса загрузки, по завершению загрузки окно автоматически закрывается. 

Возвращает имя файла file-name без изменений, если текст кода DDL был загружен из файла, непустое значение (символ "пробел"), если загружен текст кода ddl-code, иначе пусто.

Признаки:

простой, ленивый. 

Использование:

 

Примечание:

Аналогичен _LOAD. 

Пример:

<#_LOAD FILE=((DBASE)"MyDB.ab") SHOW=Y> 

Догружаем из файла "MyDB.ab" DDL-код в текущую БД, отображаем процесс загрузки. 


_NEW  Создание новой БД.


Формат:

<#_NEW D=dbname [PROTO=prototype]>

Аргументы/Атрибуты:

dbname - путь к файлу БД
prototype - путь к файлу-прототипу БД

Описание:

Создает новую БД с именем dbname. Если с атрибутом "PROTO=" указан файл-прототип БД prototype, то новая БД будет создана как копия БД-прототипа с именем dbname, иначе создается пустая БД. 

В случае успеха возвращает имя БД dbname без изменений, иначе пусто.

Признаки:

простой, ленивый. 

Использование:

 

Примечание:

Аналогичен NEW. 

Пример:

<#_NEW D=((DBASE)"New.ab") PROTO=((XBASE)"Test\AIS.ab")>

Создаем новую БД "New.ab" на основе БД-прототипа "AIS.ab".


_NITM  Добавление элемента в БД.


Формат:

<#_NITM N=object-name C=class-name [O=object] [AN=aspect-name | A=aspect] [D=dbname] >

Аргументы/Атрибуты:

object-name - имя объекта 
class-name - имя класса объекта
object - идентификатор объекта-словаря 
aspect-name - имя образующего аспекта
aspect - идентификатор образующего аспекта
dbname - путь к файлу БД

Описание:

Создает новый объект с именем object-name класса class-name или присваивает новое имя существующему объекту. 

С атрибутом "O=" числовым идентификатором object может быть указан объект-словарь. Объект-словарь есть старший объект для порождающей связи (словарь, содержащий имя). Для дескрипторов аспектов такими является дескриптор отношения. Для сущностей этим словарем является их дескриптор класса. По умолчанию в качестве объекта-словаря используется текущий объект. 

Образующий аспект может быть указан с атрибутом "A=" числовым идентификатором aspect либо с атрибутом "AN=" своим именем aspect-name. По умолчанию используется "NAME/ITEMS". 

Если БД dbname указана явно, необходимо явно указывать объект-словарь. По умолчанию используется текущая БД. 

В случае успеха возвращает идентификатор объекта - или нового или обнаруженного старого с таким именем, иначе пусто.   

Признаки:

простой, энергичный.

Использование:

 

Примечание:

 

Пример:

<#_NITM N="шахматы" C="увлечения" O=(OBJ N="увлечения" C="CLASS") D=((XBASE)"Test\AIS.ab")>

Добавляем увлечение к возможным увлечениям личностей.


_OPEN  Открытие БД.


Формат:

<#_OPEN D=dbname >

Аргументы/Атрибуты:

dbname - путь к файлу БД

Описание:

Открывает БД с именем файла dbname. Стандартными расширениями файла БД  являются:
".AB" - для текстовых файлов, содержащих DDL-код БД,
".AM" - для файлов с внутренним форматом БД (образов памяти).  

В случае успеха возвращает имя файла открытой БД, иначе пусто.

Признаки:

простой, ленивый. 

Использование:

 

Примечание:

Аналогичен OPEN. 

Пример:

<#_OPEN D=((XBASE)"Test\AIS.ab">

Открываем БД .


_SAVE  Сохранение БД полностью или частично.


Формат:

<#_SAVE [FILE=file-name] [TYPE={ALL | DATA | STRUCT | {OBJ [{N=object-name C=class-name}| O=object]} | {CLA C=class-name}|{REL R=relation-name}}] [D=dbname] > 

Аргументы/Атрибуты:

file-name - новое имя файла БД
object-name - имя объекта
class-name - имя класса
object - идентификатор объекта
relation-name - имя отношения
dbname - путь к файлу БД

Описание:

Сохраняет БД dbname в файл file-name полностью или частично, в зависимости от значения атрибута "TYPE=":
ALL
- вся БД целиком (по умолчанию);
DATA
- только данные;
STRUCT
- только дескрипторы данных;
CLA- только объекты с именем класса class-name;
REL
- только связи с именем отношения relation-name;
OBJ- только объект, либо указанный числовым идентификатором object или своим именем object-name и именем своего класса class-name, либо текущий, по умолчанию.

Если не указано имя БД dbname, по умолчанию используется текущая БД. Без атрибута "FILE=" по умолчанию используется имя файла, приписанного к текущей БД. Стандартными расширениями файла БД  являются:
".AB" - для текстовых файлов, содержащих DDL-код БД,
".AM" - для файлов с внутренним форматом БД (образов памяти).

В случае успеха возвращает имя файла сохраненной БД, иначе пусто.

Признаки:

простой, ленивый. 

Использование:  

 

Примечание:

Аналогичен SAVE. 

Пример:

<#_SAVE D=((XBASE)"Test\AIS.ab") FILE="c:\my\structAIS.ab" TYPE=STRUCT>

Сохраняем из БД AIS.ab в файл "c:\my\structAIS.ab" только объекты - дескрипторы данных.


_SWAP  Переключение связи унарного аспекта объекта.


Формат:

<#_SWAP [[AN=]aspect-name | A=aspect] [O=object] [D=dbname] > 

Аргументы/Атрибуты:

aspect-name - имя аспекта
aspect - идентификатор аспекта
object - идентификатор объекта
dbname - путь к файлу БД

Описание:

Создает унарную связь объекта, если она отсутствует, либо удаляет, если связь имеется. 

Унарный аспект должен быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута "AN=" ожидается в качестве первого аргумента. По умолчанию используется текущий аспект.

Объект может быть указан числовым идентификатором object. По умолчанию используется текущий объект. 

Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущая БД.

В случае успеха возвращает непустое значение (символ "пробел"), иначе пусто. 

Признаки:

простой, энергичный. 

Использование:

Примечание:

 

Пример:

<#ON O=(OBJ N="Иванов ИИ" С="Личность") AN="нестанд-ть\нестандартность мышления"  D=((XBASE)"Test\AIS.ab")
 RET=(COND (EMPTY) (_SWAP))>

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


_TEXT  Изменение значения объекта.


Формат:

<#_TEXT  _VAL=value [O=object] [D=dbname] >

Аргументы/Атрибуты:

value - новое значение
object - идентификатор объекта
dbname - путь к файлу БД

Описание:

Устанавливает объекту object новое значение value для объектов-значений (или имя для объектов-сущностей).

Новое значение (имя) value должно быть указано с атрибутом "_VAL=".

Объект может быть указан числовым идентификатором object. По умолчанию используется текущий объект. 

Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект. По умолчанию используется текущая БД. 

В случае успеха возвращает непустое значение (символ "пробел"), иначе пусто.

Признаки:

простой, энергичный. 

Использование:

 

Примечание:

 

Пример:

<#ON O=(OBJ N="Иванов ИИ" C="Личность") AN="дата-рожд\дата рожд" D=((XBASE)"Test\AIS.ab")
 RET=(_TEXT _VAL="25.04.1817" O=(AT))>

Устанавливаем дату рождения конкретной личности.  

 

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

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