Новости

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

Работа добавлена:






Разработка веб-редактора для описания лексико-семантических шаблонов на визуальном языке на http://mirrorref.ru

Оглавление

  • Введение
  • Глава 1. Платформа GATE для обработки естественного языка
  • Лингвистический процессор GATE
  • Язык для описания лексико-семантических шаблонов JAPE
  • Критерии обзора существующих решений
  • Редактор создания структур баз данных «WWW SQL Designer»
  • Веб-редактор для создания UML диаграмм «CodeUML»
  • Онлайн редакторы «Pencilcode» и «Scratch» для визуальных языков
  • Настольные редакторы для языка JAPE
  • Сводная таблица сравнения аналогов
  • Выбор инструмента для визуализации диаграмм
  • Выбор платформы для разработки
  • Глава 2. Проектирование визуальных конструкций на основе языка JAPE и выявление требований к веб-редактору для них
  • Проектирование визуальных конструкций
  • Разработка визуального представления
  • Выявление требований для веб-редактора
  • Архитектура веб-приложения
  • Проектирование веб-редактора
  • Проектирование интерпретатора
  • Глава 3. Разработка веб-редактора для описания лексико-семантических шаблонов на визуальном языке
  • Реализация клиентской части приложения
  • Реализация графического представления объектов
  • Реализация алгоритма соединения объектов линией
  • Реализация основных функций веб-редактора
  • Выводы по результатам реализации редактора
  • Заключение
  • Список сокращений и условных обозначений
  • Библиографический список
  • Приложение А. Грамматика языка JAPE
  • Приложение Б. Диаграмма классов клиента
  • Приложение В. Функции соединения и перемещения объектов
  • Приложение Г. Функции соединения и перемещения объектов

Введение

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

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

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

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

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

  1. Провести обзор платформыGATE и ее инструмента для аннотирования текста.
  2. Провести системный анализ существующих редакторов для визуальных языков и языкаJAPE, рассмотреть их возможности, преимущества и недостатки.
  3. Рассмотреть инструменты, с помощью которых возможно реализовать веб-редактор и описать графические конструкции языка.
  4. Провести анализ языка JAPE, а именно, рассмотреть синтаксис языка, его возможности и принципы работы, с целью разработать визуальное представление его конструкций и определить правила трансформации текстового представления в графическое.
  5. Сформулировать и описать функциональные требования к веб-редактору.
  6. Создать исследовательский прототип веб-редактора для визуального языка, разработанного на основеJAPE, который позволит создавать, редактировать диаграммы и сохранять их на локальном компьютере.

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

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

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

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

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

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

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

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

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

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

  1. Комплексность.GATE включает в себя все необходимые инструменты для анализа текстов.
  2. Масштабируемость достигается путем множества возможностей и плагинов, которые предлагает данная система.
  3. Открытость, расширяемость и возможность многократного использования. Благодаря стандартам, описанным на базе опыта работы с пользователями системы и открытому (хорошо документированному) исходному коду, систему очень просто переиспользовать. Разработчикам представляется расширяемоеAPI и веб-службы для дальнейшего использования.
  4. Прозрачность. Благодаря раздельным компонентам системы и дополнительным плагинам, пользователю понятнее алгоритм анализа, т.к. он видит, что нужно подавать на вход каждому из компонент и что получается на выходе.
  5. Надежность. Система проходит контроль качества путем применения количественной оценки показателей, что гарантирует предсказуемое поведение.
  6. Устойчивый коэффициент полезного действия.

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

Рисунок 1.1. Компоненты платформы для анализа текстаGATE

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

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

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

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

описанный на языкеJAPE

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

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

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

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

В главе рассмотрены существующие решения веб-редакторов, позволяющих создавать разного типа диаграммы и генерировать на их основе программный код. Так же рассмотрены рекомендованные разработчиками [5] редакторы для языка JAPE. Главная цель создания веб-редактора для описания лексико-семантических шаблонов – максимально упростить работу пользователей с языком JAPE посредством визуального представления зыка, кроме того, необходимо, чтобы он работал непосредственно в браузере, без установки дополнительного программного обеспечения. Поэтому критериями сравнения существующих решений были выделены:

  1. Для решения каких задач были созданы рассматриваемые веб-редакторы. Под данным пунктом необходимо рассмотреть, как создатели позиционируют свой продукт, для каких языков и целей.
  2. Доступность. Необходимо выяснить, насколько пользователю просто начать работу с редактором, и какие функции доступны без приобретения лицензии, в каких браузерах гарантирована корректная работа.
  3. Форматы поддерживаемых файлов. В каких форматах можно будет сохранять полученный результат, и где будут храниться эти файлы.
  4. Возможность генерации фрагментов кода с помощью предоставленных шаблонов. Будет выяснено, есть ли в реакторе возможность вставки уже готовых шаблонов для дальнейшего их редактирования пользователем, т.к. данная возможность значительно ускорит работу.
  5. Возможность создания диаграмм, на основе которых будет сгенерирован программный код. Будет выяснено, возможно, ли, изменяя визуальное представление (диаграмму), генерировать программный код, а не наоборот.
  6. Реализация функции выявления ошибок в коде. Необходимо рассмотреть, как разработчики реализуют обработку ошибок в получившемся у пользователя коде.
  1. Редактор создания структур баз данных «WWW SQL Designer»

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

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

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

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

  1. Веб-редактор для создания 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. Онлайн редакторы «Pencilcode» и «Scratch» для визуальных языков

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

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

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

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

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

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

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

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

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

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

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

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

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

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

WWW SQL Designer

CodeUML

Vim/Eclipse

Pencilcode

Scratch

Целевые языки

SQLскрипты

PlantUML

Java

Coffescript, Javascript, HTML, CSS

Scratch

Доступность

Бесплатно, доступ из браузера без дополнительных надстроек

Бесплатно, доступ из браузера без дополнительных надстроек

Бесплатно, необходимо скачать установочный файл

Бесплатно, доступ из браузера без дополнительных надстроек, нужна регистрация.

Бесплатно, доступ из браузера без дополнительных надстроек

Обработка ошибок

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

С помощью встроенного компилятора вместо диаграммы отображается ошибка.

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

Выявление ошибок при запуске программы в виде сообщения

Исключено появление ошибок

Функция визуализации программного кода

-

+

-

+

+