DuAL (Document Access Language)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 01:02, 22 мая 2016.
DuAL, Document Access Language
Спроектировано Максим Тимченко
Первый   появившийся 2004
Печать дисциплины динамическая
Платформа Microsoft Windows
Портал: www.jetdraft.com
Под влиянием
ActionScript, SQL

DuAL (Document Access Language — «язык доступа к документам») — сверхвысокоуровневый язык программирования с динамической типизацией. Язык сочетает в себе возможности языка структурированных запросов (SQL и объектно-ориентированного программирования).

История

DuAL был разработан в 2004 году студентом Самарский государственного аэрокосмического университета имени академика С.П. Королёва Максимом Тимченко в качестве инструмента для автоматизированного создания электронных учебных ресурсов. Разработкой языка также занимался его научный руководитель, Прохоров С. А. Создателем языка были проанализированы существующие инструменты автоматизированной обработки текстов, например, Visual Basic for Application, в результате чего он пришёл к необходимости создания нового инструмента.

Язык создавался под влиянием SQL и ActionScript и является продвинутым инструментом обработки документов при помощи набора правил.

Причины создания DuAL

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

Сложность в определении этих блоков машиной обусловлена тем, что при одинаковой логике может быть бесчисленное множество вариантов отображения этих блоков. Решением проблемы явился метод, оперирующий логическими единицами документа – текстовыми объектами, такими как символ, слово, предложение, абзац, глава, раздел. Доступ к объекту открывает большие возможности для анализа данных.

Отличия от остальных систем автоматизированной обработки документов

Основным недостатком текстовых редакторов/процессоров является низкая автоматизация процесса обработки текста. На практике, при возникновении у пользователя необходимости разделить большой документ на части или изменить формат некоторых его составляющих, то весь этот процесс пользователю необходимо провести вручную. Языки программирования встроенные в текстовые редакторы частично позволяют решить проблему автоматизированной обработки данных, но имеют ряд существенных недостатков, делающих невозможным их широкое использование, основными из них являются:

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

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

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

Описание языка

Синтаксис

  • ключевые функции, системные константы и логические указатели методов пишутся заглавными буквами.
  • методы и указатели описывающие параметры пишутся с большой буквы
  • имена объектов пишутся с маленькой буквы;
  • символ . разделитель метода объекта;
  • символ ` комментарии;
  • символ " текстовые данные. Для использования кавычек в тексте используется косая наклонная черта /;
  • символ в начале строки # обозначает директивы препроцессора (Зарезервировано).

Правила

Правило — это логически законченная конструкция языка, записываемая компактно, состоит из:

  • управляющей функции;
  • параметры обработки данных;
  • логического указателя направления вывода;
  • основного объекта.

Схема: ФУНКЦИЯ параметры УКАЗАТЕЛЬ объектОбрабатываются не единичные объекты, а все объекты отвечающие заданным критериям:

  1. Минимальная структурная единица — символ или объект, который невозможно разделить на более мелкие части;
  2. Наборы структурных единиц — слова, таблицы и составные объекты;
  3. Логические элементы текста — абзацы, параграфы, главы, документы.

IDE

Для DuAL существует бесплатная среда разработки, написанная создателем языка. В процессе запуска приложения пользователю выводится окно «Мастера подготовки данных», состоящего из нескольких вложенных окон:

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

По завершению работы окна «Мастер подготовки данных», создаются файлы нового проекта, содержащие в себе правила для обработки исходных документов. Далее выводится окно «Редактор управляющих правил» и «Вывод информации о состоянии процесса обработки» и на основе анализа содержимого файлов созданных мастером, создается дерево проекта со списком документов подлежащих обработке. В окне редактора управляющих правил, каждый логический элемент, для удобства восприятия автоматически подсвечивается соответствующим цветом. Пользователю предоставляется возможность изменить структуру правил в соответствии со своими задачами и личными предпочтениями. Система автоматически отслеживает все изменения, вносимые в структуру правил. На основании этих данных, система изменяет список документов подлежащих обработке, при этом осуществляется контроль правильности логических конструкций и доступность документов поставленных на обработку.

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

Пример кода

'Загрузка файлов
OPEN Mask("Файл.docx") AS исходные_файлы
'Определяем видимые символы
GRUP исходные_файлы.Symbol(ALL) AS символ
'Группируем символы в слова
GRUP символ.Where(NOSELF, LEFT) FOR символ.Where(NOSELF, RIGHT) AS слово
'Группируем слова в предложения
GRUP слово.Where(новая_строка, EDGE, LEFT) FOR слово.Where(новая_строка, EDGE, RIGHT) AS предложение
'Определяем имя раздела
GRUP предложение.Font(Type "Bold", Size "14", FUZZY) AS имя_главы
'Подсвечиваем имена глав другим цветом
GRUP имя_главы.Apply(Font(Color "Red")) AS имя_главы_красный
'Суммируем указатели
GRUP исходные_файлы.Apply(имя_главы_красный) AS изменённые_файлы
'Сохраняем файл
SAVE изменённые_файлы AS Mask("Документ%.html")

Список источников

  1. Преимущества объектной обработки текста в создании электронных учебных пособий
  2. Википедия
  3. Повышение эффективности управления обучением на основе системы автоматизированного создания электронных учебных ресурсов
  4. Официальный сайт продукта
  5. bmstu.wiki