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

кандидата технических наук
Бевзов, Алексей Николаевич
город
Новосибирск
год
2009
специальность ВАК РФ
05.13.18
Диссертация по информатике, вычислительной технике и управлению на тему «Информационно-поисковая система для разработки программного обеспечения систем автоматизации на основе паттернов проектирования»

Автореферат диссертации по теме "Информационно-поисковая система для разработки программного обеспечения систем автоматизации на основе паттернов проектирования"

На правах рукописи □и-з"--

Бевзов Алексей Николаевич

Информационно-поисковая система

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

05.13.18 "Математическое моделирование, численные методы и комплексы программ"

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

I и /•

Новосибирск - 2009

003466718

Работа выполнена в Институте автоматики и электрометрии СО РАН

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

Лубков Анатолий Александрович

Официальные оппоненты: доктор технических наук

Резник Александр Львович доктор технических наук Хабаров Валерий Иванович

Ведущая организация Институт систем информатики СО РАН

Защита состоится

» 2009 г. в ча<

часов на заседании

диссертационного совета Д 003.005.01 при Институте автоматики и элекгромегрии СО РАН, 630090, Новосибирск, проспект Акад. Коптюга, 1.

С диссертацией можно ознакомиться в библиотеке Института автоматики и электрометрии СО РАН.

Автореферат разослан " 3> " 2009 г.

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

д.ф.-м.н.

Насыров К. А.

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

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

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

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

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

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

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

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

Научная новизна работы заключается в том, что:

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

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

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

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

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

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

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

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

1. Рассмотрение текста в качестве динамического информационного объекта позволяет строить модели поведения различных характеристик текста и создавать на их основе поисковые алгоритмы дня решения задач автоматического индексирования текстов на естественном языке.

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

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

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

Практическая значимость созданной ИПС состоит в том, что:

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

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

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

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

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

- Четвертой всероссийской конференции "Распознавание образов и анализ изображений: новые информационные технологии (РОАИ)". Новосибирск, 1998.

- Четвертом сибирском конгрессе по прикладной и индустриальной математике (ИНПРИМ-2000), Новосибирск 2000.

- Международной научно-технической конференции "Информационные системы и технологии" (ИСТ-2000), Новосибирск 2000.

- IASTED International Conference on Automation, Control, and Information Technology. June 10-13, 2002, Novosibirsk, Russia.

- Международном совещании "Кремний - 2004". 5-9 июля, Иркутск.

- IASTED International Conference on Automation, Control, and Information Technology. June 20-24, 2005, Novosibirsk, Russia.

- 10-ой Всероссийской научной конференции "Электронные библиотеки: перспективные методы и технологии, электронные коллекции" - RCDL'2008, Дубна, Россия, 2008.

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

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения и списка литературы. Общий объем работы - 145 страниц, 42 рисунка и 10 таблиц, библиография содержит 102 наименования. Личный вклад.

Автором разработана методика и алгоритмы проведения автоматического индексирования текстов, создана информационно-поисковая система для работы с паттернами проектирования, разработаны и реализованы ряд программных модулей в проекте по автоматизации Новосибирской ГЭС и в проекте по созданию автоматизированной ростовой установки.

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

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

Перечислены основные методы исследования, которые применяются в данной работе.

В первой главе дается анализ существующих информационно-поисковых систем, рассмотрены основные понятия и принципы их создания. Указаны основные типы информационно-поисковых языков (ИПЯ), а также механизмы индексирования, которые используются при создании информационно-поисковых систем. Среди базовых типов языков рассматриваются следующие типы ИПЯ: 1) с иерархической классификацией; 2) предметных заголовков; 3) ключевых слов; 4) с синтаксисом. Указываются наиболее характерные особенности этих языков, отмечаются их положительные и отрицательные стороны. Особое внимание уделяется анализу поиска информации в Интернет, а также существующим подходам для обработки текстов на естественном языке в современных лингвистических процессорах.

Анализ возможности поиска информации в сети Интернет проведен на примере ряда наиболее популярных и доступных специализированных поисковых машин (ПМ). Этот анализ выполнен с учетом задачи поиска смысла в тексте на естественном языке. Рассмотрены возможности различных ПМ, перечислен ряд атрибутов, которые используются на этих ПМ для формирования пользовательского запроса при поиске информации. Указано на недостаточность существующих средств, необходимых для эффективного поиска смысловой информации в существующих ПМ Интернета.

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

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

В завершении первой главы, на основе проведенного анализа сформулированы требования к созданию ИПС. Согласно этим требованиям ИПС должна:

1. Хранить и обеспечивать поиск текстов на естественном языке.

2. Иметь такую внутреннюю логику работы, которая не будет привязана к какому-либо конкретному языку.

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

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

5. Быть доступной широкому кругу пользователей.

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

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

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

Для формализации экспертных знаний выделяются и определяются такие величины, как:

1пР. - значение ; -го входного параметра,

ЫРМщ - минимальное значение /-го параметра,

¡пРМах, - максимальное значение /-го параметра,

ОшР - значение выходного параметра,

ОшРМт - минимальное значение выходного параметра,

ОшРМах - максимальное значение выходного параметра,

- количество входных параметров, 1п1: - входная ЛП, соответствующая /-му входному параметру,

/ = 1, ... Nin - номер входного параметра, а также номер ЛП, соответствующий этому параметру, Щ, - j - ый терм ; - ой ЛП hit, , Nterms - количество термов ЛП, j — ... Nterms - номер терма ЛП,

/.ihj.j(x) - характеристическая функция j-го терма / - ой входной ЛП 1пЦ , определенная на области значений х от 1пРМЫ, до ¡пРМщ _ OutL - выходная лингвистическая переменная, соответствующая выходному параметру Out?,

рОи/^х) - характеристическая функция j-го терма выходной лингвистической переменной OutL , определенная на области значений л- от OutPMm до OutPMax OutTj - j - й терм выходной лингвистической переменной OutL .

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

1) определение ЛП и дискретизацию областей значений параметров;

2) ввод экспертных знаний;

3) получение продукционных правил (построение нечеткого отношения между значениями входных и выходных параметров).

Обработка поискового запроса включает:

1) формулировка пользовательского запроса;

2) фазификация четкого входа и определение степени влияния каждого продукционного правила;

3) моделирование функциональной зависимости нечеткими композициями;

4) дефазификация полученного результата для определения четкого значения выхода;

5) определение целевого объекта.

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

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

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

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

Определение всех предложений в тексте. В качестве отдельных объектов выделялись все предложения, которые присутствуют в тексте. Критерием наличия предложения являлись такие знаки препинания, как ". ? !;". Определение границ областей относительно позиции гармонического центра (ГЦ). Для каждого предложения определялись значения гармонического центра. Позиция гармонического центра равна 0.618 от начала предложения и измеряется в словах. Кроме того, выделялись границы трех областей, относительно позиции гармонического центра - область гармонического центра, область перед гармоническим центром и область после гармонического центра.

Расчет параметров каждого слова относительно положения ГЦ. На этом этапе для каждого слова, входящего в каждое предложение, проводился расчет параметров этого слова относительно позиции ГЦ в этом предложении.

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

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

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

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

*„('„), ХМ.....ЗД.... Х0(О (1)

где:

Л"0(/0) - экспериментально измеренное значение какой-либо скалярной переменной Х0 исследуемого объекта в момент времени /0. Х0(1,) - экспериментально измеренное значение этой же скалярной переменной Х0 в момент времени /, = /0 + д/ • /.

Имея этот временной ряд, можно получить п-мерные вектора XI, Х2,... ХЫ для реконструкции аттрактора. Значения компонент этих векторов получаются из элементов исходного временного ряда так, как это показано в таблице 1.

Таблица 1. Получение векторов реконструкции из исходного временного рада.

Вектор XI Вектор Х2 Вектор XI Вектор ХИ

Х0(О ¿Ж)

ад+до ад+л/) *оСу+Д<)

....

*„(/0+(»1-1)-Д/) ДГо0,+(!»-!)• до ДГ„(*„+(л-1)-Д|)

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

С(г) = ~^в(г-\Х1-Х1\) (2)

где:

N - количество точек временного ряда (точнее, количество векторов реконструкции)

- номера векторов реконструкции (1-Л0, 0{х) - функция Хевисайда:

в(х) = 1 еслих>0 0(х) =. 0 если х < 0,

XI — точка (вектор) фазового пространства с координатами (Х0(1,), ...

| X,- х11 - расстояние между точками Хг и X) , г - некоторая заданная величина.

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

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

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

2) Определить, как изменяется при возрастании и наклон этих графиков ¿1 вблизи начала координат (2).

3) Если величина </ в зависимости от п выходит на плато выше некоторого относительно небольшого п, то представленная данным временным рядом система должна иметь аттрактор размерностью <1. В этом случае размерность п

п

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

Величину с! можно считать некоторой идентификационной характеристикой исследуемой динамической системы.

В третьей главе описывается созданная информационно-поисковая система. Эта глава состоит из двух частей, в каждой из которых описываются взаимодополняющие части ИПС, которые выделены в отдельные модули с точки зрения той роли, которую каждая из них играет в ИПС. Такими частями являются модуль поиска по ключевым словам (модуль ПКС) [I] и модуль поиска по признакам контекста задачи (модуль ППК) [2].

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

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

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

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

Для получения из текстов различных моделей временных рядов, использовалась различная интерпретация таких параметров, как определение наблюдаемой переменной (НП, например, повторяющегося слова), способ получения значений НП (ЗНП) и т.д. Идентификация каждой модели задавалась с помощью: 1) определения того, как получаются временные ряды в результате компьютерной обработки текста; 2) определения момента проведения измерения ЗНП; 3) определения длины временного интервала от одного времени измерения до другого (измеряется в словах); 4) определения количества точек временного ряда и того, как они получаются; 5) определения того, что понимается под НП; 6) определения того, как считаются ЗНП.

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

п

Для исследования полученных временных рядов сначала строились графики зависимости корреляционной функции от параметра /■, точнее строились графики зависимость !п(С(/-)) от 1п(г) .Такие графики строились для разных значений п (размерность фазового пространства). После этого полученный набор графиков анализировался с целью определения момента (значение параметра п), когда наклон кривой корреляционной функции перестанет увеличиваться по мере увеличения параметра п.

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

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

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

о

и г

Рис. 1. График наклона корреляционной функции для разных значений размерности фазового пространства и ( 2 (верхняя линия) - 8 (нижняя линия) ) для ВР с аттрактором (затухающий осциллятор).

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

1-П г

Рис. 2. График наклона корреляционной функции для разных значений размерности фазового пространства п ( 2 (верхняя пиния) - 8 (нижняя линия)) для ХВР (хаотичный сигнал).

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

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

Формирование набора признаков для каждого ПП происходит в несколько этапов. Сначала составляется основной набор на основании существующих каталогов с описанием ПП. Полученный основной набор признаков может расширяться по мере эксплуатации ИПС. Расширение набора поисковых признаков ведется с учетом различных стадий унифицированного процесса (УП) разработки программного обеспечения. Этот процесс включает такие основные этапы, как фаза постановки задачи, формулировки требований, анализа, проектирования, реализации, тестирования и сопровождения.

На рис. 3 показана диаграмма основных объектов ИПС, которые используются при поиске паттернов.

С11и1еУс1:г предназначен для хранения экспертного правила в виде соответствия между значениями входных и выходных переменных. СЭЫШеУсЬ- является базой данных, в которой хранятся все экспертные правила. СЬу предназначен для работы с ЛП. СТегт представляет терм ЛП. СШЬу является базой данных, в которой хранятся все используемые ЛП. СРйгп описывает паттерн проектирования. СВЬРПпв является объектно-ориентированной базой данных, в которой содержатся все паттерны, которые в состоянии отыскивать ИПС. СЯи1е содержит правило ИПС, необходимое для идентификации ПП. СОЫ1и1е является интеллектом ИПС. Здесь содержатся все правила, которые необходимы для идентификации ПП.

СОЬЯЫеУйг

4<п1|(с1мЛ вОЛ^ПаХ)

СЯЛеУйг

о- *А<1(Л_¥НатеО

* ОеИ-Чокат" |_*Нат«)0

|0-

си

*1пИ0

♦©аШатаСО

*в«ЮЬРпсТу|>еОС1 ^ОаШитОГГ «11П<)0 ♦ОаНеппОп! ТагтНит}0 .*8«1МахТатС<1о 11 иУаОО

СТегт

40а111л8У|0 ♦веШатеО ♦««ШтУаЮеО ♦«еШахУаГиаО

СОЫ^е

*||>И(е11»Г ОиЮотеиЫапчХ) рГ/сД

СРи1е

♦(пИО

СОЬРЙГПЗ

*А411И1тО *в«1Р»гпО

СРЙГП

«1Ы100 *51У«РгЬЬК)((14й Р)0 *®«В>гЬЬКйО

Рис. 3. Диаграмма объектов экспертной системы для проектирования

поиска паттернов

Алгоритм поиска паттерна с учетом описанных выше объектов выглядит следующим образом:

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

2. Из базы данных паттернов (СОЬРйгпз) выбирается первый паттерн. Для этого паттерна определятся имя файла, в котором содержатся экспертные знания с информацией для идентификации данного паттерна. В дальнейшем на основе этой информации будут построены правила ИПС.

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

4. На основании полученной базы векторов данных формируется база данных с продукционными правилами ИПС.

5. После того, как база данных с правилами ИПС сформирована, все правила проверяются на совпадение. В результате проверки дублирующие правила исключаются из базы данных. Этот шаг выполняется с целью оптимизации, благодаря чему сокращается время поиска.

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

7. Из базы данных паттернов (СЭЬРйгпб) выбирается следующий ПП. Для нового ПП повторяются шаги со 2-го по 6-ой. Данная процедура повторяется для всех ПП, хранящихся в базе данных паттернов. .

8. Для всех ПП,' хранящихся в базе данных паттернов (СОЬРМгпз) выбирается тот ПП, вероятность соответствия которого заданному контексту (набору идентификационных признаков) оказывается наибольшей среди всех паттернов. Этот паттерн и считается наиболее подходящим для того набора признаков, который был задан в самом начале операции поиска.

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

В четвертой главе описывается процесс создания программного обеспечения с применением паттернов проектирования, часть из которых была найдена с помощью разработанной и описанной в 3-ей главе информационно-поисковой системы. Рассматривается создание программного обеспечения в 2-х проектах по автоматизации промышленных объектов: 1) Новосибирской ГЭС [3], [4] и 2) ростовой установки по выращиванию монокристаллов кремния [5], [6], [7]. При описании созданного ПО в обоих проектах поиск и использование паттернов проектирования рассматривается в эволюционном аспекте, начиная от этапа постановки задачи и завершая этапом эксплуатации созданной системы автоматизации.

В начале 4-ой главы описывает опыт создания ПО для Новосибирской ГЭС. Новосибирская ГЭС является технологическим объектом, который состоит из семи гидроагрегатов. Наблюдение и контроль за работой гидроагрегатов осуществляется с помощью автоматизированной системы технического обслуживания и управления (АСТОУ), имеющей архитектуру распределенной иерархичной компьютерной сети.

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

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

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

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

создавалось на основе предварительно выработанной концепции единого информационного пространства системы автоматизации [9],[10], [11], [12]. При разработке этой концепции был введен ряда абстрактных понятий, касающихся возможности универсального описания различных механизмов передачи и хранения данных. Для реализации этой концепции был создан ряд инструментов, необходимых для возможности удобной и гибкой настройки на различные элементы этой распределенной гетерогенной сети.

Рис. 4. Диаграмма компонентов распределенной сети системы автоматизации

Новосибирской ГЭС.

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

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

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

В работе рассмотрены вопросы поиска и использования паттернов проектирования в одном из ключевых программных модулей ростовой установки - базы данных параметров, которая используется для хранения основных текущих параметров, определяющих процесс выращивания кристалла [13], [14], [15]. Этот компонент обеспечивает доступ к этим

параметрам для решения задам визуализации, управления и ведения архива плавки.

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

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

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

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

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

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

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

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

ОСНОВНЫЕ ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ

1. А.Н. Бевзов Разработка методов автоматического индексирования текстов на естественном языке для информационно-поисковых систем. //

Труды 10-й Всероссийской научной конференции "Электронные библиотеки: перспективные методы и технологии, электронные коллекции" - RCDL'2008, Дубна, Россия, 2008. С.401-404.

2. А.Н. Бевзов. Использование экспертных систем в задачах проектирования программного обеспечения. Датчики и системы. 2002. № 12. с. 31-33.

3. А.Н. Бевзов, А.В. Курочкин. Специализированные инструментальные средства анализа, визуализации и управления технологических объектов. // Труды четвертой всероссийской с международным участием конференции "Распознавание образов и анализ изображений: новые информационные технологии (РОАИ)". Новосибирск, 1998.

4. A.N. Bevzov, A.V. Kurochkin. Specialized Hardware for the Analysis, Visualization and Control of Technological Objects. Pattern recognition and Image analysis, Vol. 9, No 2,1999, pp. 222-224.

5. А.Н. Бевзов, С.В. Окунишников, А.В. Курочкин. Программное обеспечение оператора для контроля и управления процессом выращивания монокристаллом кремния. Кремний-2004. Тезисы докладов совещания. Иркутск, 2004, с.79.

6. А.Н. Бевзов, Окунишников С.В. Курочкин А.В. Программное обеспечение оператора установки по выращиванию монокристаллов кремния. Датчики и системы, 2004, № 12, с.27-29.

7. Bevzov A.N., Okunishnikov S.V., Kurochkin A.V. Operator level software of the silicon single crystal furnace // Proc.of the LASTED International Conf. on Automation, Control, and Information Technology : Automation, Control, and Applications (ACIT 2005). Novosibirsk, Russia, 2005,126-128.

8. A. N. Bevzov Usage of Design Patterns for communication applications in automation systems. // Proc.of the IASTED International Conf. on Automation, Control, and Information Technology: Automation, Control, and Applications. (ACIT 2002). Novosibirsk, Russia, 2002.

9. А.Н. Бевзов. Коммуникационный программный интерфейс для сопряжения информационных потоков в системах автоматизации промышленных объектов. Датчики и системы. 1999.

10. А.Н. Бевзов. Передача данных и организация межмодульного взаимодействия в задачах автоматизации промышленных объектов. //Труды 4-го сибирского конгресса по прикладной и индустриальной математике (ИНПРИМ-2000), Новосибирск, 2000.

11. Бевзов А.Н. Модель единой коммуникационной системы в задачах автоматизации промышленных объектов. // Труды международной конференции "(ИСТ 2000)". Новосибирск, 2000.

12. А.Н. Бевзов, С.А. Лылов. Проектирование коммуникационной системы в задачах автоматизации технологических объектов. Датчики и системы. 2001.

13. А.Н. Бевзов. Использование паттернов проектирования для организации программного обеспечения установки по выращиванию монокристаллов кремния. Кремний-2004. Тезисы докладов совещания. Иркутск, 2004, с.63.

14. А.Н. Бевзов. Применение паттернов проектирования при создании автоматизированной установки по выращиванию монокристаллов кремния. Датчики и системы, 2004, № 12, с.22-24.

15.Bevzov A.N. Design patterns based software in automated furnace for growing silicon single crystal // Proc. of the IASTED International Conf. on Automation, Control, and Information Technology: Automation, Control, and Applications. (ACIT 2005). Novosibirsk, Russia, 2005, 121-125.

Подписано в печать 19.03.2009 г. Формат 60x84/16. Объем 1.4 пл. Тираж 100 экз. Заказ № 115. Отпечатано в типографии Новосибирского государственного техникума печати 63004В, Новосибирск, ул. Немировича-Данченко, 102/1.

Оглавление автор диссертации — кандидата технических наук Бевзов, Алексей Николаевич

Введение

Оглавление

Глава 1. Анализ информационно-поисковых систем.

1.1 Примеры некоторых ИПС.

1.2 Возможности поиска информации в Интернете.

1.3 Обработка текстов на естественном языке.

1.4 Основные составляющие ИПС.

1.4.1 Основные типы информационно-поисковых языков (ИПЯ).

1.4.2 Базовые принципы обработки текстов на естественных языках (ЕЯ).

1.4.3 Индексирование документов.

1.5 Эволюция и тенденции развития ИПС.

1.6 Построение экспертных систем на основе алгоритмов нечеткой логики.

1.7 Изучение сложных объектов в синергетике.

1.8 Исследование формальной структуры текстов на естественном языке.

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

2.1 Частично автоматизированный поиск информации.

2.1.1 Поиск 1111 на основе методов нечеткой логики.

2.1.2 Определение ЛП и дискретизация областей значений параметров.

2.1.3 Ввод экспертных знаний.

2.1.4 Получение продукционных правил (построение нечеткого отношения между значениями входных и выходных параметров).

2.1.5 Формулировка пользовательского запроса.

2.1.6 Фазификация четкого входа и определение степени влияния каждого продукционного правила.

2.1.7 Моделирование функциональной зависимости нечеткими композициями.

2.1.8 Дефазификация полученного результата для определения четкого значения выхода.

2.1.9 Определение целевого объекта.

2.2 Полностью автоматическая обработка и поиск текстовой информации.

2.2.1 Методология синергетики. Отказ от полного динамического описания феномена и переход к поиску аттрактора

2.2.2 Синергетический взгляд на информацию.

Информация как эволюционный процесс.

2.2.3 Возможности синергетики при обработке временных рядов.

2.2.4 Алгоритм обработки временного ряда для оценки размерности аттрактора.

2.2.5 Текст как сложный объект.

2.2.6 Аналогия между текстом и физическим объектом.

2.2.7 Методика предварительной обработки текста.

2.2.8 Получение временных рядов и их обработка.

2.3 Основные особенности для программной реализации ИПС.

Глава 3. Создание ИПС для поиска паттернов проектирования.

3.1 Создание модуля ПКС.

3.1.1 Методика исследования текста с целью выявления ключевых слов на основе обработки временных рядов.

3.1.2 Модели текста и алгоритмы обработки данных для поиска аттракторов.

3.1.3 Проведение сравнительных испытаний.

3.2 Создание модуля ППК

3.2.1 Создание списка идентификационных признаков 1111.

3.2.2 Ввод экспертных знаний для определения ГШ.

3.2.3 Ввод пользовательского вопроса для поиска ГШ.

3.2.4 Алгоритм поиска ГШ и диаграмма объектов модуля ППК.

3.2.5 Настройка модуля ППК на предметную область

3.3 Оценка созданной информационно-поисковой системы.

Глава 4. Использование созданной ИПС для поиска паттернов проектирования при создании программного обеспечения в проектах автоматизации промышленных объектов.

4.1 Создание коммуникационного программного обеспечения для системы автоматизации Новосибирской ГЭС.

4.1.1 Новосибирская ГЭС как объект автоматизации.

4.1.2 Поиск паттернов для коммуникационной системы.

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

4.2.1 Ростовая установка как объект автоматизации.

4.2.2 База данных параметров.

4.3 Эффективность использования паттернов проектирования при создании программного обеспечения для автоматизации промышленных объектов.

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

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

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

1) Классические работы по объектному проектированию и программированию [1], [2].

2) Классические работы по Windows технологиям программирования, в том числе касающиеся программирования на уровне API, предоставляемого операционной системы [3], программирования на уровне поддержки библиотеки MFC [4], работы с важнейшей технологией Windows программирования COM/DCOM на элементарном уровне [5], [6], работы с технологией COM/DCOM на уровне поддержки библиотеки ATL [7], [8]. Такого рода работы часто сопровождаются электронной версией книги с поставляемой вместе с ней справочно-поисковой системой.

3) Работы с описанием различных успешных архитектурных решений создания программного обеспечения для ряда типовых задач в рамках парадигмы объектного программирования. В качестве примеров можно указать работы [9], [10], [11], [12].

4) Справочно-поисковая система крупнейших фирм-производителей программного обеспечения, например фирмы Microsoft (MSDN). Такие справочные системы либо устанавливаются на компьютер пользователя, либо доступны на сервере фирмы производителя [13].

5) Специализированные, ориентированные на разработку программного обеспечения справочно-поисковые системы, доступные в Интернете. В качестве примера можно указать такие информационные \\/еЬ-сайты, как [14], [15].

6) Популярные поисковые машины Интернета, например [16].

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

Помимо нарастания объема информации есть еще ряд факторов, которые требуют более быстрой и качественной ее обработки. К таким факторам следует отнести:

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

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

3) расширение количества проектов, связанных с задачами системной I интеграции (в таких проектах разработчик ПО не свободен в выборе средств разработки программного обеспечения, а вынужден пользоваться тем, что уже заложено в архитектуру разрабатываемых или уже реализованных продуктов);

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

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

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

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

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

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

Паттерны проектирования (1111) — это наиболее удачные проектные решения, которые являются обобщением опыта многих разработчиков, для решения типичных задач, возникающих при создании программного обеспечения. Одним из идейных вдохновителей создания паттернов проектирования явился Кристофер Александер, не программист, а архитектор по профессии. Он определил понятие паттерна как "решение проблемы в контексте" [17]. При этом каждый паттерн и описывает проблему, которая возникает в типичном контексте, и предлагает принцип ее решения.

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

Специалисты в области создания программного обеспечения признают необходимость применения паттернов проектирования для создания гибкого,' допускающего модификацию, обладающего возможностью повторного использования программного кода [1], [9], [10], [11], [18].

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

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

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

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

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

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

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

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

Основными методами исследования в данной работе являются:

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

2) методы математического аппарата нечеткой логики (при настройке ИПС с помощью создания решающих правил на основе знаний экспертов, обработке запросов пользователей на основе введенных знаний);

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

4) метод проведения численных экспериментов (во время обработки текста на естественном языке и получения временных рядов).

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

Методологические основы к исследованию сложных объектов были заложены А. Пуанкаре, И. Пригожиным, Г. Хакеном. Математический аппарат и методы решения и качественного исследования дифференциальных уравнений, описывающих динамику поведения сложных объектов, были исследованы в работах А. Пуанкаре, A.M. Ляпунова, Р.Тома, А.Н. Колмогорова, И.В. Арнольда и многих других. При создании информационно-поисковой системы использовались принципы, изложенные в работах JT.A. Заде, которые затем были применены для решения задач нечеткого управления промышленными объектами [19]. В методическом отношении, при построении информационно-поисковой системы использовались идеи и рекомендации, изложенные в работах [20], [21]. При исследовании текста как информационного объекта использовались идеи и методы описания, а также исследования сложных объектов, включая алгоритмы обработки временных рядов, разработанные в рамках синергетики.

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

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

2) в качестве объекта исследования использовались тексты с описанием паттернов проектирования так, как они приведены в работе [9] ;

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

4) ряд программ, которые позволили в результате обработки текстов на естественном языке сначала получить необходимые данные (временные ряды), а затем провести численные эксперименты над этими данными.

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

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

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

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

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

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

Практическая ценность созданной ИПС состоит в том, что:

1. С помощью созданной ИПС существенно облегчен поиск и работа с 1111, что позволяет более эффективно создавать программное обеспечение.

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

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

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

Созданная ИПС использовалась для поиска 1111 при создании программного обеспечения для системы автоматизации Новосибирской ГЭС, и создании автоматизированной ростовой установки для выращивания монокристаллов кремния.

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

На защиту выносятся следующие положения:

1. Рассмотрение текста в качестве динамического информационного объекта позволяет строить модели поведения различных характеристик текста и создавать на их основе поисковые алгоритмы для решения задач автоматического индексирования текстов на естественном языке.

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

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

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

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

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

Заключение

В результате разработки и создания ИПС были получены результаты теоретического и прикладного характера.

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

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

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

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

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

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

Библиография Бевзов, Алексей Николаевич, диссертация по теме Математическое моделирование, численные методы и комплексы программ

1. Г.Буч. Объектно-ориентированный анализ и проектирование М. 2001.

2. Б. Страуструп. Язык программирования С++. М. 2000.

3. Дж. Рихтер. Программирование под Windows для профессионалов. М. 2003.

4. Круглински Д., Уингоу С., Шеферд Дж. Программирование на Microsoft VC++ для профессионалов. М. 2004.

5. Д. Роджерсон. Основы СОМ. М. 1997.

6. Д. Бокс. Сущность СОМ. Спб. 2001.

7. Э. Рофайл, Я. Шохауд. СОМ и СОМ+. М.2000.

8. Трельсен Э. Модель СОМ и применение ATL 3.0. СПб. 2001.

9. Гамма Э. Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. Спб. 2001.

10. А. Шаллоуей, Дж.Э. Тротт. Шаблоны проектирования. Новый подход к объектно-ориентированому анализу и проектированию. М. 2002.

11. К. Ларман. Применение UML и шаблонов проектирования. М. 2001.

12. Мейерс С. Эффективное использование С++. М. 2000. 13 .http://msdnl .microsoft.com/en-us/default.aspx.14.http://www.code-project.com.15.http://www.codeview.com.16.http://www.Google.com.

13. Alexander С., Ishikawa S., Silverstein M. The Timeless Way of Building. New York, NY: Oxword University Press. 1979.

14. А.Л. Фридман. Основы объектно-ориентированной разработки программных систем. М. 2000.

15. Mamdani Т. N. Application of fuzzy algorithms for control of simple dynamic plant. In Proc. IEEE 1974, v.CS-121, p.1585-1588.

16. Пивкин В.Я. Нечеткие D-модели. Ч. I. Структура, синтез, свойства, использование для локализации решений оптимизационных задач // Автометрия. 2001. № 5.

17. В.Я. Пивкин, Е.П. Бакулин, Д.И. Кореньков. Нечеткие множества в системах управления. Новосибирск. 1997.

18. Ф.С. Воройский. Информатика. Новый систематизированный толковый словарь-справочник. М. 2001.

19. Ч. Мидоу. Анализ информационно-поисковых систем. М. 1970.

20. Под ред. О.Ф. Коряковой, Е.А. Жуковской. Информационно-поисковые системы, их разработка и применение. Минск. 1969.

21. М. С. Ананько, В.А. Москович, Г.А. Негуляев. Информационно-поисковые системы ИСЕРЕПАТ.

22. ИНТ. Информатика. Т. 3. А.И. Черный, В.И. Горькова. // Зарубежные автоматизированные справочно-информационные системы интегрального типа. М. 1980.

23. Д.В. Краюшкин. Анализ технологий предварительной обработки документальной информации // Системы и средства информатики. Выпуск 15 Отв. Ред чл-кор. РАНИ.А. Соколов. М. 2005.

24. И.П. Кузнецов. Особенности обработки текстов естественного языка на основе технологии баз знаний. // Системы и средства информатики. Выпуск 13 Отв. Ред чл-кор. РАН И.А. Соколов. М. 2003.

25. H.B. Сомин, H.C. Соловьева, E.B. Кузнецова, М.М. Шарнин. Система морфологического анализа: опыт эксплуатации и модификации. // Системы и средства информатики. Выпуск 15 Отв. Ред чл-кор. РАН И.А. Соколов. М. 2005.

26. Батура Т.В., Еркаева О.Н., Мурзин Ф.А. К вопросу об анализе текстов на естественном языке. // Новые информационные технологии в науке и образовании. Под ред. проф. В.Н Касьянова. Новосибирск. 2003.

27. Батура Т.В., Мурзин Ф.А. Логические методы представления смысла текста на естественном языке. // Новые информационные технологии в науке и образовании. Под ред. проф. В.Н Касьянова. Новосибирск. 2003.

28. О.Г. Чанышев. Автоматическое построение терминологической базы знаний. // Труды 10-й Всероссийской научной конференции ""Электронные библиотеки: перспективные методы и технологии, электронные коллекции" RCDL'2008, Дубна, Россия, 2008. С.85-92.

29. Итоги науки и техники. Информатика. Т. 7. Под ред. В.И. Горьковой. // Автоматизация индексирования и реферирования документов. H.A. Пащенко, Л.В. Кнорина, Т.В. Молчанова и др. М. 1983.

30. Итоги науки и техники. Информатика. Т. 8. Под ред. В.И. Горьковой. // Автоматизированная обработка научно-технической информации. Лингвистические аспекты. Г.Г. Белоногов, Б.А. Кузнецов, А.П. Новоселов. М. 1984.

31. Итоги науки и техники. Информатика. Т. 4. С.С. Терещенко. // Проектирование автоматизированных систем научно-технической информации. М. 1980.

32. Итоги науки и техники. Информатика. Т. 12. Гл. ред. А.И. Черный. // Автоматизированные информационно поисковые системы. Г.Г. Белоногов, Б.А. Кузнецов, А.П. Новоселов. М. 1988.

33. Итоги науки и техники. Информатика. Т. 14. Научн. ред. А.И. Черный. //Информационная индустрия: современное состояние. М. 1990.

34. Итоги науки и техники ИНТ. Информатика. Т. 15. Научн. ред. В. К. Финн. // Интеллектуальные информационные системы. М. 1991.

35. М. ван Дейк, Ж. Ван Слип. Информационная служба в условиях информационного взрыва. М. 1972.

36. Тихомиров И.А. Особенности поискового алгоритма и архитектуры Exactus. // Труды российского семинара по оценке методов информационного поиска РОМИП 2007-2008. Спб., 2008. С. 193-198.

37. Text REtrieval Conference (TREC), http://trec.nist.gov.

38. И. Некрестьянов, M. Некрестьянова. Особенности организации и проведения РОМИП'2007. // Труды РОМИП 2007-2008. Спб., 2008. С. 526.

39. М. Агеев, И. Кураленок, И. Некрестьянов. Приложение А. Официальные метрики РОМИП 2007. // Труды РОМИП 2007-2008. Спб., 2008. С. 237-247.

40. Заде JI.А. Понятие лингвистической переменной и его применение к принятию приближенных решений. М.: Мир. 1976.

41. Earl Сох. The Fuzzy Systems Handbook: A practitioner's guide to building, using and maintaining fuzzy systems. San Diego et al. 1999/

42. Шеннон К. Работы по теории информации и кибернетики. М.: Изд-во иностр. лит., 1963.

43. Р.Г. Баранцев. Синергетика в современном естествознании. М. 2003.

44. Г.Г. Москальчук. Структура текста как синергетический процесс. М. 2003.

45. Соколов Ю.А. Тайны золотого сечения. // Техника молодежи. 1978. № 5. С. 40-42.

46. Сороко Э.М. Структурная гармония систем. Минск. 1984. 264 С.

47. Волошинов A.B. Математика и искусство. М. 1992. 335 С.

48. Ковалев Ф.В. Золотое сечение в живописи. Киев. 1989. 143 С.

49. Розенов Э.К. Закон золотого сечения в поэзии и в музыке. // Розенов Э.К. Статьи о музыке. М. 1982. С. 119-156.

50. Шубников A.B., Копцик В.А. Симметрия в науке и искусстве. М. 1972. 339 С.

51. Марутаев М.А. Гармония как закономерность природы. // Шевелев И.Ш., Марутаев М.А., Шмелев И.П. Золотое сечение: Три взгляда на природу гармонии. М. 1990. С. 130-233.

52. Соколов Ю.Н. Общая теория цикла. Проблемы методологии // Циклические процессы в природе и обществе. Ставрополь., 1994. Вып. 1.С. 9-37.

53. Соколов Ю.Н. Цикл как основа мироздания. Ставрополь., 1995. Вып. 1. 123 С.

54. А.Н. Бевзов. Использование экспертных систем в задачах проектирования программного обеспечения. Датчики и системы. 2002. №12. с. 31-33.

55. A.B. Сычев Информационно-поисковые системы. http://company.yandex.ru/class/courses/sychev.xml.

56. Г.Г. Малинецкий. Синергетика, предсказуемость и детерминированный хаос. // Ред.-сост. Ю.А. Кравцов. Пределы предсказуемости. М. 1997.

57. Г.Г. Малинецкий, А.Б. Потапов. Современные проблемы нелинейной динамики. М. 2002.

58. И.В. Андрианов, Р.Г. Баранцев, Л.И. Маневич. Асимптотическая математика и синергетика: путь к целостной простоте. М. 2004.

59. Г. Хакен. Синергетика. М.1980.

60. И. Пригожин, И. Стенгерс. Познание сложного. М. 2003.

61. И. Пригожин. Порядок из хаоса. Новый диалог человека с природой. М. 2003.

62. И.В. Мелик-Гайказян, М.В. Мелик-Гайказян. В.Ф. Тарасенко. Методология моделирования- нелинейной динамики сложных систем. М. 2001.

63. Г. Хакен. Синергетика и информация. М.1991.

64. Д.С. Чернавский. Синергетика и информация: Динамическая теория информации. М.: Наука. 2001.

65. Packard N.H., Crutchfield J.P., Farmer J.D., Shaw R.S., Geometry from a time series. //Phys. Rev. Lett. 45 (1980). P712.

66. Takens F. Detecting strange attractors in turbulence. // Lect. Notes in Math. Berlin: Springer. 898. (1981). P.336-381.

67. А.Якобсон, Г.Буч, Дж.Рамбо. Унифицированный^ процесс разработки программного обеспечения. М. 2002.

68. A.H. Бевзов. Использование паттернов проектирования для ' организации программного обеспечения установки по выращиваниюмонокристаллов кремния. Кремний-2004. Тезисы докладов совещания. Иркутск, 2004, с.63.

69. А.Н. Бевзов. Применение паттернов проектирования при создании автоматизированной установки по выращиванию монокристаллов кремния. Датчики и системы, 2004, № 12, с.22-24.

70. Клисторин И.Ф., Курочкин В.В., Лубков А.А. Архитектура и концепции АСТОУ Новосибирской ГЭС. Датчики и системы. 1999. № 9. с. 2-8.

71. И.И. Безштейнов, Н.В. Котов, А.Д. Петухов. Распределенная подсистема контроля гидрогенератора. Датчики и системы. 1999. № 9. с. 14-16.

72. A.N. Bevzov, A.V. Kurochkin. Specialized Hardware for the Analysis, Visualization and Control of Technological Objects. Pattern recognition and Image analysis, Vol. 9, No 2, 1999, pp. 222-224.

73. К.И. Будников. Инженерный уровень АСТОУ Новосибирской ГЭС на основе Интранет технологий. Датчики и системы. 1999. № 9. с. 12-14.

74. Кабаев С.В., Хреляц С. Пакет программного обеспечения InTouch -, система мониторинга и управления в объектах промышленнойавтоматизации. // Мир компьютерной автоматизации. 1996. №2. '

75. А.Н. Бевзов. Коммуникационный программный интерфейс для сопряжения информационных потоков в системах автоматизации промышленных объектов. Датчики и системы. 1999.

76. А.Н. Бевзов. Передача данных и организация межмодульного взаимодействия в задачах автоматизации промышленных объектов. //Труды 4-го сибирского конгресса по прикладной и индустриальной математике (ИНПРИМ-2000), Новосибирск 2000.

77. А.Н. Бевзов, С.А. Лылов. Проектирование коммуникационной системы в задачах автоматизации технологических объектов. Датчики и системы. 2001.

78. К.Джамса, К.Коуп. Программирование для интернет. Санкт-Петербург: Питер, 1996.

79. А.В. Фролов, Г.В. Фролов. Библиотека системного программиста. Т. 17. Операционная система Microsoft Windows 3.1. Москва: Диалог-МИФИ, 1995.

80. Буч. Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя. М. 2000.

81. Бевзов А.Н. Модель единой коммуникационной системы в задачах автоматизации промышленных объектов. // Труды международной конференции "(ИСТ 2000)". Новосибирск, 2000.

82. J.C. Brice, Crystal Growth Processes (New York, John Wiley & Sons, 1986).

83. B.E. Зюбин, B.H. Котов и др. Базовый модуль, управляющий установкой для выращивания монокристаллов кремния. Датчики и системы. 2004. № 12. с. 17-21.

84. А.Н. Бевзов, С.В. Окунишников, А.В. Курочкин. Программное обеспечение оператора для контроля и управления процессом выращивания монокристаллом кремния. Кремний-2004. Тезисы докладов совещания. Иркутск, 2004, с.79.

85. А.Н. Бевзов, ^Окунишников С.В. Курочкин А.В. Программное обеспечение оператора установки по выращиванию монокристаллов ' кремния. Датчики и системы, 2004, № 12, с.27-29.

86. БДП база данных параметров1. ВР временной ряд1. ГЦ гармонический центр1. ЕЯ естественный язык1. ЗНП значение наблюдаемойпеременной

87. ИПС Информационно-поисковая система

88. ИПЯ Информационно-поисковый язык

89. КС — Ключевое слово ЛЕ лексическая единица ЛП - лингвистическая переменная Модуль ИКС - модуль поиска по ключевым словам

90. Модуль ППК модуль поиска попризнакам контекста1. НЛ нечеткая логика1. НП наблюдаемая переменная1. ОС операционная система

91. ООП Объектно-ориентированноепрограммирование1. ПредГЦ область перед ГЦ

92. ПослеГЦ — область после ГЦ1. ПС повторяющееся слово1. ПМ Поисковые машины1Ш паттерн проектирования 1111 — поисковое предписание ПО - программное обеспечение ПОД — поисковый образ документа РСК - распределенная система контроля

93. СТК система термоконтроля УП — Унифицированный процесс УПД - Узел передачи данных ФП - Фазовые переменные ХФ — характеристическая функция

94. ХВР — хаотичный временной ряд, полученный в результате хаотичного перемешиваниятекста, из которого уже и получается необходимый для той или иной модели BP ЭС — экспертная система

95. Словарь сокращений (англ.)

96. API Application Program Interface ATL - Active Template Library MFC — Microsoft Foundation Classes