Г Р А Ф И Т — б а з и с

Инфологическое обеспечение | Когнитивное | Графит-букварь

Стр. 1 2 3 4 5 6 7 8 9 10 11 12


Содержание

Графит-расширение : нешампур-виоп Область. Организация маршрутов шампур-схем

Для чего это нужно?

Что это значит?

Как это пишется?

Графит-расширение : нешампур-виоп Область. Организация маршрутов шампур-схем

Для чего это нужно?

Как можно понять из введения в шампур-метод, мы обозначаем потенциальную возможность ввода вершины (макроиконы) в шампур точкой ввода. А как указать конкретное содержание (оператор), планируемое для ввода в некоторое место схемы? Мы рассмотрели две возможности этого:

Однако в общем случае в ходе сочинения возможна ещё одна ситуация: мы пока не знаем, ЧТО именно будет в данной точке, но уже знаем, что ИМЕННО В ДАННОЙ ТОЧКЕ будет некоторое содержание (подсхема, которую ещё надо придумать/оформить; более того, мы можем сформировать более одного варианта содержания, из которых будем выбирать нужный). Как обозначить такую ситуацию? Можно предложить обычный для системного проектирования метод декомпозиции области схемы; вначале эта область будет для нас «чёрным ящиком», который затем наполняется нужным содержанием.

Итак, мы начали описание лексики техноязыка с элементов визуализации логически определённых структурных отношений («один к одному» и «один ко многим»), а завершаем элементом визуализации структурного отношения «многие ко многим».

Кроме того, рассмотрим возможности организации маршрутов, отличные от выбранных для классического техноязыка.

В начало страницы

Что это значит?

Для декомпозиции введём оператор Область, имеющий смысл «временной вставки» в один или ряд смежных шампуров дракон-схемы.

В неформальном смысле область фиксирует на схеме фрагмент, подлежащий углублённой проработке – декомпозиции и/или вариантному определению. Формально охваченные областями фрагменты графит-схем рассматриваются как места подстановки содержания, возможно, определяемого в двух и более вариантах. Один (в т.ч. единственный определённый) вариант рассматривается как основной; по отношению к той или иной графит-схеме он м.б.:

Остальные варианты (если они есть для данной входящей области) всегда вынесены.

Если вынесен основной вариант, то область, входящая в схему, будет пустой, тем самым скрывая (свёртывая) содержание ограниченного ею фрагмента.

Для удобства и логичности принимается следующее ограничение: конкретная непустая область (экземпляр вершины) может входить только в одну схему (т.е. нельзя определить на одной схеме область и рассматривать её как источник содержания для другой включённой в ту же или другую схему области). На вынесенные области это ограничение не распространяется, т.е. такая область может входить в любые схемы любое (конечное) число раз.

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

Замену частей имени можно представить как замену всего имени; однако м.б. правильнее, если у входящих областей определены правила замены знаков текста (допустим, как регулярные выражения) и, возможно, условия применения этих правил.

В процессе редактирования на включённой в схему области м.б. созданы новые входы/выходы (помимо тех, что образовались как результат создания области).

Временно вход/выход м.б. «туннелирован», т.е. присоединён к терминальной вершине, не являющейся конечной по правилам языка схем.

Тем самым реализуется принцип «сборочно-конкретизирующей» организации графит-моделей.

Очевидно, для использования областей нужно определить:

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

Область с туннелями считается неразрешённой и рассматривается как черновая (неисполнимая) подсхема.

Также очевидно другое правило: язык схем вынесенной области должен либо совпадать с языком схемы, выбранной для вхождения, либо быть из того же семейства языков.

Составы семейств задаются в РДП-редакторе; языки семейства отражают один и тот же вид частного отчуждаемого знания.

Подстановка области м.б. безусловной либо условной. В первом случае сочинитель устанавливает связи каждой включённой области с очередной вынесенной областью из числа сопоставимых; также он определяет для ряда вынесенных областей, какая из них считается основной для включения.

Во втором случае сочинитель задаёт некое условие, по которому вынесенная область связана со включённой, а также условие, при котором одна область из ряда сопоставленных одному вхождению считается основной. Условие формулируется от величин документа (среди них м.б. специально вводимые сочинителем для управления подстановкой) и/или параметров окружения (доступных в РДП-редакторе).

Очевидно, что условие м.б. истинным только для одной области из ряда (одного отношения). РДП-редактор должен проверять это и указывать сочинителю на нарушение.

Принимается следующее правило: связывание вынесенной области осуществляется в пределах одного документа всегда через индексы областей. При этом условие состоит в совпадении т.н. номера группы подстановки №ГП в индексах у включённой и вынесенной областей. Номера назначаются по вхождениям в документ; тем самым связь (отношение включения) устанавливается редактированием номеров в индексах. Индексы даны в углу областей подчёркнутыми.

Понятно, что вынесенная область должна находиться в том документе, где используется (допустим, быть вставлена из другого либо быть создана здесь же).

Когда вынесенных областей по одному номеру две и более, в индекс входит указатель варианта №В (здесь – буква, приписанная после №ГП через дробь).

Когда вынесенная область должна входить в два и более мест (на одной схеме или на разных), в индекс входящих областей также входит указатель места вхождения № Вх (здесь – цифра, приписанная перед №ГП через дефис). Номер при этом остаётся тот же для каждого места. Указатель для вынесенной области считается нулевым и может не писаться.

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

Понятно, что при таком подходе вынесенная область может иметь ряд индексов. Номер ГП в каждом из них определяет связь с одной или более включённых областей на схемах документа; ясно, что связи по разным номерам не должны указывать на одни и те же включённые области. Иначе имеем неопределённость отношений («многое ко многому»).

Нужно иметь в виду, что каждая непустая входящая область является вариантом из ряда, который продолжается вынесенной областью/областями, у которых номер области в индексе (одном из индексов) совпадает. Весь ряд будет сопоставлен каждой непустой входящей области, и выбор варианта из ряда как основного будет распространяться на все вхождения (в них одинаково заменится содержание). Это не всегда будет удобно сочинителю; поэтому и рекомендуется определять входящие области как пустые (операторы свёртки).

Для каждого индекса отдельно определяется, является ли данная вынесенная область основной среди других областей по этому вхождению (одновременно для всех включённых областей).

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

Условная подстановка при таком подходе определяет только выбор по каждому отношению одного варианта из ряда как основного и используется следующим образом:

В любом случае получается основной вариант как собранная схема (если входящие области определены как непустые).

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

В графит-методе область логически считается схемой (независимо от того, что на практике обычно её содержание составляет фрагмент схемы или даже ряд несвязанных фрагментов). Поэтому кроме языка она имеет и другие атрибуты схем — название и статус сочинения.

Как создать новый вход или выход области? Естественно определить присоединение внеобластных вертикалей дракон-схемы к границе области сверху (как случай пересадки лианы), при этом конец вертикали мигрирует внутрь области как звено с туннелем на конце. Аналогично можно определить присоединение внутриобластных вертикалей к границе области снизу (также как случай пересадки лианы); при этом конец вертикали мигрирует уже наружу области как звено с туннелем на конце.

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

Можно присоединять внеобластную вертикаль снизу, а внутриобластную – сверху, но это требует определить для дракон-схем преобразования топологии, отличные от пересадки лиан. Фактически это будут пересадки «снизу» (с отрывом от схемы начала лианы).

Та же ситуация возникает, если допустить трансграничные пересадки петель циклов; петля, начинающаяся изнутри области, присоединяется к верхней её границе, а заканчивающаяся внутри области- к нижней.

Вершина Область – формат и пример использования

Операцию введения вершины Область для представления охватываемого фрагмента можно определить в разных видах:

В диспозиции один из вариантов принимается как основной; удобно, чтобы его содержание отображалось в составе основной схемы (с показом границ области). Остальные варианты выносятся как внесхемные объекты на ту же и/или другие диосцены.

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

Для различения видов удобно принять как различное строение индекса области при диспозитивном и иерархическом введении, так и различное форматирование вершины.

Очевидно, можно совмещать оба принципа; на каждом уровне иерархии для одной области вводить свой ряд вариантов (или для каждого варианта области вышележащего уровня – ряд вариантов следующего уровня).

Очевидную операцию рекомпозиции – устранения областей с воссоединением их содержимого с охватывающей схемой – естественно определить в двух вариантах:

Вообще говоря, следует определить, что делать с неосновными вариантами областей (забывать или сохранять до явного указания сочинителя).

Вернёмся к замене фрагментов текста вершин. По сути, при её допущении вариантность составляет базис по двум координатам: структуры содержания области (возможных значений столько, сколько вариантов области в одной ГП) и состава текстов структурных элементов (каждый элемент области-варианта может иметь один или более варьируемых фрагментов, для каждого из которых также возможны два и более значения, из которых выбирается одно независимо от подстановки областей).

Можно определять вхождения текста посредством РБНФ, но это будет информатически неформально; РБНФ-продукции не предусматривают задания условия подстановки (как, кстати, и вершины-разветвители синтдиаграмм).

Введём атрибут управления подстановкой текста внутри области (начинается с ключевого слова 'SUBSTEXT'). Разумеется он имеет смысл для входящей области; для вынесенных нужно определить поля - места в тексте, соответствующие левым частям правил подстановки (аргументов из правых частей правил). Каждое из этих мест имеет уникальный идентификатор — имя поля, — выделенный цветом (здесь — оранжевым).

Одна подстановка охватывает отдельный набор мест и может управляться условиями (если условий нет, то подстановка безусловная по совпадению имён полей).

В некотором смысле граф-структуру, составляющую содержание области, можно трактовать как набор текстов из знаков-вершин (напр., в порядке следования по маршрутам) и тогда задать правила подстановки вершин как знаков. Однако эту задачу мы уже решили более эргономично, введя вынесенные области-варианты, где на графах «всё уже подставлено».

Аналогично можно показывать области и с совершёнными подстановками текстов; однако при широком базисе вариантов это неудобно. Разумно в редакторе, поддерживающем области, иметь возможность просмотра результата конкретной подстановки текстов в область, в т.ч. для вынесенной - без показа вхождения её в схему (прежде всего для проверки соответствия замыслу сочинителя).

В совокупности процесс подстановки подсхем и текстов в их вершины называется графит-сборкой.

Можно видеть, что для РБНФ-продукции не определяются условия применения; когда по ИЛИ-черте выбрать правый операнд, а когда левый, неясно без дополнительных указаний (которые РБНФ-языком не предусмотрены). Тогда как SUBSTEXT-правила могут применяться условно, что и показано в примере.

По сути, это аналогично информатизации синтдиаграмм, предложенной в п/п 5.2.3.1 Приложения 2. Более того, сами SUBSTEXT-правила м.б. визуализированы как инфор-синт-диаграммы; имеет смысл рассматривать это для конкретной реализации.

Для реорганизации маршрутов шампур-метод нам предоставляет одну возможность — сделать вертикали схем горизонталями (т.к. иные направления линий не разрешены). Тем самым в шампур-схеме маршруты м.б. направлены по горизонтали; это требует и переориентации входов/выходов у других вершин относительно контура (либо самих вершин).

По аналогии с БП-соединителями можно допустить горизонтальное направление и для обычных БП; для линий, соединяющих вершины Заголовок и Конец с остальной частью схемы, можно ввести изломы. Определённые вопросы здесь возникают в связи с нелинейными вершинами и подсхемами, которые они образуют; также нужно выбрать целесообразные направление «по шампуру» и порядок вертикалей схем в новой ориентации.

Возможность БП по горизонтали наводит нас на мысль о переориентации схемы-силуэта. В самом деле, если ветки расположить горизонтально сверху вниз и выбрать направление по шампуру слева направо, то получим... текст из букв-вершин; будем называть такой тип схем синт-силуэтом.

Для чего это может пригодиться? Насколько можно судить, впервые такая организация силуэта была предложена здесь для записи алгоритмов; однако для этого удобнее стандартная ориентация. А вот записывать в такой форме синтдиаграммы, пожалуй, удобнее, чем использовать ломаные линии «перевода строк». При этом также устраняются пересечения.

При «лобовом» подходе из дракон-алфавита в теле веток синт-силуэта употребляется только виоп Действие (здесь получает смысл жёсткого поля); остальные вершины берутся из языка синтдиаграмм, причём вершина Гибкое поле имеет смысл синтдиаграммы-вставки в данную.

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

Если не изображать «гребёнку» в шапке переключателя, можно получить более компактную и как минимум не менее эргономичную конструкцию, которую назовём синт-переключатель»; её можно применять и для визуализации бинарного ветвления.

Читателю предоставляется возможность самому переписать диаграммы ввода и вывода в форме синт-силуэтов (заодно раскрыв «слепленные» при вёрстке соединения и разветвления линий). Для начала лучше переписать их в «правильной» примитивной форме, выполнив задание в п. 1.1.2 Приложения 4.

Далее показана общая структура синт-силуэта.

Синт-силуэт

Общая структура синт-переключателя показана на верхней схеме далее. Здесь вершины «гребёнки» (разветвители и излом) «внесены» в соседние содержательные вершины; условно это показано размещением контуров вносимых вершин внутри включающих.

Синт-переключатель

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

С помощью синт-переключателя можно информатизовать и ветвления синтдиаграмм.

Видно, что форма вертикалей побочных вариантов зависит от высот тел вариантов; если она превышает высоту вершин Вариант в «шапке», то горизонтали второго и последующих вариантов д.б. сдвинуты вниз, и на них образуются допизломы. Удобно было бы в этом случае допустить просветы между вершинами «шапки», смещая их вместе с горизонталями вариантов; в просветах нужно изображать видимые участки рёбер «гребёнки» (невидимые ведут ко внесённым вершинам и условно закрыты контурами включающих вершин).

Логично, чтобы сохранился и вариант начертания с вершинами «шапки» встык. Поэтому данная конструкция представляет интерес для областного определения. Тем более, что абстрактно определить саму область во всей полноте трудно; проще показать на конкретном примере.

На нижней схеме «шапка» синт-переключателя замещена пустой входящей областью; значение 'auto' её атрибута статуса указывает что он управляем результатом выбора области-варианта (а не задаётся сочинителем). Такое значение д.б. предопределено (в РДП-редакторе - установлено автоматически) как результат операции ввода области в схему.

Различные начертания «шапки» даны в вынесенных областях-вариантах; они имеют уже заданный сочинителем статус (в данном случае отражающий законченность содержимого каждой области для целей определения). Именно для вынесенных областей, разумеется, определяется условие выбора (начинается с 'Вх?:'), которое в данном случае сформулировано как отношение высот (предполагается, что мы умеем их измерять или задаём вводом).

Кроме того, вершины имеют варианты текста. В данном случае для структуры содержания области заданы два возможных значения (варианты А и Б), для состава текстов структурных элементов — два места подстановки (каждый тип элемента — вершина Выбор и Вариант - имеет один варьируемый фрагмент) с двумя возможными значениями (для разных мест наборы значений разные).

Посредством РБНФ вхождения текста определены информатически неформально; не заданы условия подстановки. В атрибуте SUBSTEXT условия определены от величин документа, содержащего данную модель; меняя значения величин, получим варианты сборки структуры схемы и текста её вершин.

Условие в нашем случае сформулировано от единственной переменной выбора, отражающей смысл результата; если синт-переключатель предназначен для ручного выбора (используется в лист-диалекте синт-языка, подробнее см. п. 5.2.4 Приложения 2), то в поле подставляется один вариант текста, если для автоматического (когда синт-силуэт имеет смысл программы) — то другой вариант.

Заметим, что здесь мы построили подстановку, исходя из цели получить тот же РБНФ-текст, что в определении синт-переключателя. Если бы нам требовалось определить реальный переключатель, то все вершины Вариант1...N были бы с разными текстами, и нужно было бы для каждой определить своё поле со своим набором текстов для подстановки. Собственно, и цели в реальном переключателе будут конкретизированы по его вершинам; поэтому не в каждой из них вообще м.б. нужна подстановка.

В начало страницы

Как это пишется?

Графика виопа Область построена по принципам, заданным в п/п 1.2.1.1 Приложения 1 и содержит поле индекса области (логично – по порядку создания в пределах дракон-схемы) и варианта данной области. Также указывается признак завершённости (отсутствия туннелей); сочинитель может дать области эргоимя (кратко отражающее её смысл). Графит-определение области в общем виде показано ниже:

Видно, что любой тип входа и/или выхода области может повторяться конечное число раз (от Nнач до Nкон) или отсутствовать. Практического смысла область, у которой отсутствуют всякие входы и выходы, не имеет; в графит-методе маршруты не могут обрываться (заканчиваться ребром); ребро всегда д.б. подсоединено либо к содержательной вершине, либо к туннелю.

Графика шампур-вершин в синт-варианте не отличается от обычного; меняется только расположение точек присоединения рёбер на контуре вершины (условно они поворачиваются на 90° против часовой стрелки относительно контура, положение которого остаётся неизменным).


В начало страницы | Оглавление | Версия для печати

Copyright © Жаринов В.Н.

Hosted by uCoz