Проектирование визуальных конструкций на основе языка JAPE и выявление требований к веб-редактору для них, Проектирование визуальных конструкций - Разработка веб-редактора для описания лексико-семантических шаблонов на визуальном языке

Проектирование визуальных конструкций

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

В приложении А представлена вся грамматика языка JAPE в форме БНФ. В виду своей сложности, на первом этапе разработки будет выполнена визуализация не всех его конструкций, а только наиболее используемых новичками. Все шаблоны, создаваемые с помощью языка JAPE можно представить в форме диаграмм Вирта, т. к. они направлены на извлечение слов из текста.

Разработка визуального представления

Как было описано выше, на первом этапе разработки, будут описаны только самые часто-используемые конструкции языка JAPE. Таким образом, в соответствии с грамматикой языка (см. приложение А), левая часть правила может быть описана как "PatternElement". Этот элемент и является шаблоном для извлечения информации из текста. Это может быть как обычный идентификатор, так и "BasicPatternElement" или "ComplexPatternElement".Диаграмма Вирта для "BasicPatternElement" (объединенная с "Constraint") описана на рисунке 2.1:

диаграмма вирта для описания конструкции

Рисунок 2.1. Диаграмма Вирта для описания конструкции "BasicPatternElement", объединенная с "Constraint"

"AttrVal"в этой диаграмме - значение атрибута, которое может быть конечного числа типов: "<string> | <ident> | <integer> | <floatingPoint> | <bool>". Таким образом, идентификатор и значение атрибута можно преобразовать в атрибут и его значение для объекта, идетификатор которого пишется перед точкой. Например, Token. kind == "number" будет преобразован в объект с идентификаторомToken, у которого будет атрибут (свойство) "kind" со значением "number". При чем, тип значения будет "ident", т. к. в случае этого примера, шаблон извлекает из текста числа. На рисунке 2.2 с помощью UML нотации описан класс Token с его атрибутами, его визуальное представление и описание на языке XML (с опущением некоторых атрибутов, таких как координаты фигуры и его размеры).

объект

Рисунок 2.2. Объект "Token", его визуальное представление и писание в формате XML

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

Одна визуальная диаграмма будет представлять собой одну фазу ("Phase"). С одним правилом ("Rule"). Такое решение было принято в связи с тем, что данный вид шаблонов наиболее читаем для начинающих пользователей, а значит, понятен, и, позволит максимально упростить процесс их создания. Таким образом, фаза ("Phase"), описанная в виде диаграммы Вирта на рисунке 2.3. Будет преобразована в объект, который и будет представлять собой поле для создания диаграммы. Так как было решено использовать SVG для генерации графики, "полотном" для создания всех объектов будет тэг "<svg>", он и будет представлять собой описание фазы и правила в ней. Таким образом, описание фазы с рисунка 2.4 на языке XML будет выглядеть следующим образом (атрибуты тэга, необходимые для визуализации опущены): "<svg ... phase = "firstpass" rule = "TwoPatterns" priority = "20" />".Атрибуты описывающие "Input"и "Options"будут опущены, т. к. было решено оставить их по умолчанию, т. к. для начинающих пользователей эти атрибуты вызывают непонимание. В последующих итерациях разработки они могут быть лего добавлены.

описание фазы языка jape в виде диаграммы вирта

Рисунок 2.3. Описание фазы языка JAPE в виде диаграммы Вирта

шаблон, описанный на языке jape, аннотирующий названия и имена людей

Рисунок 2.4. Шаблон, описанный на языке JAPE, аннотирующий названия и имена людей

Правая часть шаблона описывает действие именования выделенных ранее меток "person" и "title" в "Person" и "Title" соответственно посредством правила "TwoPatterns". Данное действие описано в грамматике языка в форме БНФ как "AssignmentExpression", однако, помимо него в правой части может стоять либо блок кода на языке Java (именованный или нет) либо идентификатор. На диаграмме визуального языка, основанного на JAPE, для описания этой части правила будет использован "вход" и "выход" для описываемой диаграммы. Объект "вход" будет иметь атрибут "label", куда будет записываться название метки ("title" или "person" из примера на рисунке 2.4). Объект "выхода" будет иметь атрибут "ident" для описания наименования определенных ранее меток. Если пользователю будет необходимо добавить блок с кодом на Java, он сможет это сделать добавив объект на диаграмму.

Таким образом, на рисунке 2.5 представлен пример с рисунка 2.4, описанный на визуальном языке. Оба прямоугольника - объекты типа "Lookup", ведущие поиск по документу в поисках уже аннотированного текста, где свойство "majorType" эквивалентно значению в прямоугольнике. Кроме того, сам объект svgимеет атрибуты, описанные выше. Их пользователь вводит при создании диаграммы.

шаблон на визуальном языке, аннотирующий названия и имена людей

Рисунок 2.5. Шаблон на визуальном языке, аннотирующий названия и имена людей

Некоторые правила могут содержать отрицание, как описано в БНФ, представленной в приложении А. Поэтому, было решено ввести понятие "негативного выхода", т. е. чтобы пользователь мог определить нежелательный шаблон. Таким образом, на рисунках 2.6 и 2.7 можно увидеть как шаблон для аннотирования названий, не начинающихся на S (или s) будет выглядеть на языке JAPE и визуальном языке соответственно. Сначала будут найдены все совпадения "Lookup. majortype == "Title"", а после этого, выявлены те, что начинаются на S будут исключены.

шаблон на языке jape, аннотирующий названия, не начинающиеся на s или s

Рисунок 2.6. Шаблон на языке JAPE, аннотирующий названия, не начинающиеся на S или s

Конструкция "MacroDef" будет преобразована в объект-ссылку на другую диаграмму. Таким образом, были трансформированы все конструкции языка JAPE, которые могут быть использованы начинающими пользователями.

шаблона на визуальном языке, аннотирующий названия, не начинающиеся на s или s

Рисунок 2.7. Шаблона на визуальном языке, аннотирующий названия, не начинающиеся на S или s

Выявление требований для веб-редактора

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

idef0 для модуля веб-редактора для описания лексико-семантических шаблонов на визуальном языке

Рисунок 2.8. IDEF0 для модуля веб-редактора для описания лексико-семантических шаблонов на визуальном языке

В качестве управления будут выступать правила, описывающие грамматику языка JAPE, т. к. в итоге, полученные диаграммы должны быть использованы для анализа текстов с помощью платформы GATE, которая использует этот язык для описания шаблонов. Вторым условием правильного функционирования блока будет поддержка интерфейсов веб-службы, которая будет исполнять роль хранилища всех данных (диаграмм). Таким образом, необходимо использовать эти интерфейсы для корректного сохранения лексико-семантических шаблонов в хранилище, для последующего их использования в системе SFTA, которая, на базе платформы GATE будет анализировать большие количества неструктурированной текстовой информации.

Архитектура веб-приложения

На рисунке 2.9 изображена архитектура будущего веб-приложения.

архитектура веб-редактора для описания лексико-семантических шаблонов

Рисунок 2.9. Архитектура веб-редактора для описания лексико-семантических шаблонов

Все операции по рисованию диаграммы будут выполняться на клиентской части приложения посредством обработчиков событий на JavaScript. Это позволит ускорить работу по созданию диаграмм. Сервер будет выполнять операции по сохранению/загрузке диаграмм в/из облачного хранилища соответственно. Для добавлен этих функций будет реализован WebServiceclient, который позволит осуществить связь с WCFсервисом. Для того, чтобы созданные диаграммы можно было использовать при анализе текстов, их необходимо преобразовать в язык JAPE. Эту функцию будет выполнять интерпретатор, который будет осуществлять трансформацию визуального языка в JAPE, и обратно. Таким образом, все диаграммы будут храниться в облачном хранилище в виде. jape файлов, чтобы их можно было без проблем использовать в других модулях системы SFTA.

Проектирование веб-редактора

Для реализации веб-редактора визуального языка описания лексико-семантических шаблонов была выбрана платформа Java (web-application), для генерации графики инструмент SVG и библиотека Raphael. js, которая позволит оперировать визуальными объектами. На рисунке 2.10 представлена диаграмма прецедентов, описывающая сценарии, по которым пользователь будет обращаться к разрабатываемому продукту:

диаграмма прецедентов для веб-редактора описания лексико-семантических шаблонов на визуальном языке

Рисунок 2.10. Диаграмма прецедентов для веб-редактора описания лексико-семантических шаблонов на визуальном языке

Сохранение диаграммы будет производиться в формат XML или файлы с расширением. jape, где лексико-семантический шаблон будет храниться в виде языка XMLили языка JAPE соответственно. Однако, такое сохранение будет доступно лишь на локальный компьютер пользователя. Все файлы, которые будут сохранены в облачном хранилище, будут храниться в виде шаблонов на языке JAPE, для того, чтобы их можно было использовать для анализа текста в системе SFTA.

Таким образом, выделение классов в данном проекте было проведено по функциональности, которую они должны обеспечить. Так, класс Redactor должен предоставлять функции создания, сохранения и редактирования диаграмм, а так же их импорт. Однако, для сохранения их в облачном хранилище необходимы еще два класса - Parserи CloudConnector. Первый предоставит возможность генерации когда на JAPE из XML вида и обратно, а второй обеспечит связь с веб-сервисом, предоставляющим доступ к облачному хранилищу.

Для реализации генерации диаграммы, так же необходимо построить диаграмму классов. Для того, чтобы редактор был расширяем, и в него можно было добавить большее количество объектов, необходимо создать универсальный объект, от которого будут унаследованы все остальные. Конструкцииязыка "Lookup" и "Token" имеютобщиесвойства: objectType, propertyName, propertyValue, operation. Эти свойства необходимы для описания шаблонов. Однако, таким образом, можно строить любые объекты, присваивая им различный внешний вид. Таким образом, будет создан абстрактный объект - "AbstracrShapeObject".

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

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

Слева представлена панель, на которой находятся объекты для создания диаграммы лексико-семантического шаблона. Два элемента, которые используются как "Input" в шаблонах на JAPE по умолчанию: "Token" и "Lookup". Так же добавление начала правила (вход), его конца (выход) и негативного выхода, необходимость которого была описана выше. Далее представлена кнопка создания объекта с кодом на языке Java, объекты "string" и "ident", необходимые для описания некоторых вариаций шаблонов. Справа представлен лист, на котором будет генерироваться изображение диаграммы.

общая концепция дизайна веб-редактора

Рисунок 2.12. Общая концепция дизайна веб-редактора

Похожие статьи




Проектирование визуальных конструкций на основе языка JAPE и выявление требований к веб-редактору для них, Проектирование визуальных конструкций - Разработка веб-редактора для описания лексико-семантических шаблонов на визуальном языке

Предыдущая | Следующая