Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке

Дипломная работа на тему «Платформа GATE для обработки естественного языка»

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

Написание диплома за 10 дней

Содержание

Введение

Глава 1. Платформа GATE для обработки естественного языка

1.1 Лингвистический процессор GATE

1.2 Язык для описания лексико-семантических шаблонов JAPE

1.3 Критерии обзора существующих решений

1.4 Редактор создания структур баз данных «WWW SQL Designer»

1.5 Веб-редактор для создания UML диаграмм «CodeUML»

1.6 Онлайн редакторы «Pencilcode» и «Scratch» для визуальных языков

1.7 Настольные редакторы для языка JAPE

1.8 Сводная таблица сравнения аналогов

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

1.9 Выбор инструмента для визуализации диаграмм

1.10 Выбор платформы для разработки

Глава 2. Проектирование визуальных конструкций на основе языка JAPE и выявление требований к веб-редактору для них

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

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

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

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

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

2.5 Проектирование интерпретатора

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

3.1 Реализация клиентской части приложения

3.2 Реализация графического представления объектов

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

3.3 Реализация алгоритма соединения объектов линией

3.4 Реализация основных функций веб-редактора

3.5 Выводы по результатам реализации редактора

Заключение

Список сокращений и условных обозначений

Библиографический список

Приложение А. Грамматика языка JAPE

Приложение Б. Диаграмма классов клиента

Приложение В. Функции соединения и перемещения объектов

Приложение Г. Функции соединения и перемещения объектов


Введение

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

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

Для обработки текстов существуют специализированные программные средства и библиотеки, такие как: «АОТ» [1], WordSmith Tools [2], AntConc [3] и GATE [4]. Последняя система решает практически любые задачи анализа текста. С помощью JAPE [5] она обрабатывает текст на основе регулярных выражений и позволяет разрабатывать лексико-семантические шаблоны, по которым ведется поиск. Однако большая часть пользователей — это лингвисты, и разработка подобных шаблонов вызывает у них затруднения из-за сложности языка. Решением может являться создание визуального языка, который станет проще для пользователей, в этом и заключается актуальность работы.

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

Для достижения цели исследования были выделены следующие задачи:

.        Провести обзор платформы GATE и ее инструмента для аннотирования текста.

2.      Провести системный анализ существующих редакторов для визуальных языков и языка JAPE, рассмотреть их возможности, преимущества и недостатки.

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

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

.        Сформулировать и описать функциональные требования к веб-редактору.

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

На данный момент, разработчиками рекомендуется создавать лексико-семантические шаблоны на языке JAPE с помощью продвинутого текстового редактора Vim или среды разработки Eclipse. Однако ни один из этих редакторов не ориентирован на пользователей, которые ранее не встречались с программированием и только хотят начать свою работу с платформой GATE.

Для рассмотрения существующих редакторов использовались такие методы морфологического анализа. При проектировании веб-редактора для визуального DSL языка, разработанного на основе JAPE, использовалось, прежде всего, предметно-ориентированное моделирование информации, которую необходимо записать в терминах DSL, методы объектно-ориентированного проектирования (UML). Для разработки — технологии объектно-ориентированного и веб-программирования.

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

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

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

платформа gate обработка язык
Глава 1. Платформа GATE для обработки естественного языка
1.1 Лингвистический процессор GATE

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

Среди преимущество данной платформы перед другими разработчики выделяют:

.        Комплексность. GATE включает в себя все необходимые инструменты для анализа текстов.

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

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

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

.        Надежность. Система проходит контроль качества путем применения количественной оценки показателей, что гарантирует предсказуемое поведение.

6.      Устойчивый коэффициент полезного действия.

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

Рисунок 1.1 Компоненты платформы для анализа текста GATE
1.2 Язык для описания лексико-семантических шаблонов JAPE

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

JAPE позволяет анализировать текст на основе регулярных выражений. Грамматика этого языка состоит из фаз, которые сдержат в себе набор шаблонов и/или правил. Правило всегда состоит из левой и правой частей. Левая часть содержит идентификатор, позволяющий определить шаблон, а правая — действия, которые необходимо выполнить для обнаружения этого шаблона.

Например, на рисунке 1.2 представлен пример шаблона, определяющего спортивные категории.

Рисунок 1.2 Лексико-семантический шаблон для определения категорий спорта, описанный на языке JAPE

Первой строкой описывается название фазы, оно должно быть уникальным. «Input» определяет, на какого типа аннотации будет направлено описываемое правило. По умолчанию устанавливается «Token» (буква), «Lookup» (область текста) или «SpaceToken» (лексема пробела). «Options» определяет, метод соответствия правилу с помощью элемента «control». Так же в этой строке может быть указан способ запуска: в режиме отладки или нет (по умолчанию стоит «debug = false», что значит, что запуск правила производится не в режиме отладчика). Далее, в четвертой строке определено название правила, а в пятой — приоритет его выполнения. Последовательность выполнения правил определяется проставленными приоритетами.

После идентифицирующих строк, описывается сам шаблон: седьмая и восьмая строки описывают правило «найти все аннотации, соответствующие шаблону Lookup. majortype == «Sports” и присвой им имя label. Символ «—>» является границей, после которой описывается правая часть правила. Строка 10 посылает команду для JAPE Transducer о переименовании label (определенной на строке 8) в «Sport». А правило, по которому она была определена, именуется «SportsCategory».

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

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

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

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

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

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

.        Реализация функции выявления ошибок в коде. Необходимо рассмотреть, как разработчики реализуют обработку ошибок в получившемся у пользователя коде.
1.4 Редактор создания структур баз данных «WWW SQL Designer»

«WWW SQL Designer» позиционируется как абсолютно бесплатный, доступный для пользователей, универсальный веб-редактор, значительно упрощающий процесс создания структуры хранилищ и баз данных для более известных и популярных СУБД [6]. Упрощение работы достигается путем автоматического генерирования скриптов на основе построенной ER-диаграммы. Однако для создания массивных хранилищ такой редактор не подойдет, ввиду того, что создавать их в визуальном представлении гораздо проблематичнее, чем описать скриптами или создать с помощью СУБД.

Для работы с «WWW SQL Designer» пользователю необходимо лишь открыть его в браузере (разработчики гарантируют правильную работу на Mozilla Firefox, IE, Safari и Opera, работа основных функций была проверена на Google Chrome). Для корректной работы не нужно устанавливать никаких дополнительных библиотек или расширений для браузера, достаточно только включить разрешение на выполнение JavaScript команд. Генерация кода реализована под наиболее популярные СУБД: MS SQL, MySQL, SQLite, Oracle, PostgresSQL и другие. Все эти функции делают данный редактор универсальным и общедоступным. Более того, в нем реализованы все необходимые для построения структур баз данных функции: создание уникальных полей (ключей), внешних ключей, добавление комментариев, типизирование полей и т.д.

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

По сути, вся работа веб-редактора строится на генерации кода, на основе уже готовых шаблонов, которые пользователь только добавляет на диаграмму. Ему вообще не нужно работать с кодом на протяжении всего процесса создания диаграммы, только получив в результате скрипт, применить его в нужной СУБД. Такая изоляция гарантирует правильность конечного результата, т.к. весь код находится под управлением программы. Так же она будет наиболее удобна для пользователей, ранее не работавших со скриптами. Возможности же обратной генерации — ER-диаграммы на основе введенного скрипта — нет. Импорт возможен только из сохраненного ранее файла в формате. xml.
1.5 Веб-редактор для создания UML диаграмм «CodeUML»

Проект CodeUML.com является частью проекта PlantUML, созданного одноименной командой разработчиков. Это проект с открытым исходным кодом, который позволяет быстро создавать различные UML диаграммы в браузере, не устанавливая дополнительного программного обеспечения [7]. Точных данных, на каких браузерах проект будет работать, не найдено, но проверено, что основные функции он выполняет на таких браузерах, как IE, Google Chrome, Mozilla Firefox и Safari. Распространяется он бесплатно, можно лишь по желанию пользователя поддержать проект.

Разработчики позиционируют редактор как доступный любому, значительно ускоряющий процесс создания UML диаграмм инструмент. Однако для его использования необходимо изучить язык PlantUML, с помощью которого и достигается увеличение эффективности работы. Таким образом, можно предположить, что этот инструмент наоборот, создавался для программистов, которым легче описать диаграмму в текстовом виде, чем в визуальном, т.к. девиз проекта звучит как «design UML diagrams as fast as you can code», что значит «создавай UML диаграммы так быстро, насколько ты можешь запрограммировать».

Сохранение диаграммы происходит как обычное сохранение картинки из браузера (в формате. png), а кода — копированием текста. Таким образом, сохранить текст можно в любом удобном для пользователя формате. Функции экспорта и импорта не поддерживаются, можно лишь создать новую диаграмму.

Слева для пользователя предоставлен набор шаблонов, значительно упрощающих работу с языком PlantUML. Значит, даже неподготовленные пользователи смогут работать с веб-редактором и избежать некоторых ошибок. Конечным результатом работы считается диаграмма, а не программный код, поэтому, ее редактирование невозможно. Из-за непосредственного доступа пользователя к коду на PlantUML, разработчиками был реализован компилятор, сразу выдающий ошибку вместо диаграммы.
1.6 Онлайн редакторы «Pencilcode» и «Scratch» для визуальных языков

Веб-редакторы «Pencilcode.net» [8] и «Scratch» [9] позиционируются как обучающие или редакторы для начинающих программировать. Их целесообразно рассмотреть в данном исследовании для выявления методов упрощения понимания пользователем языка программирования. «Pencilcode» был создан командой «Pencil Code», он визуализирует язык Coffeescript, но так же поможет изучить Javascript, HTML, и CSS. Так же для обучения языку издано множество книг и учебников. Scratch создан «Lifelong Kindergarten Group», визуализирует одноименный язык, который тоже содержит переменные, ветвления, циклы и др. С помощью этого языка можно создавать интерактивные истории, игры и анимации. Оба редактора направлены на максимальное упрощение обучения программированию.

Оба редактора работают в онлайн режиме и для их использования не нужно устанавливать дополнительного программного обеспечения. Для того чтобы воспользоваться функциями сохранения и загрузки файлов в «Pencilcode» необходимо зарегистрироваться, однако не нужно вводить никаких персональных данных, только псевдоним и пароль. Все файлы хранятся на сервере разработчиков, их нельзя скачать на локальный компьютер. Из «Scratch» разработанные программы можно сохранить на компьютер в виде файлов в формате. sb2. Так же их можно загрузить и дорабатывать. Так как оба редактора ориентированы на конкретные языки, и для обучения, показывать исходный код нет необходимости, пользователь видит только свою программу на визуальном языке, и сохраняет и загружает файлы с ней.

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

Ввиду того, что для языка JAPE не предусмотрен специализированный редактор, разработчики рекомендуют использовать Vim [10] или Eclipse [11], ассоциировав файлы с расширением. jape с одной из этих программ. Vim — это продвинутый текстовый редактор, подобный Notepad++, Sublime и другим, который позволяет лишь подсветить ключевые слова и помочь в организации скобок. Eclipse так же не предназначен для JAPE, хотя поддерживает множество языков. Как и Vim, эта среда может быть использована как текстовый редактор.

Оба этих редактора — настольные приложения, поэтому их требуется скачать и установить. Скачать их можно бесплатно с официальных сайтов. Они не могут предоставить визуализацию языка JAPE, редактировать его можно только в текстовом формате. Ввиду того, что Eclipse преимущественно используется как IDE для Java, имеет довольно богатый функционал, совершенно бесполезный для файлов с JAPE. В таком случае, лучше установить Vim, т.к. он изначально создавался как универсальный редактор для множества языков.

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

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

В ходе исследования, было рассмотрено шесть редакторов. Два из них — веб-редакторы, позволяющие разрабатывать диаграммы и генерировать на их основе программный код и наоборот. Еще два — редакторы, рекомендованные разработчиками для редактирования лексико-семантических шаблонов на языке JAPE. Последние не предоставляют возможности визуализации языка, поэтому требуют длительной подготовки пользователя для работы. «WWW SQL Designer» позволяет полностью сгенерировать готовый программный код на основе составленной пользователем диаграммы, а «CodeUML» наоборот, на основе текстового языка PlantUML генерирует UML диаграммы различного типа. «Pencilcode» и «Scratch» вообще не дают доступа пользователя к коду, что исключает возможность появления ошибок и весь процесс создания программы контролируется, а диаграммы сохраняются в виде файлов с уникальным расширением специально для этих редакторов. Прежде чем был проведен обзор, были выделены критерии сравнения аналогов, приведенные в пункте 1.1 Результаты сравнения приведены в таблице 1.1.

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

Рассмотренные веб-редакторы, не предназначенные для языков для описания лексико-семантических шаблонов, выявило ряд полезных функций, которые помогли бы упростить изучение языка JAPE и ускорить знакомство и начало работы с ним, а также, дальнейшее использование. Так, была выявлена особенность веб-редакторов «WWW SQL Designer», «Pencilcode» и «Scratch», что полностью исключает появление ошибок в коде, который будет получен в результате, за счет полной изоляции пользователя от него. В веб-редакторе «CodeUML» выявлена функция использования уже готовых шаблонов — блоков, вставив которые, пользователь уже может использовать полученный код или дорабатывать его. Эта функция опять же, ускорит работу и поможет избежать ошибок, которые может сделать пользователь.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

Таблица 1.1 Сравнение аналогов и существующих редакторов для JAPE

 

Таким образом, было решено создать веб-редактор, который бы не требовал установки дополнительного программного обеспечения для корректной работы, т.к. это наиболее простой вариант начала использования редактора пользователем. Редактор будет обеспечен справочной системой, однако она будет реализована на последующих итерациях разработки. Главная задача — визуализация языка, поэтому веб-редактор будет обладать функцией генерации программного кода на основе диаграммы, но не наоборот. Это оградит пользователя от возможных ошибок в коде. Результатом работы программы будет текстовый файл в формате. jape, в котором будет описан код на JAPE, сгенерированный по разработанной пользователем диаграмме. В дальнейшем этот файл будет храниться в облачном хранилище. Чтобы диаграммы можно было переиспользовать, необходимо реализовать функции сохранения и импорта. Для разработки веб-редактора для языка JAPE была выбрана платформа Java, т.к. на данный момент это наиболее широко используемая платформа для разработки веб-приложений [12], к тому же, позволяет создавать проекты с открытым исходным кодом.
1.9 Выбор инструмента для визуализации диаграмм

Для визуализации диаграмм потребуется инструмент, который позволил бы создавать растровые или векторные изображения на веб-странице. Графический API WebGL не рассматривался, т.к. он используется для решения более сложных задач, в основном, для создания интерактивной 3D-графики. Выбор производился из двух наиболее популярных на данный момент вариантов: Canvas [13] или SVG [14]. В таблице 1.2 представлено сравнение этих двух инструментов.

Canvas — это элемент HTML5, он предназначен для создания растровых изображений при помощи языка JavaScript. Имеет возможность добавления на холст видео, однако для создания диаграмм этой функции не потребуется. Для рисования можно использовать два разных подхода: 2D или 3D (WebGL). Все картинки, реализованные с помощью canvas, состоят из пикселей, это означат, что разработчику не нужно концентрироваться на ограничениях сложности изображения, однако у этой характеристики есть и отрицательная сторона. Не существует каких-либо файловых форматов, рисование возможно только с помощью скриптов.

SVG же имеет векторный графический формат, это язык разметки, основанный на XML. Это значит, что мы сможем сохранить созданные диаграммы в формальном виде и затем, сгенерировать на их основе код на JAPE. Он поддерживает и декларативную и скриптовую графику. Однако, не имеет функции 3D отрисовки. Однако, этой функции и не требуется для рисования диаграммы Вирта.

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

Таблица 1.2 Сравнение инструментов для рисования на веб-странице

1.10 Выбор платформы для разработки

Ввиду того, что в качестве инструмента для описания графики был выбран SVG, клиентская часть приложения будет разрабатываться на JavaScript. Существует множество библиотек, которые позволяют упростить работу с SVG [15], среди них была выбрана Raphael. js [16], т.к. это наиболее широко используемая библиотека с открытым исходным кодом, которую можно свободно использовать в соответствии с лицензией Apache2, и пользоваться исходным кодом с GitHub. Так же, ее отличительной особенностью является то, что она направлена на будущие разработки, поддерживает новейшие функции SVG (такие как управление группами объектов, что важно для данной разработки). Соответственно, для описания стилей будет использован язык CSS.

Реализация серверной части приложения будет производиться на языке Java, т.к. на сегодняшний момент этот язык наиболее популярен, а значит, востребован [17]. Так же преимуществами этой платформы является свободно-распространяемое программное обеспечение для разработки (среда разработки Eclipse, сервер Tomcat) и открытый исходный код, что позволит переиспользовать уже разработанные модули для нового проекта.
Глава 2. Проектирование визуальных конструкций на основе языка JAPE и выявление требований к веб-редактору для них
2.1 Проектирование визуальных конструкций

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

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

Этот элемент и является шаблоном для извлечения информации из текста.

Это может быть как обычный идентификатор, так и «BasicPatternElement» или «ComplexPatternElement». Диаграмма Вирта для «BasicPatternElement» (объединенная с «Constraint») описана на рисунке 2.1:

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

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

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

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

Одна визуальная диаграмма будет представлять собой одну фазу («Phase»). С одним правилом («Rule»). Такое решение было принято в связи с тем, что данный вид шаблонов наиболее читаем для начинающих пользователей, а значит, понятен, и, позволит максимально упростить процесс их создания. Таким образом, фаза («Phase»), описанная в виде диаграммы Вирта на рисунке 2.3 Будет преобразована в объект, который и будет представлять собой поле для создания диаграммы. Так как было решено использовать SVG для генерации графики, «полотном» для создания всех объектов будет тэг «», он и будет представлять собой описание фазы и правила в ней. Таким образом, описание фазы с рисунка 2.4 на языке XML будет выглядеть следующим образом (атрибуты тэга, необходимые для визуализации опущены): «». Атрибуты описывающие «Input» и «Options» будут опущены, т.к. было решено оставить их по умолчанию, т.к. для начинающих пользователей эти атрибуты вызывают непонимание. В последующих итерациях разработки они могут быть лего добавлены.

Рисунок 2.3 Описание фазы языка 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 будут исключены.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

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

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

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

Для того, чтобы интерпретировать XML представление в язык JAPE, был использован язык преобразования XSLT [18]. Данный язык и будет служить транслятором, с его помощью исходный код диаграммы возможно модифицировать по усмотрению разработчика. Как было показано на рисунке 2.9, синтаксический анализ исходной страницы XML будет проводиться на стороне сервера.

Для того, чтобы преобразование было возможным на стороне сервера, необходимо использовать XSLT API, TransformerFactory. Метод newTransformer (stylesource) позволяет создать трансформер, на основе переданного набора шаблонов на языке XSLT. Далее, для запуска трансформации, необходимо запустить метод transform (source, result), в который передается файл для трансформации и переменная, в которую необходимо поместить результат преобразования [19].

Так, на сервер будет отправлен файл в формате. txt, далее он будет преобразован в формат. jape и сохранен в облачное хранилище. Для преобразования XML представления необходимо опустить все атрибуты стиля, такие как: цвет границы, тип и размер шрифта; опустить позиционирующие объект атрибуты (координаты и трансформации над фигурой). В связи с тем, что все необходимые атрибуты для описания лексико-семантического шаблона на языке JAPE находятся именно в фигурах (обозначаемых тегами и ), было решено пропускать теги в виду их не информативности, т.к. они предназначены лишь для работы с пользователем. Все фигуры, связанные линиями (элементы с тэгом ) последовательно, будут преобразованы в правила, объединенные логическим «И». Если будут найдены линии, у которых второй объект (obj2) будет совпадать, это означает, что два этих правила будут объединены логическим «ИЛИ». Одна диаграмма (начинающаяся с элемента «Start» и заканчивающаяся «Finish»), будет объединена в фигурные скобки и выделена как отдельное правило JAPE.

С помощью XSLT были разработаны средства для извлечения нужных атрибутов для формирования правил на языке jape. Например, ниже представлен отрывок из. xml документа, в котором описан » Lookup» со всеми необходимыми для отображения этого объекта на диаграмме атрибутами:

 

 

 

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

 

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

: : :

 

</xsl: template>

 

()

</xsl: template>

 

{

.

 

 

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

</xsl: if>

</xsl: template>

</xsl: stylesheet>

Первый шаблон обращен к корневому элементу (

), из которого можно извлечь необходимые для описания лексико-семантического шаблона на языке JAPE атрибуты: название фазы, название правила и приоритет правила. После этого к элементу применяется («xsl: apply-templates») следующий шаблон — template match=»svg». При помощи него мы опускаемся на ступень ниже по иерархии тегов в элемент.

Под тэгом и будут находиться все объекты диаграммы, например . Однако, в связи с тем, что все типы объектов («Lookup», «Token») представлены одинаковым тегом, необходимо различать их по атрибуту «objectType». Для этого добавлен оператор сравнения «if», который проверяет атрибут на эквивалентность со строкой «Lookup». В результате трансформации представленного отрывка. xml файла при помощи шаблонов из. xsl, будет получен следующий результат:

Phase: ExtractTitle Rule: ExtractWithoutSs Priority: 5

({ Lookup. majorType==Title})

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

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

Глава 3. Разработка веб-редактора для описания лексико-семантических шаблонов на визуальном языке
3.1 Реализация клиентской части приложения

На языке JavaScript, в соответствии с диаграммой классов, представленной в приложении Б, были разработаны объекты клиентской части приложения. В ходе разработки, возникла необходимость в создании класса «WebForm», который содержит обработчики событий для кнопок и объектов веб-редактора. Так же необходим метод «init», который, при запуске веб-формы связывает компоненты с их обработчиками событий. Так, всем кнопкам были назначены функции обработки события «onClick», а так же инициализирован обработчик события выделения графического объекта на диаграмме.
3.2 Реализация графического представления объектов

Библиотека для генерации векторных изображений Raphael. js предоставляет возможности по рисованию таких объектов как прямоугольник, эллипс, текст или линию. Однако, для создания объектов в соответствии с рисунком 2.7 необходимо соединить два объекта — прямоугольник и текст. Для этого используется «set», он объединяет объекты в массив, при этом, в XML представлении, они объединяются в тэг или . Даже после такого объединения фигуры будут вести себя как два отдельных объекта, поэтому было необходимо разработать алгоритм по их совместному передвижению при перетаскивании по холсту при нажатой кнопке мыши.

Функция «drag ()» — предоставляет стандартный алгоритм для перемещения объектов, однако она может быть измененная по усмотрению разработчика, путем переопределения трех функций: начало передвижения, передвижение и окончание передвижения. Названия у них могут быть различными, главное, что их необходимо передать как параметры в функцию «drag» в правильном порядке. Прежде всего, для того, чтобы у объектов текста и прямоугольника была ссылка друг на друга, при создании объекта, определим для них атрибуты «pair»: прямоугольник имеет значением атрибута текст, а текст — прямоугольник. Таким образом, два объекта будут связаны друг с другом.

Для того, чтобы пользователю было видно, что фигура выделена и ее можно перетаскивать по холсту, выделим ее с помощью затемнения. Это действие производится в функции «preMoving», которая определяет действия, выполняемые над объектом при начале движения. После этого, необходимо вычислить начальные координаты фигуры. Ввиду того, что объектом может быть не только прямоугольник, но и эллипс, необходимо сделать проверку на тип фигуры, т.к. координаты разного типа фигур задаются по-разному. Вне зависимости от того, на какую из фигур попал пользователь (текст или прямоугольник), благодаря ассоциативной связке посредством атрибута «pair» возможно вычислить координаты парного элемента. На этом задачи функции заканчиваются. Функция «move» определяет порядок движения для пары фигур. Фактически, она меняет координаты x и y от ранее определенных в первой функции, в зависимости от передвижения. Функция «postMoving» убирает выделение объекта (затемнение), которое было сделано на первом шаге.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Разработанные функции передвижения будут актуальны для всех подобных типов фигур — пар объектов фигура-текст, даже если текст не будет помещен внутри.

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

При создании нового объекта необходимо указать его цвет, цвет и размер текста в нем и вид курсора мыши при наведении на объект.

Таким образом было выделено два объекта — «Lookup» и «Token». Их графическое представление проиллюстрировано на рисунке 3.1:

Рисунок 3.1 Графическое представление объектов «Token» и «Lookup»

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

Рисунок 3.2 Графическое представление начала и окончания выражения правила шаблона
3.3 Реализация алгоритма соединения объектов линией

Для того, чтобы строить диаграммы в соответствии с рисунком 2.7, необходимо реализовать алгоритм соединения двух объектов линией. Для отображения линии на svg холсте, необходимо задать две точки — первая и вторая фигура. Для этого на этапе проектирования у объекта «Path» было определено два атрибута «obj1» и «obj2». Прорисовать линию между ними не составляет сложности, однако, обе этих фигуры динамические, а это значит, что при перемещении одной из них вторая координата (вторая точка) будет изменяться вместе с координатами фигуры. В связи с этим, прорисовку линии необходимо обновлять в функции «move», определенной в пункте 3.2.

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

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

Рисунок 3.4 Создание новой диаграммы в веб-приложении

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

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

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

На рисунке 2.6 представлен пример лексико-семантического шаблона, который аннотирует все заголовки, не начинающиеся с буквы S или s меткой «TitleWithoutS» (взят из руководства пользователя с официального сайта платформы GATE). На рисунке 3.3 проиллюстрировано графическое представление данного шаблона. Диаграмма выполнена в разработанном редакторе. В результате сохранения диаграммы будет получен файл, который представлен в приложении Г.

Рисунок 3.3 Лексико-семантический шаблон, разработанный с помощью веб-редактора
3.5 Выводы по результатам реализации редактора

В ходе исследования был разработан веб-редактор для визуального языка в соответствии с требованиями, выделенными в главе 2, по результатам опроса конечных пользователей и обзору существующих решений. В соответствии с визуальными представлениями, спроектированными под пунктом 2.2., используя инструмент генерации графики SVG и библиотеку Raphael JS, были разработаны графические объекты диаграммы, основанные на конструкциях языка JAPE.

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


Заключение

В ходе работы были достигнуты следующие результаты:

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

2.      Рассмотрены существующие доступные средства для описания шаблонов на языке JAPE («Eclipse» и «Vim»). Однако ни один из этих редакторов не ориентирован на язык JAPE. Рассмотрены веб-редакторы для создания диаграмм, предоставляющих возможность генерации кода («WWW SQL Designer» и «CodeUML») и для визуальных языков («Scratch» и «Pencilcode»), которые были разработаны для начинающих пользователей. По итогам обзора были выделены требования к разрабатываемому веб-редактору.

.        В качестве платформы для разработки была выбрана Java, для разработки клиентской части приложения — HTML5, JavaScript и язык описания стилей CSS. Для разработки были использованы бесплатные инструменты — сред разработки Eclipse и сервер Tomcat. В качестве средства для визуализации конструкций выбран SVG. Raphael. js — библиотека для SVG, была выбрана, т.к. осуществляет поддержку генерации XML кода на большинстве браузеров, включая старые версии и позволяет более эффективно использовать JavaScript для рисования.

.        Для разработки интерпретатора был выбран язык преобразования текста в формате XML — XSLT. Разработаны шаблоны для излечения информативных атрибутов из графических объектов.

5.      Выделенные функциональные требования для веб-редактора смоделированы с помощью нотации UML.

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

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

DOM — Document Object Model

ООП — объектно-ориентированное программирование- General Architecture of Text Engineering- Java Annotation Patterns Engine- System for Text Analysis- Scalable Vector Graphics- eXtensible Stylesheet Language Transformations
Библиографический список

1.      «АОТ» — Автоматическая Обработка Текста [Электронный ресурс] URL: #»896779.files/image020.gif»>
Приложение Б. Диаграмма классов клиента


Приложение В. Функции соединения и перемещения объектов

connection = function (obj1, obj2, line, bg) { // соединить две фигуры линией

/*obj1 — объект, от которого начинается линия*/

/*obj2 — объект, к которому тянется линия*/

/* line — передается, если линия между объектами уже существует для ее перерисовки

при передвижении объектов по холсту*/

/* bg — цвет линии*/ if (obj1. line && obj1. from && obj1. to) { line = obj1;= line. from;= line. to;

} var bb1 = obj1. getBBox (), bb2 = obj2. getBBox (),

/* p — набор точек, доступных для рисования одного из концов линии. P [0.3] — точки на первой фигуре, p [4.7] — на второй*/ points = [{x: bb1. x + bb1. width / 2, y: bb1. y1}, {x: bb1. x + bb1. width / 2, y: bb1. y + bb1. height + 1}, {x: bb1. x1, y: bb1. y + bb1. height / 2}, {x: bb1. x + bb1. width + 1, y: bb1. y + bb1. height / 2}, {x: bb2. x + bb2. width / 2, y: bb2. y1}, {x: bb2. x + bb2. width / 2, y: bb2. y + bb2. height + 1}, {x: bb2. x1, y: bb2. y + bb2. height / 2}, {x: bb2. x + bb2. width + 1, y: bb2. y + bb2. height / 2}], dist_points = {}, // набор номеров точек, для которых посчитана дистанция

distances = []; /*набор дистанций между двумя точками с одной и второй фигуры*/

// i-ый элемент массива d соответствует двум точкам для которых посчитана дистанция в массиве dis под тем же индексом for (var i = 0; i < 4; i++) { for (var j = 4; j < 8; j++) { var dx = Math. abs (points [i]. xpoints [j]. x), dy = Math. abs (points [i]. ypoints [j]. y);

if ( (i == j — 4) || ( ( (i! = 3 && j! = 6) || points [i]. x < points [j]. x)

&& ( (i! = 2 && j! = 7) || points [i]. x > points [j]. x) && ( (i! = 0

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

&& j! = 5) || points [i]. y > points [j]. y) && ( (i! = 1 && j! = 4)

|| points [i]. y < points [j]. y))) { distances. push (dx + dy);_points [distances [distances. length — 1]] = [i, j];

} } }

var result_points;

if (distances. length == 0) // если линия проведена от фигуры к самой себе result_points = [0, 4]; // линия из точки в себя же else resulted_points = dist_points [Math. min. apply (Math, distances)]; /*ищем две

точки между которыми минимальная дистанция и помещаем в res*/ var x1 = points [res [0]]. x, y1 = points [res [0]]. y, x4 = points [res [1]]. x, y4 = points [res [1]]. y; // кординаты для линии dx = Math. max (Math. abs (x1 — x4) / 2,10);= Math. max (Math. abs (y1 — y4) / 2,10);

var x2 = [x1, x1, x1 — dx, x1 + dx] [result_points [0]]. toFixed (3), y2 = [y1 — dy, y1 + dy, y1, y1] [result_points [0]]. toFixed (3), x3 = [0, 0, 0, 0, x4, x4, x4 — dx, x4 + dx] [result_points [1]]. toFixed (3), y3 = [0, 0, 0, 0, y1 + dy, y1 — dy, y4, y4] [result_points [1]]. toFixed (3);

var path = [«M», x1. toFixed (3), y1. toFixed (3), «, x2, y2, x3, y3,x4. toFixed (3), y4. toFixed (3)]. join («,»);

if (line && line. line) { line. bg && line. bg. attr ({path: path});. line. attr ({path: path});

} else { var color = typeof line == «string»? line: «#000″;

return { bg: bg && bg. split && this. path (path). attr ({stroke: bg. split («|») [0],

fill: «none», «stroke-width»: bg. split («|») [1] || 3}), line: this. path (path). attr ({stroke: color, fill: «none», ‘stroke-‘: 2}), from: obj1, to: obj2 };

} };

var preMoving = function () { // подготовка к перемещению фигуры // извлечение начальных координат фигуры this. ox = this. type == «ellipse»? this. attr («cx»): this. attr («x»);

this. oy = this. type == «ellipse»? this. attr («cy»): this. attr («y»);

if (this. type! = «text») this. animate ({«fill-opacity»:.2}, 500);

/* извлечение начальных координат для группы фигур (фигура+текст внутри

нее) */ this. pair. ox = this. pair. type == «ellipse»? this. pair. attr («cx»):

this. pair. attr («x»);

this. pair. oy = this. pair. type == «ellipse»? this. pair. attr («cy»):

this. pair. attr («y»);

/*выделение перемещаемой фигуры*/ if (this. pair. type! = «text») this. pair. animate ({«fill-opacity»:.2},

);

};

var move = function (dx, dy) { // перемещение фигуры // перемещение для фигуры var att = this. type == «ellipse»? {cx: this. ox + dx, cy: this. oy + dy}:

{x: this. ox + dx, y: this. oy + dy};

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

this. attr (att);

// перемещение для текста att = this. pair. type == «ellipse»? {cx: this. pair. ox + dx, cy:

this. pair. oy + dy}:

{x: this. pair. ox + dx, y: this. pair. oy + dy};

this. pair. attr (att);

// перемещение соединительной линии for (var i = connections. length; i—;) { r. connection (connections [i]);

} };

var preMoving =postMoving = function () { // завершение перемещения фигуры

/*отмена выделения перемещаемой фигуры*/ if (this. type! = «text») this. animate ({«fill-opacity»: 0}, 500);

if (this. pair. type! = «text») this. pair. animate ({«fill-opacity»: 0}, 500);

};
Приложение Г. Функции соединения и перемещения объектов

xmlns: xlink=»http://www.w3.org/1999/xlink» height=»760″ version=»1.1″=»1000″ style=»overflow: hidden; position: relative; «>

Средняя оценка 0 / 5. Количество оценок: 0

Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

410

Закажите такую же работу

Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке