Программная обработка текстов на естественном языке

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 21.09.2016
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

21

Размещено на http://www.allbest.ru/

Оглавление

Введение

Глава 1. Обзор реализаций лингвистических процессоров и инструментальных средств

1.1 Обзор лингвистических процессоров

1.1.1 Проект АОТ

1.1.2 Набор инструментов WordSmith Tools

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

1.1.4 Инструментарий AntConc

1.2 Выбор лингвистического процессора для разработки программных компонентов

1.3 Программный продукт IKVM.NET

Глава 2. Проектирование компонентов

2.1 Требования к функциональным характеристикам

2.1.1 Модуль для GATE API

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

2.1.3 Модуль для взаимодействия с пользователем

2.2 Выбор технологии для разработки программных компонентов

Глава 3. Разработка программных компонентов

3.1 Разработка модуля для GATE API

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

3.3 Разработка модуля для взаимодействия с пользователем

Заключение

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

Основные обозначения и сокращения

Приложение А. Диаграмма вариантов использования

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

Приложение В. Скриншоты программы

Приложение Г. Код программы

Введение

Впервые вопрос машинной обработки естественного языка возник в 1960_70гг. [1], и с тех пор такие задачи не потеряли своей актуальности. Напротив, программная обработка естественного языка постоянно развивается, что помогает решать огромное количество актуальных задач анализа текста, таких как извлечение информации, информационный поиск, анализ высказываний, анализ тональности и пр. Основные трудности обработки естественного языка -- это достаточно строгие требования к синтаксису, сложность в распознавании фраз, а также затраты времени и программных ресурсов, необходимых для работы системы. Несмотря на это, существует большое количество систем программной обработки естественного языка - лингвистических процессоров. Лингвистический процессор выполняет роль посредника между пользователем и базой данных, чья информация интересует пользователя. Задача такого процессора заключается в преобразовании текста на естественном языке в некий набор семантических структур. Данные структуры представляют собой формальный «смысл» исходного текста и используются в качестве исходных данных для поисковых механизмов СУБД.

Корпусная лингвистика - это раздел языкознания, который занимается разработкой, созданием и использованием корпусов текстов. Корпус текстов - это некоторое собрание текстов, в основе которых лежит логический замысел, идея, объединяющая данные тексты. Данная совокупность используется в качестве базы для исследования языка [2]. Так, корпусная лингвистика описывает отдельные естественные языки, индивидуальные лингвистические качества. Она отражает речевой материал в корпусе текстов, и этот материал может в дальнейшем использоваться другими лингвистическими дисциплинами [3].

Семантическая аннотация - это дополнительная информация в документе, которая идентифицирует или определяет некоторый концепт в семантической модели для того, чтобы описать часть этого документа. Семантические аннотации могут являться XML-атрибутами, которые добавляются к документу. Существует два вида семантических аннотаций - явные идентификаторы концептов и идентификаторы отображений WSDL-описания в концепты или наоборот [4].

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

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

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

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

3. Проанализировать и выбрать наиболее подходящие способы доступа к системе.

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

5. Реализовать программные компоненты доступа к сервисам лингвистического процессора.

В ходе работы был создан набор конкретных требований к лингвистическим процессорам. В качестве характеристик были выбраны, например, поддержка языков обрабатываемых текстов, форматы входных и выходных файлов, возможность решения определенных задач (аннотирование, извлечение информации и пр.), стоимость лицензии процессора и др. На основе данных характеристик был проведен анализ четырех популярных систем. Во время анализа, характеристики каждой системы вносились в заготовленную таблицу. Просмотреть полную сравнительную таблицу и описание обзора систем можно в Главе 1. По завершении анализа инструментальных средств, для работы была выбрана система GATE (General Architecture for Text Engineering). GATE - это система обработки естественного языка, которая имеет открытый исходный код и использует наборы компонентов на языке Java [5].

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

Таким образом, для достижения цели были выбраны следующие методы: объектное моделирование на языке графического описания UML (Unified Modeling Language), создание веб-интерфейса при помощи языка разметки HTML и языка программирования С#, использование WCF (Windows Communication Foundation), использование библиотек, написанных на языке Java в .NET Framework при помощи программного продукта IKVM.NET. Научная новизна исследования заключается в реализации нового средства, значительно упрощающего работу с лингвистическим процессором. Теоретическая значимость работы заключается в анализе и нахождении способа связи облачного хранилища с лингвистическим процессором GATE.

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

Глава 1. Обзор реализаций лингвистических процессоров и инструментальных средств

1.1 Обзор лингвистических процессоров

Лингвистический процессор выполняет роль посредника между пользователем и базой данных и преобразовывает естественный текст в набор семантических структур, которые используются в качестве исходных данных для поисковых механизмов. В данной работе для анализа и сравнения было выбрано 4 процессора: проект АОТ - автоматическая обработка текста, набор инструментов WordSmith Tools, лингвистический процессор GATE и инструментарий AntConc. Для сравнения вышеуказанных систем были выделены определенные критерии. На основе проведенного анализа необходимо будет выбрать один из процессоров, а затем создать компоненты прикладного уровня для доступа к сервисам данного программного продукта. Для этого была создана таблица условий (см. таблицу 1.1), которым должен отвечать необходимый нам для дальнейшей работы лингвистический процессор.

Таблица 1.1 Требуемые характеристики

Название характеристики

Требование

1. Операционная система

Windows

2. Поддержка языков текстов

Английский обязательно

Русский желательно

3. Стоимость лицензии

Бесплатно

4. Открытый исходный код

+

5. Форматы входных документов

5.1. HTML

+

5.2. XML

+

5.3. RTF

+

5.4. Email

+

5.5. PDF

+

5.6. Microsoft Office documents

+

5.7. Plain Text

+

6. Форматы выходных документов

6.1. XML

+

6.2. Plain Text

+

7. Выполнение семантической аннотации

+

Так, мы имеем 7 основных характеристик, при этом некоторые из них («форматы входных/выходных документов») делятся на подпункты. Для выявления максимально подходящего к заданным условиям лингвистического процессора был проведен анализ всех четырех систем («АОТ», «WordSmith Tools», «GATE», «AntConc») и составлена таблица сравнения. В данной главе кратко рассмотрен каждый процессор (см. пункты 1.1.1 - 1.1.4), затем, для наглядности сравнения, их характеристики объединены в одну таблицу и сделан краткий вывод (см. пункт 1.2).

1.1.1. Проект АОТ

Отечественный проект АОТ (Автоматическая Обработка Текста) был разработан под руководством Алексея Сокирко. Группа разработки, в основном, нацелена на машинную обработку русского языка, однако они предлагают комплекс программ, который включает в себя морфологические словари для русского, немецкого и английского языков, синтаксические словари, систему лингвистического поиска [6] и пр. Проект является библиотекой, то есть сборником подпрограмм или объектов, который в дальнейшем могут использоваться для разработки программного обеспечения. Начиная с 2002 года, рабочая команда публикует свои разработки с лицензией LGPL, таким образом, каждый желающий может бесплатно использовать библиотеки в собственных программах, в том числе коммерческих.

Некоторые особенности данного проекта были представлены в статье Алексея Сокирко «Морфологические модули на сайте www.aot.ru» [7], а также в публикации А.В. Сокирко совместно с С.Ю. Толдовой «Сравнение эффективности двух методик снятия лексической и морфологической неоднозначности для русского языка (скрытая модель Маркова и синтаксический анализатор именных групп)» [8].

1.1.2. Набор инструментов WordSmith Tools

WordSmith Tools - это коммерческий набор инструментов для изучения поведения слов в текстах [9]. Программный пакет был разработан британским лингвистом Майком Скоттом в университете Ливерпуля, версия 1.0 была выпущена в 1996 году. В WordSmith Tools входит три модуля, которые описаны ниже.

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

2. Модуль «WordList» содержит список всех слов или словоформ, включенных в выбранный корпус, а также статистические данные отличия от корпуса текстов.

3. Модуль «KeyWord» создает список ключевых слов и грамматических форм в соответствии с определенными статистическими критериями.

Кроме этого, каждый модуль содержит в себе некоторые другие функции анализа текста, как, например, поиск словосочетаний - коллекции слов, которые наиболее часто используются в тексте вместе с одним определенным словом. Последняя выпущенная на 2015 год версия проекта WordSmith Tools - версия 6.0, на данный момент программу можно использовать на 80ти различных языках. Проект WordSmith Tools упоминается в работах многих авторов, например, в работе Кэтлин Кантнер совместно с Амели Куттер «Как избавиться от шума в корпусе…» [10], а также в публикации П. Грэхема «Предикации и распространение: метод анализа оценочных смыслов в технической политике».

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

GATE - General Architecture for Text Engineering - система обработки естественного языка с открытым исходным кодом, использующая наборы компонентов на языке Java. Система решает такие задачи, как извлечение информации, ручная и автоматическая семантическая аннотация, анализ кореферентности, работа с онтологиями, машинное обучение, анализ потока сообщений в блогах [5]. Разработчики проекта - университет Шеффилда, первая версия проекта была выпущена в 1995г. Последняя выпущенная версия на 2015 год - версия 8.1.

Архитектура системы состоит из множества взаимодействующих компонентов. Данные компоненты делятся на три категории по функциям:

1. Лингвистические ресурсы.

2. Программы для обработки документов.

3. Графические интерфейсы для первых двух категорий.

GATE поддерживает большое количество форматов текстов: Plain Text, Email, PDF, форматы Microsoft Office и т.д., а также имеет свое хранилище данных, необходимое для хранения документов, корпусов текстов и дальнейшего их использования. GATE упоминается в огромном количестве публикаций, статей, книг и журналов, например, в работе Грэхема Уилкока «Лингвистическая аннотация и анализ текста» [11], выпущенной в 2009г.

Семейство GATE состоит из следующих продуктов:

· IDE GATE Developer - интегрированная среда разработки для компонентов языковой обработки, поставляется совместно с широко используемой системой «Information Extraction» и комплексным набором других плагинов.

· Веб-приложение GATE Teamware - экономически эффективная среда, предназначенная для аннотирования и курирования проектов, что позволяет использовать распределенные трудовые ресурсы, отслеживать прогресс и результаты обучения дистанционно в режиме реального времени.

· Программная платформа GATE Embedded - объектная библиотека, оптимизированная для интеграции в разнообразные приложения, предоставляющая доступ ко всем службам, доступным в GATE Developer и некоторым дополнительным сервисам.

· GATE Cloud.net - облачный сервер для размещения и обработки крупномасштабных текстов.

GATE Developer и GATE Embedded поставляются в комплекте совместно с системой автоматического извлечения информации (ANNIE - a Nearly-New Information Extraction System). Одна из причин, благодаря которой GATE имеет большой успех, заключается в том, что его ядро разбивается на фрагменты с возможностью повторного использования.

1.1.4. Инструментарий AntConc

AntConc - бесплатный инструментарий для корпусного анализа, построения конкорданса и анализа текста [12]. AntConc был разработан Лоуренс Энтони в университете Васеда, Япония. Данное программное обеспечение включает в себя семь инструментов:

1. «Concordance Tool», отображает результаты в формате «ключевое слово в контексте».

2. «Concordance Plot Tool», отображает результаты в формате «штрих-код», то есть выделяет позиции результатов поиска в первоначальном тексте.

3. «File View Tool», позволяет более подробно исследовать результаты, полученные при помощи других инструментов.

4. «Clusters/N-Grams», отображает кластеры на основе поисковых условий. В основном, здесь обобщаются результаты, полученные в «Concordance Tool» или «Concordance Plot Tool». Однако, данный инструмент также сканирует весь корпус для кластеров различной длины, что позволяет найти общие выражения в корпусе.

5. «Collocates», отображает словосочетания, используемые с поисковым запросом, что позволяет исследовать непоследовательные структуры в языке.

6. «Word List», подсчитывает все слова в корпусе и строит их в упорядоченный список. С помощью этого инструмента можно быстро определить частоту появления слова в корпусе.

7. «Keyword List», показывает слова, которые используются в корпусе чрезвычайно часто (или наоборот, редко), по сравнению с эталонным корпусом.

О создании данного программного обеспечения говорится в статье разработчика Энтони Лоуренса «Разработка AntConc для нового поколения корпусных лингвистов» [13], опубликованной в 2013г.

1.2 Выбор лингвистического процессора для разработки программных компонентов

Как было сказано в начале главы, мы выделили 7 характеристик для сравнения программных продуктов АОТ, WordSmith Tools, GATE и AntConc. Таблица сравнения приведена ниже (см. таблицу 1.2).

В ходе анализа процессоров было установлено, что всем необходимым для данной работы условиям удовлетворяет только лингвистический процессор GATE. Помимо требуемых английского и русского языков, система обрабатывает еще 10 дополнительных, в числе которых, например, испанский, китайский, немецкий, французский и пр. GATE поддерживает большое количество форматов входных документов, а также помогает решать множество задач, помимо требуемой семантической аннотации. Еще одним преимуществом GATE является его открытый исходный код. Архитектура GATE состоит из взаимосвязанных компонентов: программного обеспечения с четко определенными интерфейсами, написанными на языке программирования Java. Данные компоненты могут быть развернуты в различных контекстах.

Таблица 1.2 Сравнение лингвистических процессоров

Название характеристики

АОТ

WordSmith Tools

GATE

AntConc

1. Операционная система

Windows

Linux

Windows

Mac OS X

Linux

Windows

Mac OS X

Linux

и др.

Windows

Mac OS X

Linux

2. Поддержка языков

Русский

Английский

Немецкий

Языки, поддерживаемые используемым ПК

Английский

Русский и 10 других

Языки, поддерживаемые используемым ПК

3. Стоимость лицензии

Бесплатно

GBP 50/лицензия для одного пользователя

Бесплатно

Бесплатно

4. Открытый исходный код

+

-

+

-

5. Форматы входных документов

5.1. HTML

Продукт является библиотекой

-

+

-

5.2. XML

-

+

Если xml сохранен в .txt

5.3. RTF

-

+

-

5.4. Email

-

+

-

5.5. PDF

-

+

-

5.6. Microsoft Office documents

-

Некоторые документы

-

5.7. Plain Text

+

+

+

6. Форматы выходных документов:

6.1. Plain Text

Продукт является библиотекой

+

-

+

6.2. XML

-

+

-

7. Задачи

7.1. Извлечение информации

-

+

+

+

7.2. Построение конкорданса

+

+

+

+

7.3. Семантическая аннотация

-

-

+

-

7.4. Работа с онтологиями

-

-

+

-

7.5. Графематический анализ

+

+

+

+

7.6. Машинное обучение

-

-

+

-

7.7. Морфологический анализ

+

-

-

-

7.8. Синтаксический анализ

+

-

-

-

Самый большой недостаток остальных процессоров - WordSmith Tools, АОТ и AntConc - заключается в том, что они не предназначены для семантической аннотации текста. Эти процессоры выполняют большое количество задач, и некоторые из них не поддерживаются вышеуказанным процессором GATE, однако для данной работы в первую очередь требуется именно аннотирование. Кроме этого, данные три процессора не имеют возможности выгрузки результатов анализа в необходимые нам документы, а выполнение этого требования значительно бы упростило связь системы с облачным хранилищем. Более того, «АОТ» разработки А. Сокирко не поддерживает импорт и экспорт текстовых файлов любого формата, поскольку является программной библиотекой - сборником подпрограмм и объектов. А набор инструментов WordSmith Tools находится в платном доступе, что также усложнило бы работу.

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

Для создания программных компонентов будет использоваться GATE Embedded. Данный продукт доступен в виде набора JAR-файлов - то есть архивов, в которых содержится часть программы на языке Java. Чтобы внедрить его в приложение необходимы только эти сборки, однако могут понадобиться дополнительные JAR-файлы и файлы конфигурации XML для внедрения различных ресурсов, предоставляющих новые средства анализа естественного языка.

Программные компоненты будут разрабатываться для Microsoft .NET Framework (см. 2.2. Выбор технологии для разработки программных компонентов). Отсюда возникает проблема, поскольку невозможно напрямую использовать библиотеки, написанные на языке программирования Java в платформе .NET. Поэтому было решено конвертировать JAR-сборки программного продукта GATE Embedded для платформы .NET при помощи инструмента IKVM.NET.

1.3 Программный продукт IKVM.NET

Проект Mono - это полноценное воплощение Microsoft .NET Framework, является свободным программным обеспечением. Проект создается при поддержке Microsoft, в его основе находятся спецификации для C# и CLR. Проект не просто клонирует платформу .NET, в нем существуют свои собственные технологии, библиотеки и пр. Основная цель Mono - упрощение переноса приложений, написанных для платформы .NET, на другие операционные системы.

IKVM.NET - это реализация Java для проекта Mono и платформы .NET, также является свободным программным обеспечением. Данный продукт включает в себя следующие инструменты:

1. Виртуальная машина Java, созданная на .NET.

2. .NET-реализация библиотек классов Java.

3. Инструменты, позволяющие взаимодействовать Java и .NET.

IKVM.NET можно использовать для различных сценариев разработки программного обеспечения. Например, как было сказано выше, приложение ikvm, которое включено в комплект поставки - это виртуальная машина Java, созданная на .NET. Во многих случаях ее можно использовать как упрощенную модернизацию для Java. Например, чтобы запустить приложение с названием «myapp», вместо команды «java -jar myapp.jar» необходимо будет ввести следующее: «ikvm _jar myapp.jar».

Программный продукт IKVM.NET также позволяет использовать библиотеки, написанные на языке Java в .NET-приложениях. Данная возможность предоставляется инструментом ikvmc, который конвертирует байт-кода Java в файлы с расширениями dll и exe. Например, чтобы конвертировать библиотеку с названием «mylib», необходимо выполнить следующую команду: «ikvmc _target:library mylib.jar». Создастся файл «mylib.dll», который можно будет использовать в приложении, написанном для платформы .NET.

Кроме этого, с помощью инструмента ikvmc существует возможность разработки .NET-приложений на языке программирования Java. Несмотря на то, что непосредственно IKVM.NET не включает в себя компилятор Java для .NET, можно использовать любой другой продукт, позволяющий компилировать исходный код Java в байт-код виртуальной машины Java. После этого при помощи команды «ikvmc _target:exe myapp.jar» можно создать исполняемый файл для .NET. Также можно использовать .NET API в коде Java при помощи приложения ikvmstub.

В первую очередь для данной работы необходимо будет использовать инструмент ikvmc. При помощи данного инструмента будут преобразованы все необходимые для подключения GATE Embedded JAR-файлы, после чего библиотека GATE Embedded будет добавлена в .NET_приложение.

Вывод: в главе «обзор реализаций лингвистических процессоров и инструментальных средств» содержится обзор четырех популярных лингвистических процессоров, а также сравнение данных систем на основе семи характеристик, существенно важных для нашей разработки: операционная система, для которой предназначен программный продукт; стоимость лицензии продукта; наличие открытого исходного кода; поддержка форматов входных и выходных документов, а также задачи, которые способен выполнять лингвистический процессор. На основе сравнения систем для работы был выбран лингвистический процессор GATE. Таким образом, основная задача данной работы - создание программных компонентов, которые будут представлять собой дополнительный уровень между лингвистическим процессором GATE и пользователем, тем самым снижая входной порог процессора. Кроме этого, в главе перечислены основные функции программных продуктов, входящих в семейство GATE: библиотека GATE Embedded, IDE GATE Developer и др. Наконец, проведен обзор инструментального средства IKVM, с помощью которого библиотека GATE Embedded, поставляемая в качестве набора JAR-файлов, может быть использована для разработки приложения на платформе .NET.

Глава 2. Проектирование компонентов

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

1. Модуль для GATE API.

2. Модуль для взаимодействия с облачным хранилищем.

3. Модуль для взаимодействия с пользователем.

Каждый из них необходим для выполнения отдельных задач, которые описаны в данной главе. Для наглядности функциональность и поведение каждого модуля визуализированы при помощи диаграммы вариантов использования (диаграммы прецедентов), которую можно просмотреть в приложении А (см. рисунок А.1). После определения функциональных характеристик каждого модуля, был проведен обзор технологий, с помощью которых могут быть реализованы необходимые программные компоненты. На основе анализа была выбрана среда разработки Visual Studio, технология ASP.NET Web Forms. Подробный анализ содержится в данной главе, пункт 2.2.

2.1 Требования к функциональным характеристикам

2.1.1 Модуль для GATE API

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

1. Получение доступа к лингвистическому процессору GATE.

2. Выполнение семантической аннотации документа при помощи процессора GATE.

3. Предоставление результатов семантической аннотации документа, выполненной лингвистическим процессором GATE.

Входные данные для данного компонента - документы в формате pdf, doc, rtf, html, xml, doc, docx или email-файлы. Выходные данные также должны быть представлены в виде документов в вышеуказанных форматах. Требования к временным характеристикам зависит от размера обрабатываемого документа. При возвращении модулем результатов аннотации временные рамки увеличиваются пропорционально обрабатываемым данным.

Модуль для GATE API будет обеспечивать взаимодействие с лингвистическим процессором при помощи программной платформы GATE Embedded. Некоторые из API-интерфейсов, предоставляемые GATE Embedded, приведены на рисунке 2.1.

Рисунок 2.1 API-интерфейсы, доступные в GATE Embedded

Во время анализа технологий (см. 2.2. Выбор технологии для разработки программных компонентов) было определено, что разработка программных компонентов будет выполняться на платформе .NET. Поскольку GATE Embedded является набором JAR-файлов, напрямую использовать его в .NET-приложении невозможно. Для этого будет использоваться инструмент ikvmc, входящий в комплект поставки программного продукта IKVM.NET (см. 1.3. Программный продукт IKVM.NET). При помощи данного инструмента, будет создан файл с расширением dll, который в дальнейшем будет использоваться в разрабатываемом .NET-приложении.

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

Главная цель данного программного компонента - связь с облачным хранилищем для осуществления документооборота. Облачное хранилище - разработка Р.Н. Бушуева, опубликованная на облачной платформе Microsoft Azure. Данный модуль должен обеспечивать выполнение следующих функций:

1. Подключение к облачному хранилищу.

2. Получение информации из облачного хранилища:

2.1. Загруженные документы.

2.2. Загруженные корпуса текстов и их содержимое.

2.3. Загруженные семантические аннотации.

2.4. Загруженные лексико-семантические шаблоны.

3. Загрузка информации в облачное хранилище:

3.1. Документы любых форматов.

3.2. Корпуса текстов.

3.3. Семантические аннотации.

Пользователь будет иметь возможность работать с облачным хранилищем с помощью веб-приложения (см. 2.3. Модуль для взаимодействия с пользователем). Доступ к облачному хранилищу будет получен путем использования в приложении веб_служб WCF.

2.1.3 Модуль для взаимодействия с пользователем

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

1. Предоставление пользовательского интерфейса.

2. Доступ к интерфейсу при помощи веб-браузера.

3. Возможность работы с документами в облачном хранилище:

3.1. Просмотр существующих документов.

3.2. Загрузка новых документов.

3.3. Удаление существующих документов.

4. Возможность работы с корпусами текстов в облачном хранилище:

4.1. Просмотр существующих корпусов.

4.2. Создание новых корпусов.

4.3. Удаление существующих корпусов.

4.4. Добавление файлов в существующие корпуса.

4.5. Удаление файлов из существующих корпусов.

5. Возможность отправки документов из облачного хранилища в лингвистический процессор GATE для семантической аннотации (см. 2.1. Модуль для GATE API) и работа с выполненными аннотациями:

5.1. Просмотр сохраненных в облачном хранилище результатов аннотирования.

5.2. Удаление сохраненных в облачном хранилище результатов аннотирования.

6. Работа с лексико-семантическими шаблонами:

6.1. Просмотр существующих шаблонов.

6.2. Удаление существующих шаблонов.

6.3. Возможность перехода в веб-редактор для создания новых шаблонов.

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

2.2 Выбор технологии для разработки программных компонентов

лингвистический процессор облачный хранилище интерфейс

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

· технология должна предоставить возможность использования Java_библиотеки GATE Embedded;

· технология должна предоставить возможность использования служб WCF;

· технология должна предоставить возможность создания веб-приложений;

· технология должна быть бесплатной;

· время, необходимое для изучения технологии разработчиком должно быть минимальным.

Указанные выше требования могут быть удовлетворены при использовании технологии ASP.NET, которая предлагает три фреймворка для создания веб-приложений:

1. ASP.NET Web Forms;

2. ASP.NET MVC;

3. ASP.NET Web Pages.

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

Как было указано выше, технология ASP.NET предлагает три способа создания веб-приложений: Web Forms, ASP.NET MVC и ASP.NET Web Pages. Все три фреймворка стабильны и готовы к использованию, создание эффективных веб_приложений возможно с применением любого из них. Все преимущества и возможности ASP.NET могут быть использованы в приложении независимо от выбора платформы. Однако, каждый фреймворк ориентирован на определенный стиль программирования. Таким образом, выбор платформы зависит от полезных качеств разработчика (знаний, навыков и опыта), типа разрабатываемого приложения и подхода разработки, с которым программисту комфортно работать. Все три платформы будут поддерживаться, обновляться и совершенствоваться и в будущих выпусках ASP.NET.

В таблице 2.1. приводится краткий обзор каждого фреймворка и некоторые предположения о том, как сделать выбор между ними [14].

Таблица 2.1 Фреймворки ASP.NET

У разработчика есть опыт работы:

Стиль разработки:

Профессиональные знания разработчика:

Web Pages

Классическое ASP, PHP

HTML-разметка и код в одном файле

Начальный, средний уровни

Web Forms

Win Forms, WPF, .NET

Динамичное развитие с использованием обширной библиотеки элементов, содержащей HTML_разметку

Средний, продвинутый уровни

MVC

Ruby on Rails, .NET

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

Средний, продвинутый уровни

На данный момент, опыт автора работы в качестве разработчика состоит из создания настольных приложений при помощи технологии Win Forms на платформе .NET. Во время деятельности автору не приходилось сталкиваться с классическим ASP и веб-фреймворком Ruby on Rails. Кроме этого, разрабатываемое в данной работе приложение не будет являться одностраничным. Очевидный выбор между описанными выше тремя фреймворками - это ASP.NET Web Forms.

ASP.NET Web Forms включено в среду разработки Visual Studio. Web Forms - это веб-страницы, которые пользователи используют при помощи веб-браузеров. Эти страницы создаются комбинацией разметки HTML, клиентского скрипта и серверного кода. Когда пользователь обращается к странице, она компилируется и выполняется на сервере, после чего фреймворк генерирует HTML-разметку, которую отображает браузер. Страница ASP.NET Web Forms представляет информацию для пользователя через любой браузер или клиентское устройство.

Платформа ASP.NET позволяет создавать пользовательские веб-службы или использовать встроенные службы приложения, вызывая их из любого клиентского приложения [15]. Таким образом, может быть удовлетворено требование использования веб-служб WCF для разработки модуля взаимодействия с облачным хранилищем. Несмотря на то, что среда разработки Visual Studio является коммерческим программным продуктом, студенты НИУ ВШЭ имеют возможность приобрести ее бесплатно, обратившись в университет или воспользовавшись DreamSpark - программой от Microsoft, позволяющей студентам и преподавателям получить бесплатный доступ к профессиональным средствам разработки и проектирования в учебных и исследовательских целях [16]. Кроме этого, разработчику не требуется время для освоения технологии, поскольку опыт создания веб-приложений с помощью фреймворка ASP.NET Web Forms уже имеется.

Для данной работы одним недостатком ASP.NET Web Forms является то, что в платформе .NET невозможно напрямую использовать Java-библиотеку GATE Embedded, которая необходима нам при создании программного компонента для GATE API. Однако, данная проблема может быть решена с помощью инструмента ikvmc, входящего в комплект поставки программного продукта IKVM.NET (см. 1.3. Программный продукт IKVM.NET). При помощи данного инструмента набор JAR_файлов может быть конвертирован в файл с расширением dll, который в дальнейшем будет использоваться в разрабатываемом модуле.

Таким образом, все требования к технологии были удовлетворены ASP.NET Web Forms. Для наглядности была создана таблица, в которой выделен набор критериев и описано сравнение фреймворков ASP.NET на основе данного набора (см. таблицу 2.2).

Таблица 2.2 Выбор технологии

Требование

ASP.NET Web Pages

ASP.NET Web Forms

ASP.NET MVC

Использование веб-служб WCF

Возможно

Создание веб-приложений

Да

Бесплатная лицензия

Для студентов НИУ ВШЭ / через DreamSpark

Опыт работы с технологией

Нет

Есть

Нет

Использование Java-библиотеки в приложении

Только с помощью дополнительных инструментариев

Учитывая все вышесказанное, для разработки программных компонентов в данной работе будет использоваться т ASP.NET Web Forms, которая включена в среду разработки Visual Studio.

Для определения архитектуры разрабатываемой системы зависимости между программными компонентами были визуализированы при помощи диаграммы компонентов, которую можно просмотреть в приложении Б (см. рисунок Б.1). Так, система состоит из трех компонентов: модуля для взаимодействия с пользователем, модуля для взаимодействия с облачным хранилищем и модуля для GATE API. Программный компонент для взаимодействия с пользователем реализует интерфейс, который является веб-приложением. Компонент для взаимодействия с облачным хранилищем имеет в качестве поддерживаемого интерфейса веб-службу «UserService», а поддерживаемый интерфейс модуля для GATE API - программная библиотека «GATE Embedded». При этом, веб-служба «UserService» и библиотека «GATE Embedded» являются импортируемыми интерфейсами для программного компонента взаимодействия с пользователем. Это значит, что компонент использует данные интерфейсы в процессе своего выполнения.

Вывод: в главе «Проектирование компонентов» выделены три основные компонента разработки: модуль для взаимодействия с облачным хранилищем разработки Р.Н. Бушуева, модуль для взаимодействия с пользователем и модуль для GATE API. Определены и подробно описаны функциональные характеристики каждого компонента. Функциональные возможности представлены в виде диаграммы вариантов использования, а архитектура системы визуализирована с помощью диаграммы компонентов. Проведен обзор и сравнение технологий для разработки программного продукта, сделан и обоснован выбор в пользу технологии ASP.NET Web Forms.

Глава 3. Разработка программных компонентов

3.1 Разработка модуля для GATE API

Для доступа к GATE используется программная библиотека «GATE Embedded», оптимизированная для внедрения в различные приложения. Однако, во время работы возникла сложность с внедрением данной библиотеки в приложение, разрабатываемое на платформе .NET. Поскольку GATE Embedded является набором JAR-файлов и написан на языке Java, обратиться к нему из приложения .NET напрямую невозможно. Было решено перед добавлением GATE Embedded в приложение конвертировать библиотеку при помощи программного продукта ikvmc (см. 1.3. Программный продукт IKVM.NET). ikvmc является консольным приложением, поэтому работа с ним осуществляется через командную строку. Перед конвертированием GATE Embedded все необходимые JAR-файлы были помещены в папку «libs», затем в командной строке прописана следующая команда:

ikvmc -target:library -out:GATE.dll -recurse:libs\*.jar

В данной команде использованы следующие параметры:

-target:library обозначает, что файлы должны быть конвертированы в библиотеку, то есть в файл с расширением .dll.

-out:GATE.dll задает имя выходного файла. Выходной файл должен иметь расширение dll, если target:library и расширение .exe, если target:exe или winexe.

-recurse:libs\*.jar означает, что необходимо обработать все файлы в папке, совпадающие с указанным параметром. В данном случае будут обработаны все файлы в папке «libs», имеющие расширение jar.

Конвертирование библиотек заняло не более полутора минут. После выполнения вышеуказанной команды, инструмент ikvmc сгенерировал в своей директории файл «GATE.dll», который и является библиотекой «GATE Embedded».

После конвертации можно приступать к использованию библиотеки. Для этого был создан проект ASP.NET Web Forms (см. 2.2. Выбор технологии для разработки программных компонентов). Для использования сгенерированной библиотеки в создаваемом приложении, необходимо добавить ссылку на созданный файл dll, а также на файл dll инструмента IKVM: IKVM.OpenJDK.Core (см. рисунок 3.1).

Рисунок 3.1 Добавление библиотеки в приложение

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

using gate;

using java.io;

...

void GATE_initializing()

{

Gate.setGateHome(new File(@"C:\Program Files\GATE_Developer_8.1"));

Gate.setPluginsHome(new File(@"C:\Program Files\GATE_Developer_8.1\plugins"));

Gate.setSiteConfigFile(new File(@"C:\Program Files\GATE_Developer_8.1\gate.xml"));

Gate.init();

}

Инициализация программной библиотеки GATE Embedded была выполнена успешно.

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

Доступ к облачному хранилищу осуществляется при помощи веб-сервиса «User Service». Для этого Роман Бушуев предоставил остальным разработчикам системы компьютерной обработки естественного языка WSDL файл - документ XML, составленный согласно XML-грамматике, называемой языком описания веб-служб. Этот файл определяет поведение XML-веб-службы и указывает клиентам правила взаимодействия с ней [17]. Данный файл был добавлен в приложение в качестве ссылки на службу. После добавления в приложение ссылки на службу можно использовать классы и методы, предоставляемые веб-сервисом. Данный веб-сервис позволяет работать со всеми типами информации, хранящимися в облачном хранилище, то есть пользователями, документами, корпусами текстов, аннотациями и шаблонами. Таким образом, все данные, полученные остальными модулями, будут помещаться в облачное хранилище при помощи указанного выше веб-сервиса.

Так, например, добавление нового пользователя в базу данных выполняется следующим образом:

using SoftwareComponents.UserService;

...

protected User InsertUser()

{

UserServiceClient client = new UserServiceClient();

client.InsertNewUser("login1", "emailemail@mail.ru", "password1");

client.Close();

}

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

using SoftwareComponents.UserService;

...

protected User GetUser(User user)

{

UserServiceClient client = new UserServiceClient();

return user = client.GetByLoginPassword("login", "paswword");

client.Close();

}

Второй способ - аналогичный, однако доступ осуществляется при помощи email и пароля:

using SoftwareComponents.UserService;

...

protected User GetUser(User user)

{

UserServiceClient client = new UserServiceClient();

client.InsertNewUser("login1", "emailemail@mail.ru", "password1");

return user = client.GetByEmailPassword("simple_oks@rambler.ru", "password");

client.Close();

}

После успешного получения информации о пользователе, можно приступать к работе с файлами. Компонент для взаимодействия с облачным хранилищем подразумевает документооборот между реализованным в данной работе веб-приложением и хранилищем, опубликованным на облачной платформе Microsoft Azure. На этапе составления требований к функциональным характеристикам компонента была выделена необходимость добавления корпусов текстов, файлов, семантических аннотаций и лексико-семантических шаблонов в хранилище, а также их удаление из него. Все эти действия выполнены путем использования методов и свойств, предоставленных веб-службой «User Service». Так, например, добавление корпуса в хранилище реализовано следующим образом:

UserServiceClient client = null;

try

{

client = new UserServiceClient();

client.AddTextCorpus(_currentUser, CorpName.Value, null);

AddCorpLabel.Text = "Корпус добавлен";

GetUser();

GetTree();

UpdatePanelTree.Update();

}

catch (FaultException ex)

{

AddCorpLabel.Text = "Ошибка при добавлении: " + ex.Message;

}

finally

{

client.Close();

}

Удаление файла из хранилища:

UserServiceClient client = null;

try

{

client = new UserServiceClient();

client.RemoveFile(_currentUser, tcf);

MessageLabel.Text = "Файл \"" + tcf.Name + "\" удалён";

}

catch (FaultException ex)

{

MessageLabel.Text = "Ошибка при удалении: " + ex.Message;

}

finally

{

client.Close();

}

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

UserServiceClient client = null;

try

{

client = new UserServiceClient();

ann.File = client.DownloadAnnotation(_currentUser, ann);

using (var fileStream = new FileStream(@"C:\temp\downloads\annotations\" +

ann.Name +

"." +

ann.fileType,

FileMode.Create,

FileAccess.ReadWrite))

{

ann.File.WriteTo(fileStream);

fileStream.Close();

MessageLabel.Text = "Файл \"" + ann.Name + "\"" + @" загружен в C:\temp\downloads\annotations\";

}

}

catch (FaultException ex)

{

MessageLabel.Text = "Ошибка при скачивании: " + ex.Message;

}

Для реализации всех необходимых функций компонента (см. 2.1. Требования к функциональным характеристикам) были использованы разнообразные средства языка программирования C#. Например, для определения типа доступа к объекту (Read, Write, ReadWrite) используется условный оператор «?:», который возвращает одно из двух значений в зависимости от значения логического выражения:

accessRow[1] = tc.AccessType == AccessType.Read ? READ :

tc.AccessType == AccessType.Write ? WRITE : READWRITE;

Для выделения необходимых в конкретной точке программы объектов (например, поиск нужных пользователю корпусов текстов) применяются LINQ-операции «FirstOrDefault», «First», «Last» и «LastOrDefault», которые подразумевают использование предикатов. Ниже представлен пример использования LINQ-операции «FirstOrDefault», возвращающей первый элемент последовательности или значение по умолчанию, если ни одного элемента не найдено. Такой прототип операции позволяет передать predicate, определяющий, какой элемент следует возвратить:

TextCorpusFile tcf = _currentUser.TextCorpusFiles.FirstOrDefault

(x => x.TextCorpusFile.Id == objID).TextCorpusFile;

Для управления поведением программы (например, при разграничении ее функциональности в зависимости от типа объекта, полученного из хранилища) используется оператор управления «switch» - оператор множественного выбора, удобная замена длинной «if-else» конструкции:

// Определение типа объекта

string objType = ContentTable.Rows[Convert.ToInt32(e.CommandArgument)].Cells[2].Text;

switch (objType)

{

case "Файл":

{

// Скачиваем или удаляем файл

} break;

case "Аннотация":

{

// Скачиваем или удаляем семантическую аннотацию

}

break;

case "Шаблон":

{

// Скачиваем или удаляем лексико-семантический шаблон

} break;

}

Вся реализованная в компоненте функциональность доступна конечному пользователю разрабатываемой системы через модуль для взаимодействия с пользователем (см. пункт 3.3), который представляет собой веб-приложение и использует созданные в данном компоненте методы.

3.3 Разработка модуля для взаимодействия с пользователем

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

Чтобы пользователь имел возможность максимально быстро работать с системой, необходимо предоставить наиболее наглядный и удобный интерфейс. Было решено реализовать некое подобие проводника операционной системы Windows: в левом углу экрана находится дерево объектов, справа - панели, на которых можно просматривать, изменять и добавлять информацию в режиме реального времени.

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

Таким образом, в приложении используется сторонний комплект контролов для веб-приложений, созданных с помощью технологии ASP.NET - Obout Suite [18]. Obout Software Inc производит комплекты для ASP.NET-приложений с 2000г. Компания находится в штате Нью-Йорк с офисами в США, России, Румынии, Индии и Вьетнаме. Для использования элемента управления «Splitter» от компании Obout был скачан бесплатный стандартный набор компонентов с официального сайта компании. После этого, компоненты были добавлены в панель инструментов Visual Studio и использованы при разработке интерфейса веб-приложения. Элемент управления «Splitter» используется на главной странице веб-приложения. Скриншот страницы представлен в приложении В (см. рисунок В.1).

Большая часть информации, полученной из хранилища, представлена в стандартном веб-компоненте GridView. Этот компонент выглядит, как таблица и отображает значения источника данных. Каждый столбец таблицы представляет поле, а каждая строка представляет запись. Элемент управления GridView позволяет выбирать, сортировать и изменять элементы. Так, например, один из способов использования этого элемента в приложении - вывод информации о выбранном пользователем объекте (см. рисунок 3.2). В этом примере свойство элемента InfoTable.GridLines = GridLines.None, что позволяет скрывать границы у таблицы.

Рисунок 3.2. Информация об объекте в элементе управления GridView

Кроме этого, GridView предоставляет возможность создания полностью настраиваемых шаблонов для столбца. Внутрь шаблона можно добавлять дескрипторы элементов управления, произвольные элементы HTML и выражения привязки данных. Так, мы получаем полную свободу для отображения любых элементов в столбцах таблицы. В данном компоненте эта возможность была использована для создания настраиваемых шаблонов, определяющих кнопки «Скачать» и «Удалить», соответственно позволяющих выполнить загрузку и удаление объектов, представленных в элементе управления GridView. Например, шаблон для кнопки «Удалить» выглядит следующим образом:

<asp:TemplateField>

<ItemTemplate>

<asp:LinkButton ID="Download" runat="server"

CommandName="Download"

CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" Text="Скачать" />

</ItemTemplate>

</asp:TemplateField>

Здесь CommandArgument используется для передачи индекса строки, вызвавшей событие «RowCommand». Данное событие происходит при щелчке по кнопке в элементе управления GridView, то есть по созданным нами шаблонам «Удалить» и «Скачать»:


Подобные документы

  • Преимущества и недостатки облачного хранилища данных. Установление приложения на компьютер, устройство Android, iOS. Создание аккаунта. Начало работы с Google диском. Способы загрузки файлов на него. Предоставление доступа к файлам другим пользователям.

    курсовая работа [1,3 M], добавлен 31.05.2016

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

    дипломная работа [1,7 M], добавлен 18.03.2012

  • Описание ДСМ-метода автоматического порождения гипотез. Исследование результатов влияния компонентов ДСМ-метода на качество определения тональности текстов. Алгоритм поиска пересечений. N-кратный скользящий контроль. Программная реализация ДСМ-метода.

    курсовая работа [727,0 K], добавлен 12.01.2014

  • Разработка программного продукта, предназначенного для имитации физического взаимодействия между объектами на основе игрового симулятора. Проектирование программы "LonelySpaceRanger", код которой представлен на языке VisualС++. Разработка интерфейса.

    дипломная работа [3,2 M], добавлен 30.11.2011

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

    дипломная работа [770,5 K], добавлен 08.02.2017

  • Особенности процесса взаимодействия пользователя с компьютером. Графический интерфейс ОС Windows, его преимущества и недостатки. Основы простейшего SILK-интерфейса. Основные черты и специфика структуры WIMP-интерфейса. Общепринятые соглашения для меню.

    реферат [26,8 K], добавлен 02.10.2012

  • Обеспечение непосредственной связи контроллера прямого доступа к памяти (ПДП) и памяти микроЭВМ. Совместное использование шин системного интерфейса процессором и контроллером. Последовательность и алгоритм программирования контроллера прямого доступа.

    реферат [122,6 K], добавлен 13.11.2009

  • Этапы проектирования и программная реализация интернет-магазина. Методы разработки его интерфейса - элементов и компонентов программы, которые способны оказывать влияние на взаимодействие пользователя с программным обеспечением. Защита интернет-магазина.

    контрольная работа [28,7 K], добавлен 02.10.2010

  • Понятие таблицы, анализ способов ее формирования и организации, особенности создания доступа по имени. Сущность хеширования данных. Преимущества и недостатки связывания. Применение бинарного (двоичного) поиска и характеристика интерфейса программы.

    курсовая работа [307,6 K], добавлен 16.06.2012

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

    курсовая работа [448,2 K], добавлен 20.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.