DRAKON.SU

Текущее время: Воскресенье, 10 Ноябрь, 2024 22:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 00:17 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
У меня назрела необходимость определиться с форматом передачи информации из ДРАКОН-схемы в некую среду для дальнейшей трансляции и обратно из среды в ДРАКОН-схему. Потенциально эта среда необязательно должна быть транслятором для какого-либо языка программирования. Такая среда может быть, например, текстовым процессором.

Очевидно, что ДРАКОН-схема не может содержать необходимую декларативную информацию, о чём неоднократно говорилось на форуме. Следовательно, формат должен быть способен описывать её, а также другие полезные сущности, которые в свою очередь должны поддерживаться редактором.

Схему, содержащую в себе кроме ДРАКОН-схем и другую информацию, для краткости буду называть - КАРТА ЗНАНИЙ. Термин можно обсудить, как и всё остальное изложенное здесь : )
Формат пока назову ОПИСАНИЕ КАРТЫ ЗНАНИЙ (далее по тексту ОПИСАНИЕ).

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

Ниже мои предложения, не претендующие на истину в последней инстанции, а лишь служащие приглашением к обсуждению возможного текстового формата для описания КАРТЫ ЗНАНИЙ. Решение лобовое, по принципу что вижу то пою : ) Развёртка ДРАКОН-схемы в линейный текст.

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

КАРТА ЗНАНИЙ представляет собой совокупность текстовой и графической информации, структурированной определённым образом. (каким именно образом - можно и нужно обсуждать : )

Имя КАРТЫ ЗНАНИЙ определяется именем файла, содержащего описание КАРТЫ ЗНАНИЙ.

Содержимое КАРТЫ ЗНАНИЙ предназначено для формирования правил и инструкций для ИСПОЛНИТЕЛЕЙ: человека, машины или их групп и комплексов.

Инструментом для работы с КАРТОЙ ЗНАНИЙ является специализированное программное обеспечение (далее РЕДАКТОР).

Алгоритмические схемы отображаются, в основном, на языке ДРАКОН и его модификациях.

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

ОПИСАНИЕ не предназначено для ручного редактирования, но может быть легко прочитано и понято человеком.

Назначение ОПИСАНИЯ:
служить интерфейсом между РЕДАКТОРОМ КАРТЫ ЗНАНИЙ и сторонними программными модулями, предназначенными, как для получения правил и инструкций для человека, так и для получения документации и исполняемого кода для автоматизированных систем.
предоставить простой человекопонимаемый формат для автоматического преобразования исполняемого кода в КАРТУ ЗНАНИЙ.

Синтаксис формата дан в форме близкой к БНФ и словесного описания.
Формат определён далеко не полностью, в силу ограниченности моих знаний : )

Условные обозначения:

< > - угловые скобки содержат определяемое понятие
~ - исключение
::= - справа от этого символа находятся определяющие конструкции
| - означает 'или'
( ) - скобки группируют конструкции
{ } - содержимое фигурных скобок может повторяться ноль и более раз
[ ] - содержимое этих скобок является не обязательным
' ' - в одинарных кавычках находятся символы передаваемые как есть.
ПС — перевод строки
ТАБ — табуляция

В любом месте ОПИСАНИЯ могут быть вставлены комментарии:
// - всё, что справа — комментарий
/* многострочный комментарий */

<Формат> ::= 'ОПИСАНИЕ КАРТЫ ЗНАНИЙ' ПС 'ВЕРСИЯ' <Номер версии> ПС [<Разделы>]

<Номер версии> ::= (<Буква> | <Десятичная цифра> | '_' | '-' ) [{<Буква> | <Десятичная цифра> | '_' | '-' }]

<Разделы> ::= <Раздел> [{<Раздел> }]

<Раздел> ::= ('=' ПС <Тип раздела> [<Параметры раздела>] ПС <Блок раздела> ПС '==' ПС)

<Тип раздела> ::= 'ДОБАВИТЬ КАРТУ ЗНАНИЙ' | 'НАСТРОЙКИ' | 'ТАБЛИЦА ОПРЕДЕЛЕНИЙ' | 'ОБЪЕКТЫ' | 'КОМПОНЕНТЫ' | 'СХЕМА СОБЫТИЙ' | 'СХЕМА ОТНОШЕНИЙ' | 'ШАБЛОН' | 'АЛГОРИТМ' | 'ТЕКСТ'

<Параметры раздела> - зависят от типа и могут содержать имя, имя файла, описание и содержание таблиц определений, атрибуты, язык программирования, трактовку текстовых структур в иконах и т.п.

Для каждого <Тип раздела> может существовать свой набор из множества <Блок раздела>

Начну с <Тип раздела> 'АЛГОРИТМ', как наиболее понятному для меня : ) Пока только для примитива.

<Блок раздела> для 'АЛГОРИТМ' ::= '.' ПС ('ПРИМИТИВ' | 'СИЛУЭТ') ПС ['.' ПС 'НАСТРОЙКИ ИЗ ШАБЛОНА' <Имя шаблона> ПС] ['.' ПС 'НАСТРОЙКИ ИЗ ФАЙЛА' <Имя файла> ПС] ['.' ПС 'ДЛЯ ИСПОЛНИТЕЛЯ' <Имя исполнителя> ПС] [{'.' ПС 'ИСПОЛЬЗОВАТЬ ТАБЛИЦУ ОПРЕДЕЛЕНИЙ' <Имя таблицы определений> ПС}] '.' ПС 'СХЕМА' <Описание схемы> [{'.' ПС 'ШАБЛОН' <Имя шаблона> <Описание шаблона> ПС}] [{'.' ПС 'ТЕКСТ СКРЫТЫЙ' <Имя текста> <Текст скрытый> ПС}]

<Описание схемы> ::= '!' ПС <Секция НАЧАЛО> '!!!' ПС [ ( {'!' ПС <Секция> '!!!' ПС} | {'!' ПС <Метка> '!!!' ПС} ) ] '!' ПС <Секция КОНЕЦ> '!!!' ПС

< Секция НАЧАЛО> ::= <Икона НАЧАЛО> [('.' ПС 'СПРАВА' ПС '.' <Иконы правые> ['.' ПС 'СПРАВА' ПС '.' <Икона ПРАВЫЙ КОММЕНТАРИЙ>]) | ['.' ПС 'СПРАВА' ПС '.' <Икона ПРАВЫЙ КОММЕНТАРИЙ>] ] [('.' ПС 'СЛЕВА' ПС '.' <Иконы левые> ['.' ПС 'СЛЕВА' ПС '.' <Икона ЛЕВЫЙ КОММЕНТАРИЙ>]) | ['.' ПС 'СЛЕВА' ПС '.' <Икона ЛЕВЫЙ КОММЕНТАРИЙ>] ]

Секция — горизонтально расположенные иконы, связанные между собой (см. рисунок ниже, красными прямоугольниками обозначены секции)
Вложение:
Секции.png
Секции.png [ 18.34 КБ | Просмотров: 24379 ]


<Икона НАЧАЛО> ::= 'НАЧАЛО' [ ПС <Тело иконы> ]

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

Например:
<Икона ЛЕВЫЙ КОММЕНТАРИЙ> ::= 'ЛЕВЫЙ КОММЕНТАРИЙ' ПС [ ПС <Тело иконы> ]
<Икона ПРАВЫЙ КОММЕНТАРИЙ> ::= 'ПРАВЫЙ КОММЕНТАРИЙ' ПС [ ПС <Тело иконы> ]

<Тело иконы> ::= ( [ {'.' ПС 'КОММЕНТАРИЙ ВИДИМЫЙ' ПС <Комментарий видимый>}] | [{'.' ПС '.' 'ТЕКСТ ВИДИМЫЙ' ПС <Текст видимый>}] ) | ( [ {TAB '.' 'ТЕКСТ СКРЫТЫЙ' <Имя текста> ПС}] ) | ( [ {ТАБ '.' ПС 'ФАЙЛ С ТЕКСТОМ' <Имя файла> [ <Номер_строки_и_позиции_начала> <Номер_строки_и_позиции_конца> ] ПС}] )

<Комментарий видимый> - непосредственно отображается в иконе.

<Текст видимый> - текст на исполняемом языке, отображается непосредственно в иконе.

Текст скрытый — текст на исполняемом языке, включая комментарии, отображается, например, при использовании инструмента Лупа.

Файл с текстом — на исполняемом языке, отображается в специальном окне.


<Секция> ::= <Секция ДЕЙСТВИЕ> | <Секция ВОПРОС> | <Секция ВЫБОР> | <Секция ВАРИАНТ> | <Секция ВСТАВКА> | <Секция ПОЛКА> | <Секция НАЧАЛО ЦИКЛА ДЛЯ> | <Секция КОНЕЦ ЦИКЛА ДЛЯ> | <Секция ВЫВОД> | <Секция ВВОД> | <Секция ПАУЗА> | <Секция ПУСК ТАЙМЕРА> | <Секция ПАРАЛЛЕЛЬНЫЙ ПРОЦЕСС> | <Секция КОММЕНТАРИЙ>

<Иконы левые> ::= <Икона ИСПОЛНИТЕЛЬ> | <Икона АВТОИСПОЛНИТЕЛЬ> | <Икона ВОЗДЕЙСТВИЕ> | <Икона СИНХРОНИЗАТОР ПО ТАЙМЕРУ>

ИСПОЛНИТЕЛЬ — человек или группа людей
АВТОИСПОЛНИТЕЛЬ — устройство, способное выполнять инструкции, прописанные в алгоритме.

<Иконы правые> ::= <Икона ПАРАМЕТРЫ> | <Икона ПРАВИЛА>

< Секция ДЕЙСТВИЕ> ::= <Икона ДЕЙСТВИЕ> [('.' ПС 'СПРАВА' ПС '.' <Иконы правые> ['.' ПС 'СПРАВА' ПС '.' <Икона ПРАВЫЙ КОММЕНТАРИЙ>]) | ['.' ПС 'СПРАВА' ПС '.' <Икона ПРАВЫЙ КОММЕНТАРИЙ>] ] [('.' ПС 'СЛЕВА' ПС '.' <Иконы левые> ['.' ПС 'СЛЕВА' ПС '.' <Икона ЛЕВЫЙ КОММЕНТАРИЙ>]) | ['.' ПС 'СЛЕВА' ПС '.' <Икона ЛЕВЫЙ КОММЕНТАРИЙ>] ]

<Секция ВОПРОС> ::= <Икона ВОПРОС> [('.' ПС 'СПРАВА' ПС '.' <Иконы правые> ['.' ПС 'СПРАВА' ПС '.' <Икона ПРАВЫЙ КОММЕНТАРИЙ>]) | ['.' ПС 'СПРАВА' ПС '.' <Икона ПРАВЫЙ КОММЕНТАРИЙ>] ] '.' ПС 'ДА К ВОПРОСУ' <Номер_вопроса> [{<секция>}] [ ('ПЕРЕХОД НА МЕТКУ' <Имя метки внизу> | 'ПЕРЕХОД НА МЕТКУ ЦИКЛА' <Имя метки цикла> | 'ПЕРЕХОД НА МЕТКУ ПЕРЕХОДА' <Имя метки перехода>) ПС ] '.' ПС 'НЕТ К ВОПРОСУ' <Номер_вопроса> [{<секция>}] ('ПЕРЕХОД НА МЕТКУ' <Имя метки внизу> | 'ПЕРЕХОД НА МЕТКУ ЦИКЛА' <Имя метки цикла> | 'ПЕРЕХОД НА МЕТКУ ПЕРЕХОДА' <Имя метки перехода>) ПС


<Икона ВОПРОС> ::= 'ВОПРОС' <Номер_вопроса> <Тело иконы>

<Метка> ::= '.' МЕТКА <Имя метки внизу> ПС

<Метка ЦИКЛА> ::= '.' МЕТКА ЦИКЛА <Имя метки цикла> ['.' ПС 'СПРАВА' ПС <Икона ПЕРИОД>] ПС

<Метка ПЕРЕХОДА> ::= '.' МЕТКА ПЕРЕХОДА <Имя метки перехода> ПС
Вложение:
Метки.png
Метки.png [ 12.78 КБ | Просмотров: 24379 ]


ПЕРЕХОД полезен для быстрого создания ДРАКОН-схемы.
Это очень удобно, например, при описании деятельности исполнителей прямо во время интервью с ними. Скорость записи практически зависит только от скорости набора текста.

Если ПЕРЕХОД не использовать, то весьма затруднительно быстро построить схему, что накладывает запрет на использование ДРАКОН-редактора прямо во время интервью.

ПЕРЕХОДОВ может быть множество.
Схему с ПЕРЕХОДАМИ можно считать не правильной, но с ней можно работать.

<Секция ВЫБОР> ::= <Икона ВЫБОР> [('.' ПС 'СПРАВА' ПС '.' <Иконы правые> ['.' ПС 'СПРАВА' ПС '.' <Икона ПРАВЫЙ КОММЕНТАРИЙ>]) | ['.' ПС 'СПРАВА' ПС '.' <Икона ПРАВЫЙ КОММЕНТАРИЙ>] ] '.' ПС {<Секция ВАРИАНТ> [{<Секция ~<Секция ВАРИАНТ>>} [('ПЕРЕХОД НА МЕТКУ' <Имя метки внизу> | 'ПЕРЕХОД НА МЕТКУ ЦИКЛА' <Имя метки цикла> | 'ПЕРЕХОД НА МЕТКУ ПЕРЕХОДА' <Имя метки перехода>) ПС] ] }

<Икона ВЫБОР> ::= 'ВЫБОР' <Номер_выбора> <Тело иконы>

<Икона ВАРИАНТ> ::= 'ВАРИАНТ К ВЫБОРУ' <Номер_выбора> <Тело иконы>


Остальные секции строятся аналогичным образом. Надеюсь они будут когда-либо описаны : )

Ниже несколько примеров.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 00:19 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Вложение:
мини.png
мини.png [ 1.88 КБ | Просмотров: 24378 ]


ОПИСАНИЕ КАРТЫ ЗНАНИЙ
ВЕРСИЯ v0.0.1-проба

=
АЛГОРИТМ
.
ПРИМИТИВ
.
СХЕМА
.
НАЧАЛО
.
КОММЕНТАРИЙ ВИДИМЫЙ
Начало
.
КОНЕЦ
.
КОММЕНТАРИЙ ВИДИМЫЙ
Конец
==


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 00:22 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Вложение:
метки пример.png
метки пример.png [ 9.99 КБ | Просмотров: 24380 ]


ОПИСАНИЕ КАРТЫ ЗНАНИЙ
ВЕРСИЯ v0.0.1-проба

=
АЛГОРИТМ
.
ПРИМИТИВ
.
СХЕМА
.
НАЧАЛО
.
КОММЕНТАРИЙ ВИДИМЫЙ
Начало
.
ВОПРОС Номер_1
.
КОММЕНТАРИЙ ВИДИМЫЙ
- вопрос -
.
НЕТ К ВОПРОСУ Номер_1
.
ПЕРЕХОД К МЕТКЕ Номер_1
.
ДА К ВОПРОСУ Номер_1
.
ВОПРОС Номер_2
.
КОММЕНТАРИЙ ВИДИМЫЙ
- вопрос -
.
НЕТ К ВОПРОСУ Номер_2
.
ПЕРЕХОД К МЕТКЕ ПЕРЕХОДА Номер_1
.
ДА К ВОПРОСУ Номер_2
.
МЕТКА ЦИКЛА Номер_1
.
СПРАВА
.
ПЕРИОД
.
КОММЕНТАРИЙ ВИДИМЫЙ
- период -
.
ВОПРОС Номер_3
.
КОММЕНТАРИЙ ВИДИМЫЙ
- вопрос -
.
НЕТ К ВОПРОСУ Номер_3
.
ВОПРОС Номер_4
.
КОММЕНТАРИЙ ВИДИМЫЙ
- вопрос -
.
НЕТ К ВОПРОСУ Номер_4
.
ПЕРЕХОД К МЕТКЕ ЦИКЛА Номер_1
.
ДА К ВОПРОСУ Номер_4
.
ПЕРЕХОД К МЕТКЕ Номер_2
.
МЕТКА ПЕРЕХОДА Номер_1
.
ДЕЙСТВИЕ
.
КОММЕНТАРИЙ ВИДИМЫЙ
- действие -
.
МЕТКА Номер_2
.
МЕТКА Номер_1
.
КОНЕЦ
.
КОММЕНТАРИЙ ВИДИМЫЙ
Конец
==


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 00:24 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Если условиться, что комментарии в иконе будут выделяться синим цветом, а исполнимый код — чёрным, то можно получить вот такой результат

Вложение:
Basic.png
Basic.png [ 5.58 КБ | Просмотров: 24381 ]


ОПИСАНИЕ КАРТЫ ЗНАНИЙ
ВЕРСИЯ v0.0.1-проба

=
НАСТРОЙКИ
язык программирования: BASIC
==

=
АЛГОРИТМ
.
ПРИМИТИВ
.
СХЕМА
.
НАЧАЛО
.
КОММЕНТАРИЙ ВИДИМЫЙ
Начало
.
ТЕКСТ ВИДИМЫЙ
program Two;
.
ПОЛКА
.
КОММЕНТАРИЙ ВИДИМЫЙ ЧАСТЬ А
переменная
.ТЕКСТ ВИДИМЫЙ ЧАСТЬ А
X
.
КОММЕНТАРИЙ ВИДИМЫЙ ЧАСТЬ Б
формула
.
ТЕКСТ ВИДИМЫЙ ЧАСТЬ Б
2 x 2
.
ВЫВОД
.
КОММЕНТАРИЙ ВИДИМЫЙ ЧАСТЬ А
экран
.
ТЕКСТ ВИДИМЫЙ ЧАСТЬ А
print
.
ТЕКСТ ВИДИМЫЙ ЧАСТЬ Б
X
.
КОНЕЦ
.
КОММЕНТАРИЙ ВИДИМЫЙ
Конец
==


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 06:03 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Нормальное предложение... в принципе, в деталях не разбирался. А чё РБНФы не визуализированы-то?.. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 09:05 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 73
Откуда: Россия, Санкт-Петербург
А зачем городить очередной велосипед? Чем вас XML не устраивает. Он для того и разрабатывался, чтобы быть расширяемым и восприниматься как "расширенным", так и "бедным" потребителем. Просто некоторые теги будут проигнорированы. Например, комментарии или код.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 17:49 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
А накладные расходы на обработку не будут большими?..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 17:56 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Ильченко Эдуард писал(а):
...
К тому же, оказалось, что в некоторых случаях есть польза от произвольных переходов на метку. Не уверен что ПРОТОН с ними справится. Позже будет пример.
...
Это не к тому, о чём говорилось здесь (в связи с примером из Крюкова)?
Тока это непосредственно может относиться к спискам (кстати, у А.В. Бабичева говорится, что двусторонний список - вообще структура для информатизованного описания сложная :)). А как к "прошитым" произвольными БП маршрутным схемам относится - не думал. :)

P.S. Вероятно, что-то может подсказать материал по визуально-структурному анализу...


Последний раз редактировалось Владислав Жаринов Суббота, 03 Декабрь, 2011 06:09, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 20:36 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 73
Откуда: Россия, Санкт-Петербург
Драконограф писал(а):
А накладные расходы на обработку не будут большими?..

Нет. Тем более, что не нужно будет создавать инфраструктуру, так как существует большое количество редакторов, конверторов, библиотек и т.п. для работы с XML.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 22:46 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Madzi писал(а):
Чем вас XML не устраивает.

XML хорош для "много вложенных" структур.
ОПИСАНИЕ же линейный текст. Оборачивание его в XML может и не дать никаких преимуществ.
Хотя возможно Вы правы и XML удобнее.
Спасибо. Я ещё раз подумаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Вторник, 18 Октябрь, 2011 23:08 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Драконограф писал(а):
Ильченко Эдуард писал(а):
...
К тому же, оказалось, что в некоторых случаях есть польза от произвольных переходов на метку. Не уверен что ПРОТОН с ними справится. Позже будет пример.
...
Это не к тому, о чём говорилось здесь (в связи с примером из Крюкова)?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Среда, 19 Октябрь, 2011 07:48 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 73
Откуда: Россия, Санкт-Петербург
Ильченко Эдуард писал(а):
Madzi писал(а):
Чем вас XML не устраивает.

XML хорош для "много вложенных" структур.
ОПИСАНИЕ же линейный текст. Оборачивание его в XML может и не дать никаких преимуществ.
Хотя возможно Вы правы и XML удобнее.
Спасибо. Я ещё раз подумаю.

Программа и есть много вложенных структур (семантическое дерево).
Однако главное преимущество XML - расширяемость. Когда новый формат поддерживает и старая (пропуская неизвестные теги) и новая версии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Среда, 26 Октябрь, 2011 18:01 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5939
Откуда: Москва
Перенесено в раздел Инструменты дракон-схем.
Образована тема "Дракон и XML: Проект Ярослава Романченко"

viewtopic.php?f=79&t=3627


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Воскресенье, 30 Октябрь, 2011 13:25 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5939
Откуда: Москва
Ильченко Эдуард писал(а):
У меня назрела необходимость определиться с форматом передачи информации из ДРАКОН-схемы в некую среду для дальнейшей трансляции и обратно из среды в ДРАКОН-схему. Потенциально эта среда необязательно должна быть транслятором для какого-либо языка программирования. Такая среда может быть, например, текстовым процессором.

Очевидно, что ДРАКОН-схема не может содержать необходимую декларативную информацию, о чём неоднократно говорилось на форуме. Следовательно, формат должен быть способен описывать её, а также другие полезные сущности, которые в свою очередь должны поддерживаться редактором.

Схему, содержащую в себе кроме ДРАКОН-схем и другую информацию, для краткости буду называть - КАРТА ЗНАНИЙ. Термин можно обсудить, как и всё остальное изложенное здесь : )
Формат пока назову ОПИСАНИЕ КАРТЫ ЗНАНИЙ (далее по тексту ОПИСАНИЕ).

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

Ниже мои предложения, не претендующие на истину в последней инстанции, а лишь служащие приглашением к обсуждению возможного текстового формата для описания КАРТЫ ЗНАНИЙ. Решение лобовое, по принципу что вижу то пою : ) Развёртка ДРАКОН-схемы в линейный текст.

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

КАРТА ЗНАНИЙ представляет собой совокупность текстовой и графической информации, структурированной определённым образом. (каким именно образом - можно и нужно обсуждать : )

Имя КАРТЫ ЗНАНИЙ определяется именем файла, содержащего описание КАРТЫ ЗНАНИЙ.

Содержимое КАРТЫ ЗНАНИЙ предназначено для формирования правил и инструкций для ИСПОЛНИТЕЛЕЙ: человека, машины или их групп и комплексов.

Инструментом для работы с КАРТОЙ ЗНАНИЙ является специализированное программное обеспечение (далее РЕДАКТОР).

Алгоритмические схемы отображаются, в основном, на языке ДРАКОН и его модификациях.

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

ОПИСАНИЕ не предназначено для ручного редактирования, но может быть легко прочитано и понято человеком.

Назначение ОПИСАНИЯ:
служить интерфейсом между РЕДАКТОРОМ КАРТЫ ЗНАНИЙ и сторонними программными модулями, предназначенными, как для получения правил и инструкций для человека, так и для получения документации и исполняемого кода для автоматизированных систем.
предоставить простой человекопонимаемый формат для автоматического преобразования исполняемого кода в КАРТУ ЗНАНИЙ.
...................................................................................

Уважаемый Эдуард Ильченко!

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

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

У меня вопрос. Вы продолжаете работу над Вашим замечательным построителем дракон-схем?
Каковы Ваши планы в этом и других направлениях?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Воскресенье, 30 Октябрь, 2011 14:51 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Владимир Паронджанов писал(а):
У меня вопрос. Вы продолжаете работу над Вашим замечательным построителем дракон-схем?

: )))

Владимир Паронджанов писал(а):
Каковы Ваши планы в этом и других направлениях?

На текущий момент закончен ознакомительный период работы с Qt.
На Python отработаны несколько усовершенствованные алгоритмы.
Стало понятно как организовать интерактивное взаимодействие с элементами редактора.

Сейчас этап освоения новых инструментов : )
С++ (при всей моей не любви к нему) и Qt (Qt Creator). Достойной альтернативы не нашёл.

Формат хранения файлов будет XML.

P.S. Работа движется медленно. Время могу выделить только вечером или по выходным.
В целом пока хвастаться нечем : ) Полуфабрикат он и есть полуфабрикат : )
Но надежда присутствует, например, рисунок Секции.png интерактивно создан программой на PyQt.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Понедельник, 31 Октябрь, 2011 06:49 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Ильченко Эдуард писал(а):
...
Сейчас этап освоения новых инструментов : )
С++ (при всей моей не любви к нему) и Qt (Qt Creator). Достойной альтернативы не нашёл.

Формат хранения файлов будет XML.
...
М-да. :) Ну, наверное, потом можно будет перевести на веб-ББ-шную основу... по мере реализации обсуждаемого в этой теме, допустим...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Понедельник, 31 Октябрь, 2011 09:36 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Владислав Жаринов писал(а):
М-да. :) Ну, наверное, потом можно будет перевести на веб-ББ-шную основу...

Да, развитие останавливаться не должно : ))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Суббота, 03 Декабрь, 2011 06:13 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Кстати, в этом посте добавил насчёт нового материала о формальности графики и текста. Сам метод, о котором речь в постскриптуме, можно найти на этой странице.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Суббота, 21 Январь, 2012 18:17 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Подскажите, кто знает: есть ли стандартный формат хранения ссылок в XML?

Например

Код:
<икона_вставка>
   <ссылка>?ссылка?</ссылка>
</икона_вставка>


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

Вот эта ?ссылка? что из себя должна представлять?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Промежуточный формат
СообщениеДобавлено: Суббота, 21 Январь, 2012 20:53 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Ильченко Эдуард писал(а):
Подскажите, кто знает: есть ли стандартный формат хранения ссылок в XML?

Например

Код:
<икона_вставка>
   <ссылка>?ссылка?</ссылка>
</икона_вставка>


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

Вот эта ?ссылка? что из себя должна представлять?

В гиперссылках могут быть амперсанды, поэтому безопаснее всего задействовать тег CDATA.
Вот здесь объясняется:
http://www.w3schools.com/xml/xml_cdata.asp

Но в целом есть что-то, что немного настораживает. Вам, Эдуард, виднее,
но, по-моему, имеет место архитектурная ошибка: модель данных вашей карты знаний смешана с вопросами форматирования. Обычно сначала строят модель в какой-нибудь форме (реляционной, ER, xsd), а потом уж синтаксис выбирают. Может, я просто не понял, о чём речь.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB