Проектирование интерпретатора - Разработка веб-редактора для описания лексико-семантических шаблонов на визуальном языке
Для того, чтобы интерпретировать XML представление в язык JAPE, был использован язык преобразования XSLT [18]. Данный язык и будет служить транслятором, с его помощью исходный код диаграммы возможно модифицировать по усмотрению разработчика. Как было показано на рисунке 2.9, синтаксический анализ исходной страницы XML будет проводиться на стороне сервера.
Для того, чтобы преобразование было возможным на стороне сервера, необходимо использовать XSLT API, TransformerFactory. МетодnewTransformer(stylesource) позволяет создать трансформер, на основе переданного набора шаблонов на языке XSLT. Далее, для запуска трансформации, необходимо запустить метод transform(source, result), в который передается файл для трансформации и переменная, в которую необходимо поместить результат преобразования [19].
Так, на сервер будет отправлен файл в формате. txt, далее он будет преобразован в формат. jape и сохранен в облачное хранилище. Для преобразования XMLпредставления необходимо опустить все атрибуты стиля, такие как: цвет границы, тип и размер шрифта; опустить позиционирующие объект атрибуты (координаты и трансформации над фигурой). В связи с тем, что все необходимые атрибуты для описания лексико-семантического шаблона на языке JAPE находятся именно в фигурах (обозначаемых тегами <rect>и <ellipse>), было решено пропускать теги <text> в виду их не информативности, т. к. они предназначены лишь для работы с пользователем. Все фигуры, связанные линиями (элементы с тэгом <path>) последовательно, будут преобразованы в правила, объединенные логическим "И". Если будут найдены линии, у которых второй объект (obj2) будет совпадать, это означает, что два этих правила будут объединены логическим "ИЛИ". Одна диаграмма (начинающаяся с элемента "Start" и заканчивающаяся "Finish"), будет объединена в фигурные скобки и выделена как отдельное правило JAPE.
С помощью XSLT были разработаны средства для извлечения нужных атрибутов для формирования правил на языке jape. Например, ниже представлен отрывок из. xml документа, в котором описан " Lookup"со всеми необходимыми для отображения этого объекта на диаграмме атрибутами:
<div id="svgout" priority="5" phase="ExtractTitle" rule="ExtractWithoutSs" onclick="getEventElement()"><svg height="760" version="1.1" width="1000">
...
<rect x="204" y="76" width="37.25" height="40" rx="10" ry="10" fill="#0000ff" stroke="#0000ff" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); fill-opacity: 0; cursor: move;" stroke-width="2" fill-opacity="0" indexInArray="8" ident="id_1464204248325" objectType="Lookup" propertyName="majorType" propertyValue="Title" operation="==" propertyType="String"></rect>
...
</svg></div>
В. xsl файл, для извлечения только нужных элементов и атрибутов, необходимо поместить следующие шаблоны:
<xsl:stylesheet ...>
<xsl:template match="div">
Phase: <xsl:value-of select="@phase"/>
Rule: <xsl:value-of select="@rule"/>
Priority: <xsl:value-of select="@priority"/>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="svg">
(<xsl:apply-templates select="rect"/> )
</xsl:template>
<xsl:template match="rect">
<xsl:if test="@objectType= 'Lookup'">{
<xsl:value-of select="@objectType"/>.
<xsl:value-of select="@propertyName"/>
<xsl:value-of select="@operation"/>
<xsl:value-of select="@propertyValue"/>}
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Первый шаблон обращен к корневому элементу (<div>), из которого можно извлечь необходимые для описания лексико-семантического шаблона на языке JAPE атрибуты: название фазы, название правила и приоритет правила. После этого к элементу применяется ("xsl:apply-templates") следующий шаблон - templatematch="svg". При помощи него мы опускаемся на ступень ниже по иерархии тегов в <svg>элемент.
Под тэгом <svg>и будут находиться все объекты диаграммы, например <rect>. Однако, в связи с тем, что все типы объектов ("Lookup", "Token") представлены одинаковым тегом, необходимо различать их по атрибуту "objectType". Для этого добавлен оператор сравнения "if", который проверяет атрибут на эквивалентность со строкой "Lookup". В результате трансформации представленного отрывка. xml файла при помощи шаблонов из. xsl, будет получен следующий результат:
Phase: ExtractTitleRule:ExtractWithoutSsPriority: 5
({ Lookup. majorType==Title})
Данная строка уже практически соответствует готовому шаблону на языке JAPE, не хватает лишь правой части правила. Как было описано выше, элементы правой части будут извлекаться из объектов диаграммы начала и конца.
Наибольшую трудность в разработке шаблонов для модификации. xml файла составляют линии, соединяющие различные объекты, т. к. необходимо записывать правила в соответствии с положением визуального объекта на линии.
Похожие статьи
-
Проектирование визуальных конструкций Вторая глава описывает процесс трансформации текстового языка JAPE в визуальный язык, который позволит описывать...
-
Для того, чтобы строить диаграммы в соответствии с рисунком 2.7, необходимо реализовать алгоритм соединения двух объектов линией. Для отображения линии...
-
Ввиду того, что для языка JAPE не предусмотрен специализированный редактор, разработчики рекомендуют использовать Vim[10] или Eclipse[11], ассоциировав...
-
В ходе работы были достигнуты следующие результаты: Проведен обзор платформы GATE и языка для описания лексико-семантических шаблонов JAPE. Выявлена...
-
Введение - Разработка веб-редактора для описания лексико-семантических шаблонов на визуальном языке
Объем неупорядоченной и неструктурированной текстовой информации неуклонно растет, поэтому задача ее быстрой и качественной обработки актуальна сегодня...
-
Реализация клиентской части приложения На языке JavaScript, в соответствии с диаграммой классов, представленной в приложении Б, были разработаны объекты...
-
"WWWSQLDesigner" позиционируется как абсолютно бесплатный, доступный для пользователей, универсальный веб-редактор, значительно упрощающий процесс...
-
В главе рассмотрены существующие решения веб-редакторов, позволяющих создавать разного типа диаграммы и генерировать на их основе программный код. Так же...
-
JAPE позволяет анализировать текст на основе регулярных выражений. Грамматика этого языка состоит из фаз, которые сдержат в себе набор шаблонов и/или...
-
В ходе исследования был разработан веб-редактор для визуального языка в соответствии с требованиями, выделенными в главе 2, по результатам опроса...
-
Лингвистический процессор GATE GATE представляет собой инфраструктуру для разработки и развертывания компонентов программного обеспечения, которые...
-
Проектирование и разработка сайта Средства разработки Язык гипертекстовой разметки HTML В Интернете сосредотачивается и передается достаточно большое...
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
Тестируемый программный продукт является высокопроизводительным приложением, которое предоставляет возможность создания и настройки сетей беспроводного...
-
Языки описания порождающих правил - Инструментальные средства разработки экспертных систем
Но, естественно, возможности языков высокого уровня также не беспредельны -- каждый из них имеет свои ограничения. Например, в языке OPS5 возможности...
-
Проектирование модели - Разработка программного приложения "Калькулятор коммунальных услуг"
При проектировании информационных систем предметная область отображается моделями данных нескольких уровней. Число используемых уровней зависит от...
-
Разработка концептуальной модели АИС - Проектирование автоматизированной информационной системы
Любая деятельность компании отражается в документах, и, чтобы улучшить качество рабочих бизнес-процессов, необходимо улучшить документооборот, т. е....
-
Концепция построения программы Список всех классов приведен на рисунке 3.1. Рисунок 3.1 - Диаграмма классов программы В качестве главного класса...
-
Алгоритм работы декодера кода Рида - Маллера будем разрабатывать на основе уже приведенных выше уравнений. Алгоритм приведен на рисунке 12. В начале...
-
Обоснование выбора средств для разработки В качестве платформы была взята платформа NET, потому что платформа NET на текущий момент самая передовая и...
-
Разработка приложения на языке C++ - Программирование на языке C++
C++ - объектно-ориентированный язык программирования. Разработан в 1998--2001 годах группой инженеров под руководством Андерса Хейлсберга в компании...
-
Рентгеновский симулятор - это аппарат для определения величины и положения (ориентации и удаления от излучателя) области облучения, а также маркирования...
-
Правила формального описания синтаксиса языка программирования - Основы программирования
Под синтаксисом языка программирования понимают правила построения корректных конструкций данного языка. Синтаксис языка можно описать формально. Для...
-
Завершив выбор схемы работы системы и общего принципа работы ее частей и выбрав тип базы данных, следует перейти к выбору языка программирования....
-
Объектно-ориентированные языки - Инструментальные средства разработки экспертных систем
В главе 12 мы уже обращали ваше внимание на то, что формат правил хорошо согласуется с представлением знаний в форме "при выполнении условий СЬ ..., С"...
-
Структурная схема умного почтового ящика Основой программно-аппаратного комплекса является одноплатный компьютер Raspberry Pi. Программный интерфейс...
-
При разработке практически всех инструментальных средств за основу принимается методология автоматизации проектирования на базе использования прототипов....
-
Общие сведения о программе Программа разработана для демонстрации возможностей языка C++ и может использоваться для пользователей, которые не знакомы с...
-
В документации к sane-backends содержится описание флага wait-for-button. Данный флаг взаимодействует с утилитой scanimage, который ожидает нажатия любой...
-
3.1 Описание программного модуля Jadex - это агент, ориентированный на собственный механизм принятия решений, взаимодействуя с XML и Java файлами,...
-
Обоснование выбора СУБД База данных - это совокупность сведений о реальных объектах, процессах, событиях или явлениях, относящихся к определенной теме...
-
Общее описание программного обеспечения, реализующего разработанный алгоритм Основной идеей дипломного проекта, является реализация алгоритма...
-
Требования к приложению Результатом дипломного проекта "Калькулятор коммунальных услуг" должно служить достижение и решение поставленных задач: -...
-
Стадии разработки ПО - Объектно-ориентированный подход и диаграммы классов в UML
В [4] так определяются этапы объектно-ориентированного подхода к разработке ПО: Объектно-ориентированный анализ (analysis) - способ анализа, изучающий...
-
Общие требования Прежде чем начинать формулировать требования к пользовательскому интерфейсу, было принято решение, что необходимо ознакомиться с...
-
В программе присутствуют следующие основные модули: - PlatformManager - DeviceManager - ScenariosManager - ScenarioEngine - ExportManager - ImportManager...
-
Разработать и создать аналог системной утилиты "Диспетчер задач" по дисциплине "Системное программирование". "Диспетчер задач" должен содержать следующие...
-
Описание существующей проблемы сбоев работы ПЛИС Проблема отсутствия специализированных микросхем под определенное воздействие КП с оптимальной...
-
Разработка сайта, Среда разработки web-сайта - Разработка сайта для компании
Среда разработки web-сайта При разработке web-сайта используются: - HTML - язык разметки web-страниц; - CSS - формальный язык описания внешнего...
-
Технические требования Техническое задание данной работы требует разработать программу для визуального редактирования HTML-кода. Программа должна быть...
Проектирование интерпретатора - Разработка веб-редактора для описания лексико-семантических шаблонов на визуальном языке