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

кандидата технических наук
Лебедев, Андрей Сергеевич
город
Москва
год
2011
специальность ВАК РФ
05.13.11
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Разработка и исследование системы концептуального программирования с использованием лингвистического процессора»

Автореферат диссертации по теме "Разработка и исследование системы концептуального программирования с использованием лингвистического процессора"

На правах рукописи

ЛЕБЕДЕВ Андрей Сергеевич

РАЗРАБОТКА И ИССЛЕДОВАНИЕ СИСТЕМЫ КОНЦЕПТУАЛЬНОГО ПРОГРАММИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ ЛИНГВИСТИЧЕСКОГО ПРОЦЕССОРА

05.13.11 — Математическое обеспечение вычислительных машин, комплексов и компьютерных сетей

Автореферат

диссертации на соискание ученой степени кандидата технических наук

1 7 [¿АР 20

Москва — 2011

4840439

Работа выполнена в Московском государственном институте электроники и математики (техническом университете).

Научный руководитель

Путилов Георгий Петрович

доктор технических наук, профессор

Официальные оппоненты

Никольский Сергей Николаевич

доктор технических наук, доцент

Кантор Илья Александрович

кандидат технических наук

Ведущая организация

Институт проблем информатики Российской академии наук (ИПИ РАН

Защита состоится 29 марта 2011 года в 16:00 на заседании диссертационного совета Д 212.133.01 Московского государственного института электроники и математики (технического университета) по адресу: 109028, г. Москва, Большой Трехсвятительский пер., д. 3.

С диссертацией можно ознакомиться в библиотеке Московского государственного института электроники и математики.

Автореферат разослан «28» февраля 2011 года.

Ученый секретарь диссертационного совета кандидат технических наук, доцент

С.Е. Бузников

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность проблемы.

Разработка современного программного обеспечения (ПО) носит, как правило, циклический характер, обусловленный потребностью заказчика в постоянном улучшении программного продукта, добавлении новой функциональности, а также изменением внутренней логики бизнес-процессов. Практика разработки коммерческого ПО показывает, что характер поддержки и доработки такого ПО после внедрения не затрагивает архитектуры системы и носит преимущественно проблемно-ориентированный характер. Современные тенденции решения данной задачи заключаются в разработке так называемых малых языков или языков предметной области (domain specific language - DSL). Между тем, необходимо отметить сходство концепции "малых языков" с идеями концептуального программирования - подходом, изложенным Э.Х. Тыугу еще в 80-х годах ХХ-го века. Данный подход в силу ряда причин не получил к настоящему моменту развития и широкого применения. Этому, по всей видимости, способствовал уровень развития вычислительной техники и компьютерной лингвистики того исторического периода. Однако в настоящее время идеи концептуального программирования вновь набирают все большую популярность, в том числе и за рубежом (например, язык программирования XL). К этим идеям относятся следующие аспекты:

- программирование в терминах предметной области решаемых задач,

- использование ЭВМ на этапе постановки задач.

Близость подхода, применяемого в DSL и концептуальном программировании, заключается также в тенденции приблизить язык программирования (или, говоря в терминах концептуального программирования, язык описания задачи) к естественному языку. Это позволяет, в конечном счете, не только максимально облегчить труд программиста, но и привлечь к такому "программированию" бизнес-аналитиков, незнакомых с обычными языками программирования и средствами разработки.

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

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

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

Для достижения поставленной цели в ходе настоящего исследования было найдено решение следующих задач:

• анализ моделей автоматического понимания текстов (АПТ), языков и средств описания онтологии;

• выбор и синтез подходов к автоматической обработки текстов (АОТ), выбор модели формализованного представления "смысла" текста;

• разработка концепции естественно-языкового спецификатора объектно-ориентированного языка программирования.

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

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

Научная новизна

1. Предложен способ описания онтологии с помощью объектно-ориентированного языка программирования; разработаны и

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

2. Предложен подход к представлению "смысла" текста в виде динамической объектной системы, состоящей из экземпляров классов языка Java.

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

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

5. В результате проведенной работы создана система концептуального программирования Nalaps, имеющая возможность модульной интеграции со средой разработки программ на языке Java - Intellij IDEA, что позволяет использовать все современные средства интенционального программирования. Показана практическая возможность разработки естественных языков предметной области в системе Nalaps.

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

Основные положения, выносимые на защиту:

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

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

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

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

Практическая ценность

1. Разработанная типовая структура программного обеспечения для организации связей классов языка Java с предметной областью позволяет при необходимости создавать по предложенной методике аналогичные системы для других объектно-ориентированных языков программирования (С++, C#.net и др.).

2. Создан ряд учебно-игровых и практически применимых примеров использования системы Nalaps. Среди них:

• учебно-игровая среда управления трехмерными объектами путем подачи естественно-языковых текстовых команд;

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

• система автоматической генерации программных тестов на основании входящих естественно-языковых описаний ошибок и доработок в программном обеспечении.

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

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

• создание естественных языков предметной области для внутренних нужд разработки;

• создание естественно-языковых интерфейсов общения пользователя с программными средствами;

• автоматическая обработка потоков текстовой информации на предмет регистрации определенных информационных сигналов (событий) и построение автоматической реакции на них;

• учебно-игровой апект: обучение объектно-ориентированному программированию.

5. Метод автоматической обработки текстов, разработанный в ходе диссертационных исследований, был использован также и в других научно-исследовательских работах, в частности, в системе семантического поиска.

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

Публикации и апробации работы. По материалам диссертационной работы опубликовано 1 статья, 8 тезисов на Всероссийских и международных конференциях, получено 3 свидетельства о государственной регистрации программ для ЭВМ, в которых были использованы методы, разработанные в рамках диссертационной работы. Результаты настоящего исследования были представлены на следующих научных конференциях и семинарах:

1. Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ в 2008 г.;

2. Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ в 2009 г.;

3. Международная конференция «Диалог 2009» (Бекасово, 27-31 мая 2009 г.);

4. Пятая азиатская международная школа-семинар "Проблемы оптимизации сложных систем" ИВМиМГ СОРАН в 2009 г.;

5. Международная научная конференция Megaling 21-26 сентября 2009, Украина, Киев;

6. Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ в 2010 г.;

7. Международная конференция «Диалог 2010»;

8. 11th Annual Conference for Software Testing Professionals "Discover the Tester in You"(July 6, 2010, University of Latvia, Riga).

Результаты диссертационной работы вошли также в следующие отчеты о НИР:

1. "Научно-методическое обеспечение процессов анализа диссертационных дел и авторефератов соискателей ученой степени на основе использования информационно-коммуникационных технологий", JV> гос. регистрации 0120.0 810155, инв. номер 02200900612, 2008 г.;

2. "Разработка теоретических положений решения задачи семантического анализа результатов выполненных НИР и ОКР

на примере ФЦП "Исследование и разработка по приоритетным направлениям развития научно-технологического комплекса на 20072012 г.", № гос. регистрации 0120.0 808037, инв. номер 02200900878, 2008 г.

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

ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ

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

В первой главе проводится обзор существующих средств морфологического анализа: парсера Mystem, компонента морфологического анализа системы ДИАЛИНГ, инструментария ABBYY Retrieval к. Morphology Engine. Дано также описание методов и средств синтаксического анализа, таких как: система LinkParser, компонентов синтаксического анализа систем ЭТАП-3 и ДИАЛИНГ, аппарата расширенных сетей переходов. Проводится обзор подходов к семантическому анализу: систем ПОЛИТЕКСТ и ДИАЛИНГ. Рассматриваются существующие модели автоматического понимания текстов, обосновывается выбор модели мягкого "понимания" текста для поставленных задач. Проводится обзор таких близких подходов в программировании, как литературное программирование, языко-ориентированное программирование и концептуальное программирование, а также существующих программных реализаций упомянутых парадигм. Дается обзор моделей и построенных на их основе программных средств извлечения знаний из текста (процессора Semantix и системы

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

Во второй главе дается общее описание архитектуры программного комплекса Ыакрэ. Предложенная структура состоит из следующих

основных компонентов (рис. 1):

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

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

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

Реэугьтат работы сгенеун^юеячсй программа

Рис. 1: Предложенная архитектура системы Nalaps

компонент отвечает также за создание динамической объектной системы, представляющей "смысл" исходного естественно-языкового запроса;

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

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

• графический интерфейс пользователя для редактирования графовидной структуры сетей;

• встроенный морфологический анализатор для автоматизированного создания скелетов сетей по введенной шаблонной фразе;

• вспомогательные интуитивные подсказки в интерфейсе пользователя;

• поиск по графам с учетом рекурсивного включения;

• внутренний простейший скриптовый язык для маркировки различных семантических единиц.

Раскрывается ряд усовершенствований и эвристических подходов, примененных при проектировании настоящего ATIY-анализатора, среди которых:

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

• некоторые эвристические подходы выбора путей обхода древа расширенной сети переходов при мультивариантном морфологическом анализе лексем.

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

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

I. Работа морфологического анализатора.

1. Пусть S = Х1Х2ХзХ4Х5...Хп - входная строка, где Xi - символы алфавита A={_A..Za..zA..Ha..fl0..9.,?!}.

2. Функция St(S) = = 1..^} разбивает строку 5 на предложения ей (членение по символам ".!?").

3. Функция IV¿(вЬ) = {ш{|г = 1..М} разбивает предложение st на слова и знаки пунктуации (членение по символам "_,")■

4. Каждому слову ги отображение Мг ставит в соответствие фреймовую структуру /т:

например, для словоформы "Петра":

Атрибут (pi) Множество значений (Vi)

Неопределенная форма Петр

Падеж род., вин.

Число ед.

fm = {Pi,Vi = {v^ \j = l..iV„.}|i = l..Ld} Множество всех возможных фреймовых структур:

Fm = {fmk\k = 07}

II. Работа синтактико-семантического анализатора

Определение 1. Расширенная сеть переходов - это связный ориентированный граф: atn = (Ис1,Т,1аЪе1м4,1аЪе1т), где Nd - упорядоченный набор вершин, Т - упорядоченный набор ребер графа.

• Отображение labelNd{nd G Nd) = {relatiorii(ndk,ndi)\i = 1..7V} задает метки вершин графа.

• Отображение labelrit G Т) = {/mj\i = 1..N} или tr g Vn, где V„ -словарь нетерминалов, задает метки ребер графа.

Определение 2. Машина сети переходов: Matn = (Vt,Vn>S,M,L), где:

• Vr - словарь терминалов, совпадает с Fm,

• Vn - словарь нетерминалов,

• S - начальное состояние,

• М - набор конечных автоматов со входным словарем V = Vt (~| Vn,

• I - функция индексирования, назначающая каждому £ Vr

уникальный автомат из М.

Результат работы Matn - путь обхода сетей: Matn ° Mr о Wd о St(S) = {atn¡Cí.ndi1, atn^.nd^, ...,atnk„.ndim}, где atriki-ndij - конкретные вершины (nd¡.) конкретных сетей (aín^J.

Синтактико-семантическое представление SSP - это ориентированный граф, с вершинами atn^.nd^ и ребрами, инцидентность которых вычисляется путем анализа меток: label ^¿(nd е Nd) = {relatioriiíndkjndfili = 1..N}.

Каждому узлу atn.nd графа ставится в соответствие /т, соответствующая терминалу (слову) из входного потока.

Каждому ребру, где relation описывается через терминал, ставится в соответствие /т, соответствующая этому терминалу (слову) из входного потока.

III. Проблема интерпретации формализованного представления ЕЯ-текста на языке программирования.

В общем случае задача состоит в построении проекции П из CGjava в CGnl, такой, что, CGnl < CGjava (рис. 2).

Пусть CGob - подграф CGnl Для отдельного объекта ЕЯ. Он задается путем выделения узла самого объекта, а также всех узлов и ребер, с которыми связан данный узел. CGciass - концептуальный граф отдельного класса Java. Тогда:

GGnl = CGoh + CGob2 + ••• + CGobN = П {CGjava) = П (CGciassKl + CGciassK2 + ... + С G Class к pj ) = П (CGciassKl) + R(CGciassK2 ) + ••• + li(CGci ass к w ) •

Таким образом, с каждым ОЪ необходимо сопоставить специфицированный класс Class jaVa, каждое отношение отношение типа "свойство" интерпретировать как поля класса, а остальные - как методы класса.

Ont(nat) = (Объект, свойство, отношение)

Е.Я.(Русский) Объект - подлежащее (существительное)

Объект - класс + ЕЯ-метка

АТД (Java) + NLS

Свойство - определение (прилагательное, причастие)

Свойство - поля класса + ЕЯ-метки

Отношение - сказуемое (глагол, деепричастие, наречие) + «свойство»

Отношение - (методы класса + ЕЯ-метки) + «свойство»

4

с>

4

Концептуальный [

граф CGnl

Концептуальный

граф CGjAva

Рис. 2: Проблема интерпретации формализованного представления ЕЯ-текста на языке программирования

Определение 3. Концептуальный граф CG задается как ориентированный граф: CG = (С, U,label), где:

• С - множество концептов, С ф@, задающее вершины графа,

• U - множество ребер, задающее отношение между концептами.

• Каждая вершина с имеет метку, определенную отображением label(c) = {fmc.\i — 1 --Nc}, которое сопоставляет с вершиной конкретную лексему и ее фреймовую структуру.

• Каждое ребро и имеет метку:

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

Рассмотренная структура не является концептуальным графом Дж. Совы. Отличие заключается в способе представления отношений между концептами (см. рис. 2). На рис.2 представлено схематичное представление падежного фрейма Ч. Фильмора в представлении концептуального графа Дж. Совы и семантической сети Риченса. Отношение г в определенном в данной работе концептуальном графе рассматривается в смысле отношений в семантической сети Риченса.

Однако существует такое отображение Вг, которое позволяет осуществить

label{u) = {"свойство"} (J{/m„.|i = 1 ,.NU}.

CG Sowa, Fillmore, Chein

SN Richens

[ED ГЕН fx7

r . r r I

Рис. 3: Представление предиката

переход от любого концептуального графа Дж. Совы к концептуальному графу рассмотренного выше вида:

В рассмотрение вводится следующее обозначение. Пусть г - отношение в семантической сети Риченса, тогда СС^г) = х\, и СС^М = х¡¡. Отображение Вг может быть построено следующим образом:

Вг = < 2. Эга:га = "агиенс"

[ 3. \/п е г\{га}3г^ = {ха,ц) На первом (1) шаге описывается отношение (предикат) г в концептуальном графе Совы ССягт,а, он состоит из набора семантических ролей г,, каждая из которых является фактически дугой графа и связывает узел г и узел Х{ (объект заполненной валентности). На втором (2) шаге находится среди таких г* семантическая роль агенс, определяющая подлежащее (активный участник ситуации) и обозначается как га• На третьем (3) шаге для каждого г, исключая га конструируется отношение нового концептуального графа, являющееся фактически дугой, связывающей агента действия (ха) и соответствующего г; участника ситуации.

Обратный переход к концептуальному графу Дж. Совы описывается отображением Вг~1\

Э Вг{С080ша) — СО и соответственно обратный переход: в-^св) = С в вохиа

sowa

1. г : {ri,r2,...,rn};ri = (г,х{)

в.

-1 _

1. г\ = (ха,х{)

2. Уг;Эг; = (г,Х{)

3. Га = (г,Ха)

На первом (1) шаге рассматриваются отношения данного концептуального графа г{, являющиеся ребрами графа, соединяющими агента действия (ха) с другими объектами ситуации (ж,). На втором (2) шаге для каждого г{ конструируется гг - ребро графа Совы, соединяющее узел г - отношение, и I; - участника называемой предикатом ситуации. На третьем (3) шаге восстанавливается семантическая роль агенса как ребро от узла г к узлу

Хп •

Для концептуального графа Дж. Совы определены следующие операции. Концептуальный граф Н может быть выведен из концептуального графа G путем:

• копирования;

• удаления (любого концепта, при сохранении связности графа и отсутствии "висячих" связей);

• разделения (удаления любой связи, при сохранении связности графа);

• обобщения;

• уточнения;

• соединения.

Поскольку построено биективное отображение из концептуального графа Дж. Совы в предложенную модель конц. графа, то данные операции применимы и для новой модели. Таким образом, операции удаления, разделения и соединения делают возможным разбитие CGnl = CGob-i + CGob2 + •■• + CGohN- При этом концептуальный граф отдельного объекта (Ob) определяется как: CGob = ({cot,} + {Ci\3uk = (с0ь,с;)}, {Uj\uj = (c0i,,ci)})

V. Концептуальный граф класса Java

ЕЯ-специфицированный класс языка Java может быть представлен в виде: classnis = (name, Fl, Mt, label), где:

пате - имя класса, FI - упорядоченный набор его полей (атрибутов), Mt - упорядоченный набор методов, label - отображение, задающее

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

набор терминологических аксиом Тс java'

Vfl € Fl : fl = (name f i, el /1 6 TCjav а), где:

clfi задает тип поля, a namef¡ - его имя;

Vmí 6 Mt : mt = (namemt, {0}

bigcup{argmt £ Tc j ava }). где:

argmt - тип аргумента метода.

Определение 4. концептуальный граф CGjava класса classnis

описывается как:

CGjava = (Cj,Uj, label), где:

С j - упорядоченный набор специфицированных классов, являющихся вершинами графа:

Cj = {c/assn¡3} + {argmt\rnt е classnts.Mt} + {cl/i\fl G classnis.Fl};

Uj - упорядоченный набор ребер графа:

Uj = {"свойство"} + {namemt\mt € class„is.Mt}

Vu е Uj : и = (classnis,argmti) или и = (class^^d;^)-,

Отображение label задает естественно-языковую разметку (маркеры)

для каждой вершины ребра графа в соответствии с разметкой класса:

label(u) = {"свойство"} + {/т„. |i = OQ.

VI. Сравнение фреймовых структур fm. Функция а задает способ сравнения элементов на множестве Fm: frrii < frrij <=> aUrmJmj) < О,

fmi = fmj &{fmii frrij) l/mjj frm <> fm¡ f(/m„/m;) = 0,

где последнее утверждение задает условие несравнимости элементов frn.

Такая функция а может быть построена следующим образом: ^(/тп/т,) = Еь x(Pik,PjJ^Uk Нх(Рг„,Р.гЛ1, где функция X задается как:

XÍPi,Pj)=

{ о, Vi П ^ = 0

l.Vj DVJ -l,ViCVj

|,|Vi| > \Vj\,Vif}Vj Ф®

-b\yi\ < \vilvif)vj

VII. Построение проекции из CGjava в CGnl-

Проекция П из CGjava — (Cj,Uj,labelj) в CGnl = (Cn,Un, label ц) -это упорядоченная пара П = (/, у) отображений / из f/j в Uy, и д из Cj в С'л', таких, что выполняются следующие условия:

1. Vk е Uj, f (и) € Un, и если с= CGjavai(u), то g(c) = CGNLi(f{u))

2. Vk е Uj,labelj(u) >> labelN(f(u)) О ff(/m„,/m/(u)) > О

3. Vc е Сj, labelj{с) >> labelN(g(c)) <г(/тс,/та(с)) > О

В главе также описывается работа генератора кода программ на языке Java на основе полученной концептуальной модели. Генерация кода программ разбивается на два этапа.

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

Второй этап кодогенерации заключается в вызове методов, соответствующим семантическим ролям, которые распознаны в тексте и интерпретируются как имена и характеристики действий (глаголы, наречия). Кроме того, вызываются установщики тех полей класса, которые распознаны как характеристики объекта и для которых найдены соответствующие описания в тексте; указанные связи обозначаются такими семантическими отношениями, как квалификатпив, локатив, температпив.

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

• использование стандартной библиотеки языка Java - Reflection, позволяющей программным образом получать описание классов языка Java, динамически генерировать объекты и вызывать их методы;

• создание оболочки для вызова внешнего морфологического анализатора mystem, являющегося заменяемым модулем системы;

• создание плагина для среды разработки Intellij IDEA, включая описание т.н. целевых концептов (intention), парсера естественного-языка и пр.

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

• учебно-игровой пример управления объектами трехмерной комнаты;

• среда управления базой генеалогических данных, автоматического построения родословного древа;

• система генерации автоматизированных тестов на основании текстовых описаний ошибок.

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

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

1. Усовершенствован метод описания расширенных сетей переходов. Создан простейший скриптовый язык для гибкой разметки семантических единиц и пометки ложных путей обхода.

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

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

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

5. Разработан программный комплекс Ка1арз, позволяющий создавать и использовать предложенную модель базы концептуальных знаний. Система Ка1арэ позволяет разработчикам создавать предметные базы знаний параллельно основной разработке приложений, а затем встраивать в разрабатываемые программные средства естественно-языковые интерфейсы. Созданный комплекс Ка1арв может применяться в учебных целях, для демонстрации принципов объектно-ориентированного программирования на естественноязыковых примерах. Система N0^3 может применяться в игровой индустрии для эмуляции естественно-языкового интерфейса пользователя. Возможна обработка потоков текстовых данных и настройка системы на регистрацию определенных информационных сигналов с последующей их произвольной обработкой.

6. Найдено применение системы для генерации автоматических тестов для проверки работоспособности программных комплексков на основании поступающих описаний ошибок в текстовом виде.

7. Подход генерации концептуального графа, разработанный в рамках диссертационной работы, применен автором и в других научно-исследовательских работах, в частности в модуле поиска авторефератов системы ШоМОКП (Свидетельство о государственной регистрации программы для ЭВМ № 2009613349).

8. Система Ка1арэ и ее основные компоненты зарегистрирована в Роспатенте в сентябре 2010 года:

(a) '^а1арз": Свидетельство о государственной регистрации программы для ЭВМ №2010616060.

(b) "Визуальный редактор расширенных сетей переходов": Свидетельство о государственной регистрации программы для ЭВМ №2010616061.

Основные результаты диссертации изложены в следующих публикациях:

1. Путилов Г. П., Лебедев А. С. Визуальный редактор расширенных сетей переходов // Качество. Инновации. Образование. Номер 5 (48), май, 2009 - с. 42-48

2. Лебедев .А. С. Система концептуального программирования с использованием лингвистического процессора // Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ. Тезисы докладов. М.: МИЭМ, 2008

3. Лебедев А. С. Механизм семантического поиска авторефератов // Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ. Тезисы докладов. М.: МИЭМ, 2009, с.101-102

4. Лебедев А. С. Редактор расширенных сетей переходов с графическим интерфейсом пользователя // Компьютерная лингвистика и интеллектуальные технологии: По материалам ежегодной Международной конференции «Диалог 2009» (Бекасово, 27-31 мая 2009 г.). Вып. 8 (15).- М.: РГГУ, 2009. с. 284-290

5. Лебедев А. С. Естественно-языковое программирование как средство извлечения знаний // Труды ИВМиМГ, Информатика, 9, Новосибирск, 2009, с. 64-71

6. Путилов Г. П., Лебедев А. С. Система естественно-языкового концептуального программирования Nalaps / / Материалы международной научной конференции Megaling 21-26 сентября 2009, Украина, Киев, с. 65-66

7. Лебедев А. С. Автоматическая генерация тестов на основании текстового описания ошибки с помощью системы Nalaps// Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ. Тезисы докладов. М.: МИЭМ, 2010, с.200-201

8. Путилов Г. П., Лебедев А. С. Создание автоматических тестов по текстовым пользовательским сообщениям средствами системы Nalaps // Материалы ежегодной Международной конференции «Диалог 2010» (на сайте конференции)

9. Lebedev A. Automatic test generation using the Nalaps system - natural-language processing tool // 11th Annual Conference for Software Testing Professionals "Discover the Tester in You July 6, 2010, University of Latvia, Riga

Подписано в печать: 27.02.11

Объем: 1.5 усл.п.л. Тираж: 120 экз. Заказ №771 Отпечатано в типографии "Реглет" 119526, г. Москва, пр-т Вернадского, 39 (495) 363-78-90; www.reglet.ru

Оглавление автор диссертации — кандидата технических наук Лебедев, Андрей Сергеевич

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

Введение.

Глава 1. Обзор литературы.

1.1. Обзор методов и средств морфологического анализа.

1.1.1. ITapcepMystem.

1.1.2. Компонент морфологического анализа системы ДИАЛИНГ.

1.2.3. ABBYY Retrieval & Morphology (ARM) Engine.

1.2.4. Универсальный морфосемантический словарь.

1.2. Обзор методов и средств синтаксического анализа.

1.2.1. Система LinkParser.

1.2.2. Синтаксический анализатор системы ЭТАП-З.

1.2.3. Компонент синтаксического анализа системы ДИАЛИНГ.

1.2.4. Расширенные сети переходов.

1.3. Обзор методов и средств семантического анализа.

1.3.1. Система ПОЛИТЕКСТ.;.

1.3.2. Компонент семантического анализа системы ДИАЛИНГ.

1.4. Системы извлечения знаний из текстов.

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

1.4.2. Система извлечения знаний из документов «Аналитический курьер».

1.5. Концептуальное программирование.

1.6. Языко-ориентированное программирование.

1.7. Естественно-языковое программирование.

1.7.1. Система ПЕГАС.

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

1.8. Онтология. Язык OWL.

1.9 Средства редактирования расширенных сетей переходов.

1.91. Augmented Syntax Diagram (ASD) Editor and Parser.

1. 9.2. Linguistic Tree Constructor.

1.9.3. TreeForm Syntax Tree Drawing Software.

1.10 Выводы.

Глава 2. Структура программного комплекса NALAPS.

2.1. Общая концепция системы.

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

2.2.1. Компонент морфологического анализа.

2.2.2. Компонент синтаксико-семантического анализа.

2.3. Концептуальный процессор.

2.4. Естественно-языковой спецификатор языка Java.

2.5. Кодогенератор.

2.6. Динамическая объектная система как способ представления смысла текста.

2.7. Обратный концептуальный и обратный лингвистический процессоры.

2.8. Редактор расширенных сетей переходов.

2.9. Выводы.

Глава 3.

3.1. Общие положения.

3.2. Работа морфологического процессора.

3.3. Работа синтактико-семантического анализатора.

3.4. Проблема интерпретации формализованного представления ЕЯ-текста на языке программирования.

3.5. Формальная модель концептуального графа.

3.6. Операция сравнения фреймовых структур ^.

3.7. Построение проекции из СО^в Свнь.

Глава 4.

4.1. Описание проекта в системе Иакрэ.

4.2. Основное окно программы.

4.3. Модульная интеграция со средой разработки ЬйеИу ГОЕА.

4.3.1. Инструмент естественно-языковой спецификации.

4.3.2. Организация связи между концептами в тексте и соответствующими им классами.

4.4. Построение синтактико-семантического и концептуального графов.

Глава 5.

5.1. Создание автоматических тестов на основе текстовых пользовательских сообщений.

5.2. Учебно-игровой аспект: пример реализации виртуальной трехмерной комнаты с объемными примитивами и имитацией гравитации.

5.3. Автоматическое построение генеалогического древа по текстовому описанию родословных отношений.

Введение 2011 год, диссертация по информатике, вычислительной технике и управлению, Лебедев, Андрей Сергеевич

Актуальность проблемы.

Разработка современного программного обеспечения (ПО) носит, как правило, циклический характер, обусловленный потребностью заказчика в постоянном улучшении программного продукта: добавлении новой функциональности, а также изменением внутренней логики бизнес-процессов. Практика разработки коммерческого ПО показывает, что характер поддержки и доработки такого ПО после внедрения не затрагивает архитектуры системы и носит преимущественно проблемно-ориентированный характер. Современные тенденции решения данной задачи заключаются в разработке так называемых малых языков или языков предметной области (domain specific language — DSL) (M. Mernik, 2005). Между тем, необходимо отметить сходство концепции «малых языков» с идеями концептуального программирования — подходом, изложенным Э.Х. Тыугу еще в 80-х годах XX века (Тыугу, 1984). Данный подход в силу ряда причин не получил к настоящему моменту развития и широкого применения. Этому, по всей видимости, способствовал уровень развития вычислительной техники и компьютерной лингвистики в тот исторический период. Однако в настоящее время идеи концептуального программирования вновь набирают все большую популярность, в том числе и на Западе (например, язык программирования XL (Dinechin, 2011)). К этим идеям относятся следующие аспекты:

• программирование в терминах предметной области решаемых задач;

• использование ЭВМ на этапе постановки задач.

Близость подхода, применяемого в DSL и концептуальном программировании, заключается также в тенденции приблизить язык программирования (или, говоря в терминах концептуального программирования, язык описания задачи) к естественному языку. Это позволяет, в конечном счете, не только максимально облегчить труд программиста, но и привлечь к такому «программированию» бизнес-аналитиков, незнакомых с обычными языками программирования и средствами разработки.

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

Цели и задачи настоящего исследования.

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

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

- анализ существующих моделей автоматического понимания текстов (АПТ); моделей естественно-языкового взаимодействия «человек-компьютер» и естественно-языкового программирования; языков и средств описания онтологий;

- выбор и синтез наиболее удачных подходов к автоматической обработке текстов (АОТ); выбор модели формализованного представления «смысла» текста;

- разработка концепции естественно-языкового спецификатора объектно-ориентированного языка программирования;

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

Методы исследования.

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

Научная новизна.

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

2. Предложен подход к представлению смысла текста в виде динамической объектной системы, состоящей из объектов — экземпляров классов языка Java.

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

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

5. В результате проведенной работы создана система, имеющая возможность модульной интеграции с существующей средой разработки программ на языке Java — Intellij IDEA, что позволяет использовать все современные средства интенционального программирования. Показана практическая возможность разработки естественных языков предметной области в системе Nalaps. ^

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

Основные положения, выносимые на защиту.

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

2. Способ представления «смысла» исходного естественноязыкового запроса (текста) в виде динамической объектной системы, а также возможность обратного перехода от данного представления к концептуальному графу. Предложенный подход позволяет в реальном времени отслеживать состояние объектов автоматизации и организовывать естественно-языковой диалог с системой.

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

Теоретическая ценность

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

Практическая ценность

Практическая ценность работы заключается в следующем:

1. Разработанная типовая структура программного обеспечения для организации связей классов языка Java с предметной областью, позволяет при необходимости создавать по предложенной методике аналогичные системы для других объектно-ориентированных языков программирования (С++, C#.net и др.)

2. Проведен ряд экспериментов, доказывающих практическую ценность созданного программного комплекса, а именно: создан ряд учебноигровых и практически применимых примеров использования системы Nalaps. Среди них:

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

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

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

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

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

- создание естественно-языковых интерфейсов общения пользователя с программными средствами;

- создание естественно-языковых языков предметной области для внутренних нужд разработки;

- автоматическая обработка потоков текстовой информации на предмет регистрации определенных информационных сигналов (событий) и построение автоматической реакции на них;

- учебно-игровой аспект обучения объектно-ориентированному программированию.

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

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

Публикации и апробации работы.

По материалам диссертационной работы опубликовано 1 статья, 8 тезисов на Всероссийских и международных конференциях, получено 3 свидетельства на регистрацию программ для ЭВМ, в которых были использованы методы, разработанные в рамках диссертационной работы. Результаты настоящего исследования были представлены на следующих научных конференциях:

1. Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ в 2008 г.

2. Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ в 2009 г.

3. Международная конференция «Диалог 2009» (Бекасово, 27-31 мая 2009 г.)

4. Пятая азиатская международная школа-семинар «Проблемы оптимизации сложных систем» ИВМиМГ СОР АН в 2009 г.

5. Международная научная конференция Ме§а1н^ 21-26 сентября 2009 г., Украина, Киев.

6. Научно-техническая конференция студентов, аспирантов и молодых специалистов МИЭМ в 2010 г.

7. Международная конференция «Диалог 2010».

8. 11th Annual Conference for Software Testing Professionals "Discover the Tester in You" (July 6, 2010, University of Latvia, Riga).

Структура диссертации и объем работы.

Диссертация изложена на 173 страницах машинописного текста и состоит из введения, обзора литературы, обсуждения результатов, экспериментальной части, выводов и списка литературы, включающего 73 источника. Диссертация иллюстрирована 44 рисунками и содержит и 4 таблицы.

Заключение диссертация на тему "Разработка и исследование системы концептуального программирования с использованием лингвистического процессора"

Основные результаты работы:

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

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

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

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

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

6. Найдено применение системы Ка1арБ как средство генерации автоматических тестов для верификации работоспособности программного обеспечения в описываемых на естественном языке в текстовом виде сообщений об ошибках программы.

7. Созданный комплекс Ма1арэ может также применяться в учебных целях для демонстрации принципов объектно-ориентированного программирования на естественно-языковых примерах.

8. Система Ка1арэ может применятся в индустрии компьютерных игр для реализации естественно-языкового интерфейса пользователя.

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

10. Методика построения лингвистического процессора, разработанная в рамках диссертационной работы, применена автором и в других научно-исследовательских работах, в частности, в модуле поиска авторефератов системы 1пй)№ОКК (Свидетельство о государственной регистрации программы для ЭВМ № 2009613349).

11. Система Ка1арБ и ее основные компоненты зарегистрирована в Роспатенте в сентябре 2010 года: а. «ЫакрБ»: Свидетельство о государственной регистрации программы для ЭВМ №2010616060.

Ь. Визуальный редактор расширенных сетей переходов: Свидетельство о государственной регистрации программы для ЭВМ №2010616061.

Библиография Лебедев, Андрей Сергеевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. About Selenium В Интернете. // Selenium HQ Web application testing system. -29 01 2010 г. http://seleniumhq.org/about/.

2. Berners-Lee Tim, Hendler James и Lassila Ora The Semantic Web Журнал. // Scientific American. 17 may 2001 г.

3. Best Java IDE :: Do more high-quality code in less time with IntelliJ IDEA B Интернете. http://www.jetbrains.com/idea/.

4. Chein M. и Mugnier M. L. Conceptual Graphs are also Graphs Доклад. / LIRMM (CNRS and Universite Montpellier II). 1995.

5. Chomsky N. Aspects of the Theory of Syntax Книга. Cambridge, MA : MIT Press, 1965.

6. Daniel D. K. Sleator, Davy Temperley Parsing English with a Link Grammar Конференция.: Pittsburgh : Carnegie Mellon University 1, 1991. - CMU-CS-91-196.

7. Dinechin Christophe de The XL Programming Language В Интернете. // XL Extensible Language.- 31 01 2011 г. 31 01 2011 г.-http://xlr.sourceforge.net/language.

8. Graphviz Graph Visualization Software В Интернете. // Graphviz. - 31 05 2010 г. - http://www.graphviz.org.

9. Knuth Donald E. Literate Programming Журнал. California: Stanford University Center for the Study of Language and Information, 1992 г. - ISBN 9780937073803.

10. M. Mernik J. Heering, A.M. Sloane When and how to develop domain-specific languages Журнал. // ACM Computing Surveys (CSUR). New York, NY, USA : [б.н.], 2005 г. - Т. Volume 37 Issue 4.

11. Mason James A. Augmented Syntax Diagram Grammars В Интернете. // Augmented Syntax Diagram Grammars.- 15 05 2010 г.-http://www.yorku.ca/jmason/asdgram.htm.

12. OWL, язык веб-онтологий. Краткий обзор В Интернете. 24 05 2010 г.http://www.sherdim.rsu.ru/pts/semanticweb/REC-owl-features20040210ru.html.

13. Richens R. Н. Preprogramming for Mechanical Translation Статья. // Mechanical Translation. 1956 г. - Т. Vol. 3. - стр. p. 20.

14. Smith Michael К. и Chris Welty Deborah L. McGuinness OWL Web Ontology Language Guide В Интернете. W3C, 24 05 2010 г.

15. Sowa J.F. Conceptual Structures Information Processing in Mind and Machine Книга. - [б.м.]: Addison-Wesley, 1984.

16. Sowa John F. Chapter 5. Conceptual Graphs Раздел книги. // Handbook of Knowledge Representation / авт. книги F. van Harmelen V. Liftchitz, B. Porter. -[б.м.] : Elsevier, 2008.

17. Winograd Terry Procedures as a Representation for Data in a Computer Program for Understanding Natural Language Книга. [б.м.] : Massachusetts Institute of Technology, 1971.

18. Апреснян Ю. Д. и др. Лингвистическое обеспечение системы ЭТАП-2 [Книга]. М. : Наука, 1989.

19. Гурин Р.Ф. Романенко С.А. Язык программирования Рефал Плюс Книга. -М. : Интертех, 1991.

20. Дастин Э., Рэшка Д. и Пол Д. Автоматизированное тестирование программного обеспечения. Внедрение, управление и эксплуатация Книга. -М. : Изд-во «Лори», 2003.

21. Дмитриев С. Языково-ориентированное программирование: следующая парадигма. Журнал. //RSDN Magazine. 2005 г. - 5.

22. Зализняк А. А. Грамматический словарь русского языка Книга. М. : [б.н.], 1977. - 4-е издание.

23. Автоматическая генерация тестов для графического пользовательского интерфейса по UML диаграммам действий В Интернете. // Труды Института Системного Программирования РАН. 29 01 2010 г. -http ://www. citforum.ru/SE/testing/ generationuml/.

24. Корухова Ю. С. Система автоматического синтеза функциональных программ Книга. Москва : МГУ им. М.В. Ломоносова, 2005. Краткое описание технологии InBASE [В Интернете]. -http://www.inbase.artint.ru/proinfo/techpub.asp.

25. Лебедев А. С. Естественно-языковое программирование как средство извлечения знаний Конференция. // Труды ИВМиМГ, Информатика, 9. -Новосибирск : [б.н.], 2009. стр. 64-71.

26. Леонтьева Н. Н. Автоматическое понимание текстов: системы, модели, ресурсы: учеб. пособие для студ. лингв, фак. вузов Книга. М. : Издательский центр «Академия», 2006.

27. Люгер Джордж Ф. Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е издание Книга. М. : Издательский дом "Вильяме", 2005.

28. Мельчук И. А. Опыт теории лингвистических моделей "Смысл Текст" Книга. М. : [б.н.], 1999. - 2-е издание.

29. Мельчук И. А. Русский язык в модели «Смысл <-» Текст» Книга. Москва-Вена : Школа "Языки русской культуры", Венский славистический альманах, 1995.

30. Николай Ильин Сергей Киселёв, Сергей Танков, Владислав Рябышкин

31. Технологии извлечения знаний из текста Журнал. // Открытые системы. -2006 г. 6.

32. Ножов И.М. Реализация автоматической синтаксической сегментации русского предложения Книга. Москва : [б.н.], 2003.

33. Пономарева С.М. Система формирования концептуального представления предметной области на основе анализа проблемно-ориентированных естественно-языковых текстов: модели, методы и программное обеспечение Книга. Переславль-Залесский : [б.н.], 1999.

34. Путилов Г.П. Лебедев A.C. Визуальный редактор расширенных сетей переходов Журнал. // Качество. Инновации. Образование. май 2009 г. - 5 (48). - стр. 42-48.

35. Путилов Г.П. Лебедев A.C. Система естественно-языкового концептуального программирования Nalaps Конференция. // Материалы международной научной конференции Megaling 2009, 21-26 сентября 2009. -Киев : [б.н.], 2009. стр. 65-66.

36. Сокирко А. АОТ :: Технологии :: Синтаксический анализ В Интернете.// АОТ. 14 05 2010 г. - http://aot.ru/docs/synan.html.

37. Сокирко А. В. АОТ Автоматическая Обработка Текста В Интернете. // АОТ. - 14 05 2010 г. - http://aot.ru/index.html.

38. Сокирко А. В. Морфологические модули на сайте www.aot.ru Конференция. // Материалы международной конференции Диалог 2004. -М. : РГГУ, 2004.

39. Сокирко А. В. Семантические словари в автоматической обработке текста: по материалам системы ДИАЛИНГ Книга. Москва : [б.н.], 2001. Степанов Ю. С. Имена, предикаты, предложения. Семиологическая грамматика. [Книга]. - [б.м.] : Едиториал УРСС, 2007.

40. Тамм Б.Г. Тыугу Э.Х. Представление машиностроительных моделей в базах знаний и персональные САПР Журнал. // Вестник РАН. Журнал №5. 1988 г. - стр. 39.

41. Хорстман К. С. и Корнелл Г. Java 2. Библиотека профессионала, том 2. Тонкости программирования Книга. [б.м.] : Вильяме, 2009. - ISBN 978-58459-1482-8, 978-01-3235479-0.

42. Правообладателе ли): Государственное образовательное учреждение высшего профессионального образования «Московский государственный институт электроники и математики (технический университет) » (Ки)

43. Автор(ы): Лебедев Андрей Сергеевич, Путилов Георгий Петрович (Ки)1. Заявка № 2010614373

44. Дата поступления 20 ИЮЛЯ 2010 Г.

45. Зарегистрировано в Реестре программ для ЭВМ14 сентября 2010 г.

46. Руководитель Федеральной службы по интеллектуальной собственности, патентам и товарным знакам1. Б.П. СимоновттшШшАт фвдшращшш1. СВИДЕТЕЛЬСТВОо государственной регистрации программы для ЭВМ2009613349а а а а а а а а1пЬМОКИ

47. Правообладатель(ли): Государственное учреждение «Научно-исследовательский институт микроэлектроники и информационно-измерительной техники Московского государственного института электроники и математики (технического университета) > (1Ш)