Технология разработки решателя на основе расширяемого редактора инфоресурсов
В документе Модель представления информационных ресурсов описаны:
В данном документе приведено описание функциональности расширяемого редактора информационных ресурсов — Extensible Improved Web Editor (далее ExIWE) в процессе формирования и модификации информационных ресурсов, представляющих как метаинформацию, так и объектную информацию. Необходимо отметить, что использование термина "информационный ресурс" подразумевает, что речь идёт о представлении информационного ресурса в виде семантической сети.
Процесс редактирования информационных ресурсов, представляющих метаинформацию, является исключительно контекстно-свободным, в то время как процесс редактирования информационных ресурсов, представляющих объектную информацию, может быть как контекстно-свободным, так и контекстно-зависимым.
- Активное понятие
- Понятие информационного ресурса, выбранное пользователем для выполнения некоторой операции над ним (редактирование значений его атрибутов, удаления отношения к нему от понятия предка или выбор его в качестве текущего понятия), с целью просмотра (путём навигации по подсети его понятий-потомков) и/или формирования (путём порождения новых понятий — прямых потомков и отношений к ним или создания ссылок на уже существующие понятия) его содержания.
- Зависимое клонирование понятия
- Создание нового понятия, такого что:
- значение его атрибута значение совпадает со значением атрибута значение клонируемого понятия;
- изменение значения атрибута значение исходного понятия (т.е. понятия, которое клонируется) приводит к аналогичным изменениям значения атрибута значение у каждого из понятий-клонов;
- изменение значения атрибута значение у понятий-клонов недопустимо;
- удаление исходного понятия приводит к удалению каждого из понятий-клонов;
- удаление некоторого понятия-клона допустимо и никаким образом не отражается на остальных понятиях-клонах и исходном понятии.
- Зависимое клонирование множества понятий
- Создание множества новых понятий (количество которых совпадает с количеством понятий в клонируемом множестве), такого что каждое его понятие является результатом зависимого клонирования соответствующего понятия клонируемого множества понятий. После создания зависимого клона множества:
- при удалении из клонируемого (исходного) множества элемента последний должен быть удалён из каждого множества-клона;
- при добавлении в клонируемое (исходное) множество элемента последний должен быть добавлен в каждое множество-клон;
- ни в одно из множетсв-клонов не могут быть добавлены новые элементы или из них удалены существующие.
- Примечание. Свойства (ограничения для) операций (изменение, удаление, добавление) над исходным и множеством клонированых понятий (множеств понятий) введены по аналогии со свойствами таких же операций над содержимым информационного ресурса, представляющего метаинформацию, и содержимым множества информационных ресурсов, представляющих (объектную) информацию — < Si,Mi={I1,...,Ik}> .
- В данном случае исходное понятие (множество понятий) есть аналог Si, а множество клонированных понятий (множеств понятий) — аналог Mi .
- Контекстно-зависимые информационные ресурсы
- Множество информационных ресурсов будем называть контекстно-зависимым, если значения и/или содержание некоторых понятий этих информационных ресурсов должны находиться в соответствии со значениями и/или содержанием других понятий тех же или других информационных ресурсов, в том числе и, принадлежащих множествам с другой метаинформацией.
- Независимое клонирование понятия
- Создание нового понятия, такого что:
- значения всех его атрибутов совпадают со значениями аналогичных атрибутов клонируемого понятия;
- его содержание является клоном содержания клонируемого понятия (если оно не пусто);
- изменения значений атрибутов или содержания одного из понятий никаким образом не отражаются на значениях аналогичных атрибутов или содержании другого понятия.
- Независимое клонирование множества понятий
- Создание множества новых понятий (количество которых совпадает с количеством понятий в клонируемом множестве), такого что каждое его понятие является результатом независимого клонирования соответствующего понятия клонируемого множества понятий.
- Примечание. Клонирование информационного ресурса, не содержащего ссылки на другие информационные ресурсы, можно рассматривать как независимое клонирование множества понятий. Клонирование информационного ресурса, содержащего ссылки на другие информационные ресурсы, может рассматриваться в трёх вариантах:
- сторонние информационные ресурсы (на которые установлены ссылки) не клонируются, а из информационного ресурса-клона на них аналогичным образом устанавливаются ссылки — поверхностное клонирование;
- для каждого стороннего информационного ресурса клонируется только его фрагмент, начинающийся с того понятия, на которое установлена ссылка (после чего склонированный фрагмент является частью информационного ресурса-клона) — смешанное клонирование;
- каждый сторонний информационный ресурс, на понятие которого установлена ссылка, клонируется целиком, и из информационного ресурса-клона аналогичным образом устанавливаются ссылки на клон каждого стороннего информационного ресурса — глубокое клонирование.
- Редактирование информационных ресурсов
- Процесс их интерактивного создания или изменения.
- Текущее понятие
- Активное нетерминальное понятие, являющееся источником для некоторой подсети понятий информационного ресурса. Каждому текущему понятию соответствует одно или более состояний процесса редактирования. Состояние характеризуется тем, что для навигации/редактирования доступна только подсеть с текущим понятием в качестве источника. В процессе редактирования ExIWE может накапливать историю состояний (представленную списком).
ExIWE предназначен для:
- редактирования множества семантический сетей {Si|i=1,∞} в соответствии с моделью представления информационных ресурсов, где Si представляет собой метаинформацию для множества объектных семантических сетей,Mi={I1,...,Ik} .
- редактирования и/или автоматического формирования множества объектных семантических сетей Mi на основе заданной пары Pi=< Si,Ti >, где Ti — объектная семантическая сеть, представляющая собой таблицу соответствий, сопоставляющую понятиям сети Si обращения к агентам платформы[1].
Цикл работы ExIWE при формировании некоторого информационного ресурса состоит в общем случае из следующих этапов:
- Автоматическое формирование фрагмента информационного ресурса.
- Данный этап может выполняться только при формировании объектного информационного ресурса I*∈ {Mi={I1,...,Ik}i=1,∞}.
- Отображение порождённого фрагмента информационного ресурса, при котором пользователю предоставляются следующие возможности (активируемые им через соответствующие интерфейсные элементы):
- Выполнение выбранного пользователем действия — одного из перечисленных в п. 2:
- с использованием встроенной в ExIWE функциональности;
- посредством обращения из ExIWE к нужному агенту платформы[2]:
- при создании, порождении или изменении значения понятия v, если v есть нетерминальное (NValue) или терминальное (TValue) понятие, описывающее значение структурного сорта;
- при порождении и/или модификации содержания понятия v, если понятию proto_end понятия v в таблице соответствий Ti сопоставлено обращение к агенту, для которого значение признака интерактивное есть истина, но при этом спецификатор отношения proto_relation (понятием-концом которого является proto_end) должен принадлежать множеству {!,[!],+,[+]}.
Способы формирования и изменения содержимого редактируемого информационного ресурса, состоящие в формировании и изменении значений и содержания понятий редактируемой сети, предполагают как использование непосредственно встроенной в ExIWE функциональности, так и обращения из ExIWE к агентам платформы (посредством посылки им сообщений по заданному шаблону), которые самостоятельно модифицируют редактируемый информационный ресурс (при этом должно сохраняться соответствие редактируемого информационного ресурса его метаинформации).
Стоит отметить, что можно выделить множество операций по формированию и изменению содержимого информационных ресурсов, которые применимы только при редактировании сетей, представляющих объектную информацию, либо, наоборот — сетей, представляющих метаинформацию, однако совокупность условий применимости отдельно описывается в предусловиях к соответствующей функции (возможности).
Таблица соответствий Ti в паре Pi = < Si,Ti > сопоставляет понятиям сети Si обращения к агентам платформы для формирования или изменения в процессе редактирования сети Ij ∈ Mi = {Ij | j=1,k;} фрагментов последней. При порождении по отношению-прототипу, концом которого является понятие V ∈ Si, если V ∈ Ti (т.е. на V есть ссылка из Ti), то в Iij под соответствующим понятием достраивается/модифицируется подсеть, сформированная указанным в Ti агентом Agent посредством посылки этому агенту сообщения с заданными в Ti параметрами. Среди прочих параметров в посылаемом агенту Agent сообщении должна содержаться ссылка на понятие v редактируемого информационного ресурса Iij, содержание (подсеть) которого создаётся или модифицируется агентом Agent. Данный параметр является неявным: он не задаётся в таблице соответствий Ti, но помещается в сообщение редактором ExIWE.
Структура (метаинформация) таблицы соответствий ST, которая является входным формальным параметром Расширяемого редактора инфоресурсов ExIWE, имеет следующий вид:
(открыть в полном размере)
Использование Таблицы соответствий можно посмотреть на примерах агентов "Присваивание" и "Выбор" — агентов для поддержки контекстно-зависимого редактирования объектных информационных ресурсов, а также агента "АИСТ" — агента, поддерживающего ввод и отображение фрагментов объектных информационных ресурсов в виде текстов.
Каждый структурный (библиотечный) сорт есть агент платформы, помещенный в специальный раздел Проблемно-независимой предметной области. Такой агент должен содержать методы (блоки продукций) для:
- создания значений (объектов) данного сорта;
- получения значений (объектов) данного сорта;
- модификации значений (объектов) данного сорта;
- отображения значений (объектов) данного сорта в интерфейсе.
Агент может содержать также другие методы (блоки продукций) для работы со значениями (объектами) соответствующего сорта.
В информационном ресурсе нетерминалы-значения и терминалы-значения структурного сорта представляются понятиями, описывающими значение типа BLOB, в котором содержится байт-код значения (объекта) соответствующего сорта (экземпляра соответствующего класса).
Схема взаимодействия редактора ExIWE с агентами платформы, представляющими структурные сорта расширяемой библиотеки сортов, выглядит следующими образом.
Среди прочих параметров в посылаемом агенту платформы сообщении должна содержаться ссылка на понятие v обрабатываемого информационного ресурса Ij
(кроме случая п. 1 — создания значений (объектов) данного сорта):
- При создании значений (объектов) данного сорта (п. 1) (после получения агентом соответствующего сообщения) выполняются следующие действия:
- агент платформы:
- создаёт значение (объект) заданного сорта (экземпляр класса);
- сериализует созданный объект в массив байт;
- помещает массив байт в ответное сообщение по обратному адресу (в частности, редактору ExIWE) как значение типа BLOB;
- ExIWE:
- создаёт понятие w со значением типа BLOB, которое ему возвращает агент в ответном сообщении;
- создаёт отношение v → w (при редактировании информационного ресурса, представляющего метаинформацию, Si — с заданным спецификатором);
- устанавливает комментарий для w (если он был задан).
- При получении/модификации/отображении значений (объектов) данного сорта (пп. 2 — 4) (после получения агентом соответствующего сообщения) выполняются следующие действия:
- агент платформы:
- десериализует извлечённый из понятия v (описывающего значения типа BLOB) массив байт в объект;
- выполняет над этим объектом необходимые действия: модифицирует/извлекает значения его свойств, формирует интерфейс для отображения данного объекта и т.п.;
- если выполнялась модификация объекта, то сериализует изменённый объект в массив байт;
- в ответное сообщение по обратному адресу (в частности, расширяемому редактору инфоресурсов ExIWE) помещает:
- массив байт как значение типа BLOB — если выполнялась модификация объекта;
- значение некоторого свойства объекта — если требовалось получить значение данного свойства объекта (расширяемому редактору инфоресурсов ExIWE такое не требуется, это может понадобиться агенту другого решателя, например);
- Расширяемый редактор инфоресурсов (ExIWE):
- получает в ответном сообщении от агента новое значение типа BLOB и заменяет им предыдущее значение понятия v;
- изменяет при необходимости спецификатор входящего в понятие v отношения (при редактировании информационного ресурса, представляющего метаинформацию, Si);
- изменяет комментарий для v (если он был задан).
Для информационного ресурса I* должна быть возможность указывать (задавать) его контекст — [K1,...,Kn] — (полные) названия (или ссылки) тех информационных ресурсов, от которых он зависит I*[K1,...,Kn] (фрагменты которых используются при формировании информационного ресурса I*).
Пример (дополнительно см. раздел "Агенты для поддержки контекстно-зависимого редактирования объектных информационных ресурсов").
- База знаний* [<Предметная область>/<Раздел>/База наблюдений*]
- При формировании базы знаний База знаний* необходимо, чтобы множество признаков, для каждого из которых должны быть указаны его нормальные значения, совпадало с множеством признаков, описанных в базе наблюдений База наблюдений*. При этом, множество нормальных значений для конкретного признака в База знаний* должно выбираться из множества всех значений, указанных для этого признака в База блюдений*.
- История болезни* [<Предметная область>/<Раздел>/База наблюдений*];
- При формировании истории болезни История болезни* множество признаков, для каждого из которых в конкретный момент наблюдения данного признака должно быть указано его наблюдаемое значение, должно быть подмножеством множества всех признаков, описанных в базе наблюдений База наблюдений*. При этом, наблюдаемое в конкретный момент времени значение конкретного признака в История болезни* должно выбираться из множества всех значений, указанных для этого признака в База наблюдений*.
- База заболеваний* [<Предметная область>/<Раздел>/База наблюдений*]
- При формировании базы заболеваний База заболеваний* множество признаков заболеваний, для каждого из которых в конкретный период динамики конкретного варианта развития должны быть указаны возможные значения данного признака значение, должно быть подмножеством множества всех признаков, описанных в базе наблюдений База наблюдений*. При этом, множество значений в конкретный период динамики конкретного варианта развития некоторого признака в База заболеваний* должно быть непустым подмножеством множества всех значений, указанных для этого признака в База наблюдений*.
Наряду с возможностью повторной используемости фрагментов информационных ресурсов (реализуемой ссылками) предлагается предусмотреть возможность делать связанными значения понятий информационных ресурсов. Это означает, что некоторое заданное значение Value* во всех информационных ресурсах, в которые оно входит, означает одно и то же (выражает одну сущность), но содержание у всех понятий {v1,...,vn}, имеющих значение Value*, может быть различным.
Таким образом, понятия v1,...,vn находятся между собой в отношении зависимого клонирования, а это означает то, что изменение значения Value* на Value** у исходного понятия из множества понятий v1,...,vn(например, v1), ведёт к тому что значение Value* должно измениться на Value** у всех остальных понятий ( v2,...,vn, в данном случае).
Пример.
При формировании базы знаний База знаний* необходимо, чтобы множество признаков (A) совпадало с множеством признаков (B), описанных в базе наблюдений База наблюдений*. Для этого выполняется зависимое клонирование множества B, результатом которого является множество A. Таким образом, множества A и B должны состоять в отношении зависимого клонирования (A ≂ B).
Множество нормальных значений (C) заданного признака p' в База знаний* должно быть непустым подмножеством множества всех возможных значений (D) признака p', заданных в База наблюдений*. Для этого выполняется зависимое клонирование элементов выбранного пользователем подмножетсва (D') множества D' (D'⊂D), результатом которого является множество C. Таким образом, элементы множеств C и D' должны состоять в отношении зависимого клонирования (C ≂ D').
TODO: подумать над тем, как и на каком уровне (API, Cache) это реализовать!
- Может быть хранить имена и значения понятий отдельно от самих понятий (в какой-нибудь таблице/инфоресурсе)?
- Если не хранить отдельно, то нужно где-то (в каком-то инфоресурсе или ещё где) хранить информацию о том, имена (значения) каких понятий должны быть синхронизированы?
- ...
Выполняется построение фрагмента сети I, который однозначно определяется сетью S. Данный фрагмент есть результат автоматически запускаемого процесса применения правила порождения 4.
- Условия запуска процесса:
- в сети I существуют понятия:
- для которых выполняются условия применения правила порождения 4 со следующими дополнительными ограничениями[3]:
- понятиям proto_end которых в таблице соответствия Ti сопоставлено обращение к агенту, для которого значение признака интерактивное есть ложь.
- Условия остановки процесса:
- в сети I отсутствуют понятия, для которых выполняются условия, перечисленные в п.п. 1 и п.п. 2 условий запуска данного процесса.
Навигация по сети понятий, представляющей информационный ресурс, с целью просмотра и/или редактирования последнего начинается с понятия-источника сети, которое на начальном этапе является единственным активным, а также текущим понятием. Понятия сети визуально представляются следующим образом:
- нетерминалы-сорта и терминалы-сорта — своими именами и названиями сортов,
- нетерминалы-значения и терминалы-значения — своими значениями. При этом, если значение принадлежит структурному сорту, то для отображения значения данного сорта должно быть послано сообщение по заданному шаблону соответствующему агенту.
При навигации пользователю доступны следующие возможности:
- Предусловия:
- выбранное понятие принадлежит множеству неактивных понятий и является прямым потомком некоторого понятия, принадлежащего множеству активных понятий.
- Постусловия:
- изменяется визуальное представление понятия;
- отображается множество доступных операций, которые можно выполнить с данным понятием и/или ведущим к нему отношением;
- для нетерминальных понятий также:
- отображается множество прямых потомков выбранного понятия, их понятия-прототипы из метаинформации, а также спецификаторы отношений, которыми прямые потомки с ним связаны (спецификаторы отношений отображаются только при редактировании/просмотре метаинформации; понятия-прототипы отображаются только при редактировании/просмотре информации)
- отображается множество доступных порождений новых отношений выбранного понятия с новыми понятиями-потомками или с уже существующими в некоторых информационных ресурсах понятиями (создание ссылок):
- Предусловия:
- выбранное понятие принадлежит множеству активных понятий, но не является текущим понятием.
- Постусловия: выбранное понятие исключается из множества активных понятий, а именно
- визуальное выделение с понятия снимается (понятие выглядит как неактивное);
- скрывается множество доступных над этим понятием операций;
- для нетерминальных понятий также:
- скрывается множество прямых потомков выбранного понятия (при этом отображается спецификатор отношения между активным понятием-предком и выбранным понятием — при редактировании/просмотре метаинформации; отображается понятие-прототип выбранного понятия — при редактировании/просмотре информации);
- скрывается множество доступных порождений новых отношений выбранного понятия с новыми понятиями-потомками и создание ссылок.
- Предусловия:
- задано значение атрибута комментарий (не является пустой строкой).
- Постусловия:
- отображается комментарий для понятия при наведении указателя на имя/значение соответствующего понятия.
- Предусловия:
- выбор некоторого состояния из списка состояний, который доступен, если количество состояний больше 1.
- Постусловия:
- из списка состояний удаляются все состояния, добавленные в него после выбранного;
- отображается выбранное состояние, позволяющее редактировать/просматривать семантическую сеть, корневым понятием которой является текущее понятие, соответствующее выбранному состоянию.
- Предусловия:
- Постусловия:
- отображается содержание всех понятий информационного ресурса — сети S или I (т.е. все понятия информационного ресурса становятся активными);
- содержание понятий сторонних информационных ресурсов, на которые сделаны ссылки из данного информационного ресурса, не отображается.
- Предусловия:
- Постусловия:
- скрывается содержание всех понятий информационного ресурса — сети S или I, кроме понятия-источника сети (т.е. все понятия информационного ресурса, кроме понятия-источника становятся не активными).
Все описанные в данном разделе операции над активным понятием выполняются с использованием встроенной в ExIWE функциональности (которая совпадает с функциональностью IWE) — без обращения к агентам платформы.
Для всех видов понятий (включая понятие-источник сети) определена операция:
- Изменение комментария понятия.
- Предусловия:
- Постусловия:
- комментарий понятия изменяется на заданный (возможно пустую строку символов конечной длины).
Остальные операции по изменению значений атрибутов понятия различаются в зависимости от вида последнего.
Для нетерминальных и терминальных понятий, описывающих сорт, и принадлежащих, таким образом, только множеству понятий семантической сети, представляющей метаинформацию, определены следующие операции:
- Изменение имени понятия.
- Предусловия:
- имя понятия v должно представлять собой непустую строку символов конечной длины.
- Постусловия:
- имя понятия v изменяется на заданное (непустую строку символов конечной длины).
- Изменение сорта понятия.
- Предусловия:
- понятие v ∈ сети S ;
- новый сорт является одним из базовых сортов, зафиксированных в Языке ИРУО или структурных сортов, принадлежащих расширяемой библиотеке сортов платформы IACPaaS.
- Постусловия:
- если во множестве объектных информационных ресурсов M = {I1,...,Ik} , ∃Ii|i=1,k, такой что в нём существует отношение relation* , у которого отношение-прототип proto_relation* принадлежит множеству отношений-прототипов { proto_relation1,...,proto_relationn }, входящих в понятие v, сорт которого предполагается изменить, то во множестве объектных информационных ресурсов M = {I1,...,Ik} из каждого Ii|i=1,k:
- удаляется множество понятий {conceptj|j=1,p}, таких что их понятие-прототип есть v;
- при этом у каждого { conceptj } удаляются (но не рекурсивно) все входящие и исходящие из него отношения (но не понятия-концы последних)[4];
- выполняется п. 2;
- иначе сорт понятия v изменяется на заданный.
Для нетерминальных и терминальных понятий, описывающих значение, определена операция:
- Изменение значения понятия.
- Предусловия:
- если понятие v принадлежит множеству понятий семантической сети, представляющей информацию, то его понятием-прототипом V в метаинформации должно быть понятие, описывающее сорт, и спецификатор отношения, входящего в понятие V, должен принадлежать множеству {!,+,[!],[+]};
- новое значение должно иметь тот же сорт, что и предыдущее.
- Постусловия:
- значение понятия v изменяется на заданное;
- если понятие принадлежит множеству понятий семантической сети, представляющей метаинформацию, то при изменении его значения во множестве объектных информационных ресурсов M={I1,...,Ik } в каждом Ii|i=1,k изменяются на заданное значения понятий { conceptj | j=1,p } (данное множество может быть пустым), являющихся соответственно концами отношений { relationj | j=0,p }, для которых понятие v есть понятие-конец их отношения-прототипа proto_relation* (иными словами, изменяются на заданное значения тех понятий из множества понятий M, для которых понятие v является понятием-прототипом).
- Предусловия:
- понятие v не является источником сети или текущим понятием;
- Постусловия:
- удаляется отношение к активному понятию v от понятия прямого предка w;
- если активное понятие v больше не имеет входящих отношений (дуг), то удаляется само v, а также все, исходящие из него отношения. При удалении отношений также рассматриваются понятия, являющиеся их концами, и проверяется, есть ли у них, в свою очередь, еще входящие отношения. В зависимости от результата проверки удаляется либо только отношение, либо отношение и понятие, в которое оно входит, и т.д. Процесс может продолжаться вплоть до терминальных понятий;
- если понятие принадлежит множеству понятий семантической сети, представляющей метаинформацию, то при удалении из неё отношения во множестве объектных информационных ресурсов M={I1,...,Ik } из каждого Ii|i=1,k удаляется множество отношений { relationj | j=0,p } (возможно, пустое), таких что их отношение-прототип proto_relation* совпадает с отношением, входящим в понятие v и выбранным для удаления;
- если понятие wi принадлежит множеству понятий семантической сети, представляющей (объектную) информацию и отношение-прототип proto_relation* удаляемого (вместе с понятием wi) отношения parent_v→ wi имеет спецификатор "непустая последовательность"(∧) или "возможно пустая последовательность"([∧]) (т.е. значение понятия wi есть i), то значения понятий wi+1,...,wn, где n — количество исходящих из понятия parent_v отношений (n>i) уменьшаются на 1.
- Предусловия:
- понятие v ∈ сети v S и не является её источником.
- Постусловия:
- если во множестве объектных информационных ресурсов M = {I1,...,Ik} , ∃Ii|i=1,k, такой что в нём существует отношение relation*, у которого отношение-прототип есть proto_relation*, где proto_relation* — входящее в понятие v отношение, спецификатор которого предполагается изменить, то:
- если текущий спецификатор может быть изменён на заданный (см. Таблица совместимости спецификаторов), то выполняется п. 2;
- если текущий спецификатор не может быть изменён на заданный, то
- во множестве объектных информационных ресурсов M = {I1,...,Ik} из каждого Ii|i=1,k удаляется множество отношений { relationj | j=1,p }, таких что их отношение-прототип совпадает с отношением, входящим в понятие v - proto_relation*
- выполняется п. 2;
- иначе спецификатор входящего в понятие v отношения — proto_relation* изменяется на заданный (принадлежащий множеству допустимых для данного понятия спецификаторов).
Факультативный вариант для каждого спецификатора в таблице опущен ввиду действия двух основных правил:
- любой спецификатор всегда может быть изменён на свой факультативный вариант, равно как и наоборот;
- в остальных случаях нефакультативные и факультативные варианты других спецификаторов неразличимы, поскольку считается, что во множестве M = {I1,...,Ik} существует отношение relation*, у которого отношение-прототип есть proto_relation* (в противном случае изменение спецификатора отношения proto_relation* выполняется без анализа правил таблицы совместимости спецификаторов).
|
= |
! |
+ |
∧ |
~ |
= |
|
⊖ |
⊖ |
! |
⊖ |
|
⊕ |
⊗[5] |
+ |
⊗[6] |
|
⊗[7] |
∧ |
⊕ |
|
~ |
⊖ |
|
Пояснение.
- ⊕ — спецификатор, стоящий в i-ой строке таблицы может быть заменён на спецификатор, стоящий в j-ом столбце таблицы (i ≠ j; ).
- ⊗ — спецификатор, стоящий в i-ой строке таблицы может быть заменён на спецификатор, стоящий в j-ом столбце таблицы (i ≠ j; ), только при соблюдении дополнительных условий, сформулированных в соответствующем примечании.
- ⊖ — спецификатор, стоящий в i-ой строке таблицы не может быть заменён на спецификатор, стоящий в j-ом столбце таблицы (i ≠ j; ).
- Предусловия:
- понятие-начало beg не является стоком сети;
- порядковый номер исходящего из понятия beg отношения relation* — i ∈ [1..N], где N — количество исходящих из понятия beg отношений (дуг).
- Постусловия:
- i изменяется (увеличивается или уменьшается) на 1, при этом:
- если i=1, то допустимо только его инкрементирование (i:=i+1);
- если i=N, то допустимо только его декрементирование (i:=i-1);
- если отношение-прототип proto_relation* отношений relation* и relation**, порядковые номера которых изменяются на 1, имеет спецификатор "непустая последовательность"(∧) или "возможно пустая последовательность"([∧]), то соответствующим образом изменяются значения понятий end* и end**, являющихся концами отношений relation* и relation** соответственно.
- Предусловия:
- понятие v не является источником или стоком сети.
- Постусловия:
- в списке состояний создается новое состояние, в котором выбранное понятие v является текущим для редактируемой/просматриваемой семантической сети (она является подсетью семантической сети, представляющей весь информационный ресурс). Множество активных понятий при этом включает в себя только одно это понятие — v.
Все описанные в данном разделе операции по генерации содержания активного понятия выполняются с использованием встроенной в ExIWE функциональности (которая совпадает с функциональностью IWE) — без обращения к агентам платформы.
- Предусловия:
- имя понятия не является пустой строкой;
- сорт является одним из базовых сортов, зафиксированных в Языке ИРУО или структурных сортов, принадлежащих расширяемой библиотеке сортов платформы IACPaaS;
- спецификатор отношения sp ∈{"в точности один"(!), "ноль или один"([!]), "непустая цепь"(+), "возможно пустая цепь"([+]), "непустая последовательность" (∧), "возможно пустая последовательность"([∧])};
- должны быть соблюдены правила, описанные в разделе Ограничения на использование спецификаторов.
- Постусловия:
- создается новое нетерминальное/терминальное понятие, описывающее сорт, с заданным именем, сортом и комментарием (возможно пустым);
- создается отношение от активного понятия к новому с заданным спецификатором;
- аналогично Постусловию 3 раздела Активация понятия отображается множество прямых потомков активного понятия, к которому добавлено вновь созданное понятие;
- аналогично Постусловию 3 раздела Активация понятия отображается множество доступных порождений содержания активного понятия; при этом остается возможность порождения только на основе того конструктивного элемента Языка ИРУО, который был использован для порождения данного понятия (т.е., если использовался элемент описать элемент цепи, то исключается возможность использовать для порождения элемент описать вариант альтернативы и наоборот).
- Предусловия:
- тип значения является одним из базовых сортов, зафиксированных в Языке ИРУО или структурных сортов, принадлежащих расширяемой библиотеке сортов платформы IACPaaS;
- значение понятия не является пустой строкой символов или пустым массивом байт;
- спецификатор отношения sp ∈{"копия"(=), "[копия]"([=]), "прокси"(~)} (sp ∈{"копия"(=), "[копия]"([=])} — при создании терминального понятия);
- должны быть соблюдены правила, описанные в разделе Ограничения на использование спецификаторов.
- Постусловия:
- создается новое нетерминальное/терминальное понятие, описывающее значение, со значением заданного типа и комментарием (возможно пустым);
- аналогично Постусловиям 2 — 4 раздела Создание нетерминального или терминального понятия, описывающего сорт.
- Предусловия:
- спецификатор отношения sp ∈
- {"в точности один"(!), "[в точности один]"([!]), "непустая цепь"(+), "возможно пустая цепь"([+]), "непустая последовательность"(∧), "возможно пустая последовательность"([∧])} — при создании ссылки на нетерминальное или терминальное понятие, описывающее сорт;
- {"копия"(=), "[копия]"([=]), "прокси"(~)} — при создании ссылки на нетерминальное понятие, описывающее значение;
- {"копия"(=), "[копия]"([=])} — при создании ссылки на терминальное понятие, описывающее значение;
- должны быть соблюдены правила, описанные в разделе Ограничения на использование спецификаторов.
- Постусловия:
- создается отношение от активного понятия к понятию, выбранному для ссылки, с заданным спецификатором;
- аналогично Постусловию 3 раздела Активация понятия отображается множество прямых потомков активного понятия, к которому добавлено понятие, на которое сделана ссылка;
- аналогично Постусловию 4 раздела Создание нетерминального или терминального понятия, описывающего сорт.
Примечание. Генерация содержания активного понятия v с использованием примитива описать вариант альтернативы отличается от использования примитива описать элемент цепи тем, что в первом случае (тип набора исходящих дуг = альтернатива) прямые потомки понятия v — w1,...,wn представляют собой множество альтернативных понятий, т.е. при генерации объектного инфоресурса Iij и использовании для порождения одного (любого) из этих понятий-потомков и отношения к нему (v → wi , i=1,n ) в качестве прототипов для создания понятий и/или отношений в объектном инфоресурсе Iij, остальные n-1 понятий и отношений исключаются из множества доступных для порождения по ним в Iij (см. также п. 3 раздела Общие правила порождения содержания понятий).
- В соответствии с правилом порождения 1.
- Предусловия:
- совпадает с антецедентом правила порождения 1.
- значение понятия не является пустой строкой символов или пустым массивом байт и принадлежит сорту, определяемому понятием-прототипом proto_end*.
- Постусловия:
- создается новое нетерминальное/терминальное понятие, описывающее значение, с заданным значением и комментарием (возможно пустым);
- создается отношение от активного понятия к новому;
- аналогично Постусловию 3 раздела Активация понятия отображается множество прямых потомков активного понятия, к которому добавлено вновь созданное понятие;
- аналогично Постусловию 3 раздела Активация понятия отображается множество доступных порождений содержания активного понятия; при этом из этого множества исключается использованное для порождения отношение-прототип proto_relation*.
- В соответствии с правилом порождения 2.
- Предусловия:
- совпадает с антецедентом правила порождения 2;
- значение понятия не является пустой строкой символов или пустым массивом байт и принадлежит сорту, определяемому понятием-прототипом proto_end*.
- Постусловия:
- аналогично Постусловиям 1 — 4 для правила порождения 1, за исключением того, что из множества доступных порождений не исключается использованное для порождения отношение-прототип proto_relation*.
- В соответствии с правилом порождения 3.
- Предусловия:
- Постусловия:
- создается новое нетерминальное/терминальное понятие, описывающее значение типа Целое, с автоматически сформированным значением, представляющим собой натуральное число (получаемое по правилу, описанному в правиле порождения 3), и заданным комментарием (возможно пустым);
- аналогично Постусловиям 2 — 4 для правила порождения 2.
- В соответствии с правилом порождения 4.
- Предусловия:
- Постусловия:
- создается новое нетерминальное/терминальное понятие, описывающее значение, с таким же значением, как у его понятия-прототипа proto_end* в метаинформации, и заданным комментарием (возможно пустым);
- аналогично Постусловиям 2 — 4 для правила порождения 1 раздела Порождение нетерминального или терминального понятия, описывающего сорт.
- Предусловия:
- отношение-прототип proto_relation* в метаинформации Si, на основе которого должно быть порождено отношение-ссылка в объектной информации Iij:
- либо является ссылкой, т.е. значение признака ссылка у proto_relation* есть истина,
- либо спецификатор proto_relation* sp ∉ {"копия"(=), "возможное отсутствие"([=]) } ;
- конечное понятие отношения-прототипа proto_relation* в метаинформации Si, на основе которого должно быть порождено отношение-ссылка в объектной информации Iij — proto_end*:
- либо совпадает понятием-прототипом linked_proto_concept* понятия, на которое делается ссылка — linked_concept* — если устанавливается типизированная ссылка,
- либо совпадает с понятием-источником Языка ИРУО — если устанавливается нетипизированная ссылка.
- Постусловия:
- создается отношение от активного понятия к понятию, выбранному для ссылки;
- аналогично Постусловию 3 раздела Активация понятия отображается множество прямых потомков активного понятия, к которому добавлено понятие, на которое сделана ссылка;
- аналогично Постусловию 3 раздела Активация понятия отображается множество доступных порождений содержания активного понятия; при этом из этого множества исключается использованное для порождения отношение-прототип proto_relation*, если его спецификатор sp ∉ {"непустая цепь"(+), "возможно пустая цепь"([+]), "непустая последовательность"(∧), "возможно пустая последовательность"([∧]) }.
- Предусловия:
- отношение-прототип proto_relation* в метаинформации Si, на основе которого в объектной информации Iij должен быть сделан переход к формированию произвольного фрагмента метаинформации, является порождающей ссылкой и его спецификатор sp ∉ { "копия"(=), "возможное отсутствие"([=]), "непустая последовательность"(∧), "возможно пустая последовательность"([∧]), "[прокси]"([~]) } ;
- конечное понятие отношения-прототипа proto_relation* в метаинформации Si, на основе которого в объектной информации Iij должен быть сделан переход к формированию произвольного фрагмента метаинформации — proto_end*, совпадает с понятием-источником Языка ИРУО (см. также Примечание к п. 4 в разделе Общие правила порождения содержания понятий и п. 2 в разделе "специальные ссылки"[8].)
- Постусловия:
- создается новый информационный ресурс S'i, представляющий метаинформацию;
- создается отношение от активного понятия информационного ресурса Iij к понятию-источнику V'0 информационного ресурса S'i (в рамках формирования информационного ресурса Iij данная вершина может рассматриваться как вспомогательная вершина для перехода от объектной информации к метаинформации);
- в списке состояний создается новое состояние, в котором понятие V'0 становится текущим для редактируемой/просматриваемой семантической сети S'i. Множество активных понятий при этом включает в себя только понятие V'0;
- аналогично Постусловию 3 раздела Активация понятия отображается множество доступных порождений содержания понятия V'0; — с использованием конструктивных элементов Языка ИРУО (описать элемент цепи и описать вариант альтернативы).
В данном разделе приведены примеры агентов, обеспечивающих контекстно-зависимое редактирование информационных ресурсов, представляющих объектную информацию.
Пусть
- S* — сеть, описывающая структуру базы знаний о нормальных значениях;
- I* — сеть, описывающая конкретную базу знаний — База знаний*;
- S** — сеть, описывающая структуру базы наблюдений;
- I** — сеть, описывающая конкретную базу наблюдений — База наблюдений*;
- T* — таблица соответствий в паре P* = < S* , T * > .
(открыть в полном размере)
(открыть в полном размере)
Рассматривается следующая задача:
С помощью редактора ExIWE порождается информационный ресурс I*, метаинформацией которого является информационный ресурс S*, с использованием в качестве контекста информационного ресурса I**, метаинформацией которого является информационный ресурс S**.
При этом требуется, чтобы:
- в I* множество потомков вершины "База знаний*", прототипом которой в метаинформации S* является вершина "База знаний", было результатом зависимого клонирования множества понятий — потомков вершины "База наблюдений*" в I**, прототипом которой в метаинформации S** является вершина "База наблюдений";
- в I* для каждой вершины со значением p', прототипом которой в метаинформации S* является вершина "признак", множество потомков было результатом зависимого клонирования элементов непустого подмножества множества понятий — потомков вершины в I** со значением p', прототипом которой в метаинформации S** является вершина "признак".
Для решения этой задачи в таблице соответствий T* ("Таблица соответствий для БЗ") используются обращения к агентам "Присваивание" и "Выбор" (см. рис. выше).
Данный агент на этапе автоматического формирования фрагмента сети Ij клонирует в него содержание другого нетерминального понятия — того же (Ij) или другого ( Ip|j ≠ p ) информационного ресурса, в том числе и с другой метаинформацией (I'i).
Сообщение к агенту "Присваивание" содержит следующую информацию[9]:
- ссылка на понятие v редактируемого информационного ресурса I*, множество потомков (содержание) которого будет получено в результате зависимого клонирования множества понятий;
- ссылка на информационный ресурс I** (контекст), множество нетерминальных понятий { w1,...,wk } которого будет клонироваться;
- ссылка на прототипное понятие W для всех понятий из множества { w1,...,wk } в метаинформации S** информационного ресурса I**.
Условие применимости этого агента:
У вершины W в информационном ресурсе S** существует единственное входящее отношение, началом которого является понятие W0, а в информационном ресурсе I** существует единственная вершина w0, для которой вершиной-прототипом в метаинформации S** является вершина W0.
При обработке сообщения выполняются следующие действия:
- клонируется множество всех понятий { w1,...,wk } в информационном ресурсе I**, соответствующих прототипному понятию W в его метаинформации S**;
- множество понятий, полученное в результате зависимого клонирования множества понятий, становится множеством потомков (содержанием) понятия v в информационном ресурсе I*.
Данный агент предоставляет возможность при формировании сети Ij в интерактивном режиме выбрать подмножество из множества понятий, являющегося содержанием другого понятия — из того же (Ij) или другого (Ii| j ≠ i) информационного ресурса, в том числе и с другой метаинформацией (I'i). Элементы выбранного подмножества понятий клонируются (зависимо), и множество этих зависимых клонов становится содержанием активного нетерминального понятия.
Сообщение к агенту "Выбор" содержит следующую информацию:
- ссылка на понятие v редактируемого информационного ресурса I*, множество потомков (содержание) которого будет получено в результате зависимого клонирования элементов множества понятий или зависимого клонирования понятия результата выбора (в зависимости от того, что выбирать — "подмножество", "элемент");
- что выбирать ∈ { "подмножество", "элемент" };
- ссылка на прототипное понятие V0 из метаинформации S* информационного ресурса I*, по которому будет определяться значение p';
- ссылка на информационный ресурс I** (контекст), из множества нетерминальных понятий { w1,...,wk } которого будет производиться выбор;
- ссылка на прототипное понятие W0 из метаинформации S** информационного ресурса I**, от которого начнется поиск множества выбора;
- ссылка на прототипное понятие W1 из метаинформации S** информационного ресурса I**, до которого будет проводиться поиск множества выбора.
Условие применимости этого агента:
Для вершины v в информационном ресурсе I* существует единственная вершина (совпадающая с v или являющаяся её предком) — v0, для которой вершиной-прототипом в метаинформации S* является V0.
При обработке сообщения выполняются следующие действия:
- выполняется поиск множества выбора { w1,...,wk } :
- определяется вершина v0;
- по значению вершины v0 — p' в I** в множестве вершин с понятием-прототипом W0 выбирается вершина w0, имеющая значение p';
- рассматривается множество всех потомков вершины w0 (необязательно прямых) — { w1,...,wk }, у которых вершина-прототип есть W1;
- если вершина v не имеет потомков (т.е. выполняется порождение её содержания), то:
- агент формирует интерфейс, в котором отображается информационный ресурс I** с выделенным множеством вершин { w1,...,wk }, позволяющий выбрать из него элемент (если что выбирать = "элемент") или подмножество (если что выбирать = "подмножество");
- клон(-ы) (полученный(-е) в результате зависимого клонирования) выбранного элемента или элементов подмножества становится(-ятся) множеством прямых потомков (содержанием) вершины v;
- если вершина v имеет потомков (т.е. выполняется модификация её содержания), то:
- агент формирует интерфейс, в котором отображается информационный ресурс I** с выделенным множеством вершин { w1,...,wk } и дополнительным выделением вершин, являющихся результатом последнего выбора, позволяющий изменить этот выбор (элемента или подмножества);
- клон(-ы) (полученный(-е) в результате зависимого клонирования) элемента(-ов) результата измененного выбора становится(-ятся) множеством прямых потомков (содержанием) вершины v.
В данном разделе приведён пример агента, поддерживающего ввод и отображение фрагментов объектных информационных ресурсов { Mi = { I1,...,Ik } |i=1,∞ } в виде текстов — агента "АИСТ". Данный агент решает две задачи:
Первая задача может быть сформулирована следующим образом:
Дано:
- семантическая сеть Si, описывающая некоторую метаинформацию;
- грамматика Gi (объектная семантическая сеть), описывающая связь Si с конкретным синтаксисом языка текстового представления объектной информации;
- текстовое представления объектной информации (text).
Найти:
- фрагмент сети Iij, соответствующий text (т.е. представляющий ту же информацию, что и text, но в структурном виде).
Вторая задача может быть сформулирована следующим образом:
Дано:
- семантическая сеть Si, описывающая некоторую метаинформацию;
- грамматика Gi (объектная семантическая сеть), описывающая связь Si с конкретным синтаксисом языка текстового представления объектной информации;
- фрагмент сети Iij.
Найти:
- текстовое представления объектной информации (text), соответствующую фрагменту сети Iij.
Структура (метаинформация) грамматики — SG имеет следующий вид.
открыть в полном размере
Сеть Si, описывающая структуру языка пропозициональной логики, имеет следующий вид:
открыть в полном размере
Сеть Gi, описывающая грамматику языка представления множества пропозициональных формул, имеет следующий вид:
открыть в полном размере
Правило грамматики, правая часть которого представляет собой альтернативу синтаксических конструкций, являющихся, в данном случае, нетерминальными понятиями сети Si, выглядит следующим образом:
открыть в полном размере
Правило грамматики, правая часть которого представляет собой конкатенацию синтаксических конструкций — двух нетерминальных понятий сети Si и элемента конкретного синтаксиса, выглядит следующим образом:
открыть в полном размере
Правило грамматики, правая часть которого представляет собой перечисление (итерацию, повторение) синтаксической конструкции — нетерминального понятия сети Si через символ-разделитель, являющийся элементом конкретного синтаксиса, который, вместе с тем, не должен быть завершающим (т.е. он не должен стоять после последней повторяющейся конструкции):
открыть в полном размере
Правило грамматики, правая часть которого представляет собой конкатенацию синтаксических конструкций — нетерминального понятия сети Si и двух элементов конкретного синтаксиса, выглядит следующим образом:
открыть в полном размере
Фрагменты сети Gi, описывающие остальные правила грамматики языка представления множества пропозициональных формул, даны здесь: 2, 3, 4, 5, 7, 8, 10, 11.
Таблица соответствий Ti в паре Pi = < Si,Ti > имеет следующий вид:
открыть в полном размере
Сообщение к агенту "АИСТ" содержит следующую информацию:
- ссылка на понятие v редактируемого информационного ресурса Iij, потомком которой должна быть корневая вершина подсети, сформированной агентом в результате анализа текста или на основе которой должен синтезироваться текст;
- ссылка на информационный ресурс Gi, описывающий грамматику (связь Si с конкретным синтаксисом) языка текстового представления объектной информации;
- задание ∈ {"анализ", "синтез" }.
При обработке сообщения выполняются следующие действия:
- если выполняется порождение или модификация содержания понятия v):
- если вершина v не имеет потомков (т.е. выполняется порождение её содержания), то:
- агент формирует интерфейс, в котором отображает пустое поле для ввода текста;
- после подтверждения пользователем окончания ввода текста, агент:
- выполняет синтаксический разбор текста;
- если разбор выполнен успешно, то формирует подсеть Iij (обеспечивая её соответствие метаинформации), корневую вершину которой делает потомком вершины v;
- если в процессе разбора была обнаружена ошибка, то информирует о ней пользователя и отображает поле для ввода текста, содержащее введённый пользователем текст;
- если вершина v имеет потомков (т.е. выполняется модификация её содержания), то:
- агент синтезирует текстовое представление подсети сети Iij, корневой вершиной которой является вершина v;
- агент формирует интерфейс, в котором отображает доступное для редактирования поле для ввода текста, в которое помещён синтезированный текст;
- после подтверждения пользователем окончания ввода/редактирования текста, агент:
- выполняет синтаксический разбор текста;
- если разбор выполнен успешно, то формирует подсеть Iij (обеспечивая её соответствие метаинформации), корневую вершину которой делает потомком вершины v (предварительно удалив предыдущее содержание понятия v);
- если в процессе разбора была обнаружена ошибка, то информирует о ней пользователя и отображает поле для ввода текста, содержащее введённый пользователем текст;
- при необходимости отобразить содержание понятия v в виде текста в отдельном по отношению к редактору ExIWE окне:
- агент синтезирует текстовое представление подсети сети Iij, корневой вершиной которой является вершина v;
- агент формирует интерфейс, в котором отображает не доступное для редактирования поле для ввода текста, в которое помещён синтезированный текст.
В данном разделе приведены примеры агентов, представляющих структурные сорта расширяемой библиотеки сортов платформы — "Дата" и "Прямоугольная целочисленная таблица" с именованными строками и столбцами.
Сообщение к агенту "Дата" содержит следующую информацию:
- задание ∈ { "создать дату", "изменить дату", "отобразить дату", "получить дату", "получить число", "получить месяц", "получить год" };
- ссылка на понятие v редактируемого информационного ресурса I*, описывающего значение сорта "Дата" (если задание ≠ "создать дату").
При этом:
- задание = "создать дату", если выполняется создание/порождение понятия, описывающего значение сорта "Дата";
- задание = "изменить дату", если выполняется изменение значения соответствующего атрибута понятия, описывающего значение сорта "Дата";
- задание = "отобразить дату", если потребовалось отобразить значение даты в отдельном (по отношению к редактору ExIWE) окне.
При обработке сообщения с задание ∈ { "создать дату", "изменить дату", "отобразить дату" } агент "Дата" должен сформировать интерфейс, отображающий поле(-я) для ввода даты:
- если задание = "создать дату", то данные поля являются пустыми;
- если задание ∈ { "изменить дату", "отобразить дату" } , то в полях ввода должны отображаться текущие значения, при этом:
- если задание = "изменить дату", то поля, отображающие текущие значения, должны быть доступны для редактирования;
- если задание = "отобразить дату", то поля, отображающие текущие значения, не должны быть доступны для редактирования.
Также агент должен содержать блоки продукций или продукции для получения даты, а также по отдельности — числа, месяца и года.
Сообщение к агенту "Прямоугольная целочисленная таблица" содержит следующую информацию:
- задание ∈ { "создать таблицу", "изменить таблицу", "отобразить таблицу", "получить строку", "получить столбец", "получить элемент" } ;
- ссылка на понятие v редактируемого информационного ресурса I*, описывающего значение сорта "Прямоугольная целочисленная таблица" (если задание ≠ "создать таблицу");
- название или номер — строки (если задание = "получить строку") или столбца (если задание = "получить столбец") (при этом название используется для именованных строк и столбцов, а номер — для безымянных);
- координаты элемента (если задание = "получить элемент") — пара <название, название> (для именованных строк и столбцов) или <номер, номер> (для безымянных строк и столбцов).
При этом:
- задание = "создать таблицу", если выполняется создание/порождение понятия, описывающего значение сорта "Прямоугольная целочисленная таблица";
- задание = "изменить таблицу", если выполняется изменение значения соответствующего атрибута понятия, описывающего значение сорта "Прямоугольная целочисленная таблица";
- задание = "отобразить таблицу", если потребовалось отобразить таблицу в отдельном (по отношению к редактору ExIWE) окне.
Обработка сообщения:
- Если задание = "создать таблицу", то агент формирует интерфейс для конструирования таблицы, в котором пользователю предлагается выполнить следующие действия:
- задать количество строк (отметив опцию, являются ли строки безымянными или нет) и количество столбцов (отметив опцию, являются ли столбцы безымянными или нет) в таблице, после чего перейти к шагу 2;
- задать названия для строк и/или столбцов таблицы, в зависимости от значений опций, отмеченных на шаге 1 (если на шаге 1 было указано, что строки и столбцы таблицы должны быть безымянными, то данный шаг пропускается);
- задать значения элементов таблицы.
- Если задание = "изменить таблицу", то агент должен сформировать интерфейс, отображающий таблицу, значения элементов которой доступны для изменения, а также позволяющий модифицировать её следующим образом:
- добавить строку (с заданным названием, если строки таблицы не являются безымянными);
- изменить название строки (если строки таблицы не являются безымянными);
- удалить строку;
- добавить столбец (с заданным названием, если столбцы таблицы не являются безымянными);
- изменить название столбца (если столбцы таблицы не являются безымянными);
- удалить столбец;
- изменять порядок следования как строк, так и столбцов.
- Если задание = "отобразить таблицу", то агент должен сформировать интерфейс, отображающий таблицу без предоставления возможностей изменять значения элементов таблицы, названия её строк и столбцов, добавлять новые строки и столбцы, удалять строки и столбцы, а также менять порядок их расположения.
Примечание. При отображении таблицы в интерфейсе могут быть реализованы возможности, облегчающие просмотр и навигацию по таблице. Например, можно указывать количество одновременно отображаемых строк и т.п.
Также агент должен содержать блоки продукций или продукции для получения строки, столбца и конкретного элемента таблицы на основе полученных в сообщении названия (номера) или координат элемента.
- ↑ Редакторы IWE и ExIWE представляют собой два различных решателя. Если для редактирования информационного ресурса достаточно функциональности IWE, то можно использовать его. Если же в процессе редактирования необходима функциональность, не поддерживаемая редактором IWE, то её можно реализовать в отдельных агентах, а затем использовать редактор ExIWE с возможностью обращения к реализованным агентам платформы
- ↑ При этом открывается вторая панель, в которой отображается интерфейс агента, а в первой панели фрагмент редактируемого информационного ресурса становится недоступным для редактирования (другими словами, ExIWE принудительно переводится в режим просмотра). По окончании работы пользователя с интерфейсом агента вторая панель закрывается, а фрагмент редактируемого информационного ресурса снова становится доступным для редактирования (ExIWE снова переводится в режим редактирования).
- ↑ Такие понятия могут появляться в следующих случаях:
- в момент начала редактирования сети I, когда она представлена единственной вершиной — понятием-источником v0;
- при порождении в сети I нового нетерминального понятия;
- при удалении в сети I отношения вместе с понятием, в которое оно входит.
- Это приводит к появлению несвязных подсетей, к корневым понятиям которых затем в режиме ссылки можно будет устанавливать отношения от вновь порождаемых (на основе v ) во множестве объектных информационных ресурсов M = { I1,...,Ik } понятий {conceptj} .
- Если понятие-конец данного отношения vимеет значение базового сорта Целое и значения всех понятий из множества понятий M = { I1,...,Ik }, для которых v является понятием-прототипом, равны 1.
- Если во множестве объектных информационных ресурсов M = { I1,...,Ik }, !∃Ii | i=1,k, такой что в нём существует больше одного отношения, у которых отношение-прототип есть proto_relation*.
- Если понятие-конец данного отношения v имеет значение базового сорта Целое и ∀Ii ∈ M={I1,...,Ik }значения всех понятий, для которых v является понятием-прототипом, образуют монотонно возрастающую последовательность натуральных чисел.
- ↑ Для читателей, знакомых с текстовым представлением информационных ресурсов (ТПИР).
- ↑ Серым цветом указаны параметры, присущие сообщениям, посылаемым ExIWE всем агентам, формирующим или изменяющим редактируемый информационный ресурс.