Разработка интеллектуальных геоинформационных систем
В первой главе приводится подробный анализ возможностей и проблематики современных геоинформационных систем. В результате обзора и классификации существующих программных средств ГИС-технологий рассматривается понятие интеллектуальной ГИС как геоинформационной системы, предназначенной для решения задач моделирования процессов и ситуаций и комплексного анализа разнотипных данных. Далее в главе формулируются требования, предъявляемые к интеллектуальным ГИС.
В настоящее время определился основной подход к решению задач семантического моделирования в ГИС. Этот подход заключается в выделении двух уровней моделирования: уровня концептуального моделирования предметной области (ПО) и уровня моделирования базы данных (знаний) ГИС. Концептуальная схема ПО есть множество типов, снабженное некоторой структурой. Структура задается множеством отношений и операций, определенных на множестве типов.
Для моделирования процессов и ситуаций на территории интеллектуальная ГИС должна поддерживать набор топологических отношений между объектами на этой территории. Если такие связи зафиксированы во внутренней модели, а ГИС может эффективно обрабатывать эти связи вместе с информацией о самих объектах, то мы можем выполнять действительно интеллектуальные аналитические операции, отображая затем результаты на изображении карты.
Традиционный подход к установлению топологических отношений, реализованный в топологических ГИС, распространяется только на примитивы или экземпляры объектов. Это объясняется тем, что широко представленные на рынке ГИС не являются в полном смысле слова объектно-ориентированными. В объектно-ориентированных системах мы имеем дело не только с экземплярами объектов, но и с их классами, причем эти классы связаны в многоуровневые конструкции путем реализации механизма наследования свойств.
Для объектно-ориентированных ГИС существует понятие концептуальных топологических отношений (КТО), распространяющих топологические отношения на классы объектов. В пределе, когда осуществляется переход от класса (т.е.
множества однотипных объектов) к их экземплярам, КТО вырождаются в традиционные топологические отношения. КТО образуют многоуровневую систему, поскольку определяют связи между классами, также образующими многоуровневые конструкции. При использовании КТО в ГИС появляется возможность освободить пользователя от необходимости самому следить за тем, чтобы не ввести ошибки во взаимное расположение объектов разных классов на карте.
Таким образом, реально существует необходимость расширения объектной модели предметной области интеллектуальных ГИС. Такая модель должна поддерживать иерархическую структуру классов объектов ГИС, отношения (топологические и нетопологические) между объектами и классами объектов, а также обеспечивать взаимодействие объектов в распределенной среде. Для этого, прежде всего, необходимо обосновать и разработать методику разработки ГИС, включающую использование расширенных объектных моделей.
Во второй главе разрабатывается и анализируется методика создания интеллектуальных ГИС на основе настраиваемой объектной модели предметной области. Предложенная методика является частью общей методологии адаптивной разработки, которая представляет собой набор средств и методик для эффективного построения устойчивых и надёжных программ и включают в себя поддержку изменчивости и противоречивости требований к разрабатываемым системам. Методология адаптивной разработки построена на концептуальной базе теории сложных адаптивных систем. Она рассчитана на использование в экстремальных проектах, в которых превалируют быстрый темп разработок, непредсказуемость и частые изменения.
В рамках данного исследования предлагается обеспечить поддержку адаптивного жизненного цикла процесса разработки за счет использования настраиваемой объектной модели предметной области. Для этого в первую очередь необходимо:
1.
Выбрать средство разработки ядра ГИС.
2. Разработать программное средство для создания и настройки объектной модели ПО ГИС.
3. Разработать настраиваемую объектную модель ПО ГИС.
Общая структура предлагаемой методики разработки приведена на рис.1.
Рис.1. Структура предлагаемой методики разработки
Ключевым этапом методики разработки является создание настраиваемой объектной модели ПО на основе концепции метаданных. Метаданные – это данные, описывающие организацию других данных. Например, совокупность значений свойств программного объекта описывает его текущее состояние и является конкретными данными. Следующим уровнем модели метаданных являются метаклассы. Метаклассы содержат информацию об имени класса, совокупности его свойств, типах каждого из свойств и т.д. Метаклассы используются для описания классов и отношений между ними в моделях программных систем.
В большинстве объектно-ориентированных языков программирования поддерживается только уровень метаданных, то есть описание классов объектов. Создание нового класса объектов возможно лишь путем его описания в исходном модуле программы программистом и последующей перекомпиляцией программного проекта.
Если реализовать в программной системе уровень метаклассов, то классы для такой программной системы становятся информационными объектами и переносятся из разряда программного кода в разряд данных, которыми способна манипулировать данная система.
Такой подход предоставляет следующие преимущества:
· классы объектов предметной области и отношения между ними описываются не как программный код, а как данные, что значительно повышает гибкость программной системы и возможности ее адаптации к изменению требований;
· изменение характеристик класса не влечет за собой необходимости изменения программного кода системы, вследствие чего упрощается процесс сопровождения библиотек классов;
· библиотеки классов могут храниться в базе данных, при этом структура базы данных системы становится проще и не требует изменений при изменении описания классов.
Предлагаемая методика состоит из следующей последовательности действий:
1. Этап анализа:
· выделение значимых для ГИС объектов предметной области;
· классификация объектов по основанию общности свойств и поведения;
· определение отношений между классами (обобщение, ассоциация, зависимость).
2. Этап проектирования:
· специфицирование свойств классов с помощью средства разработки объектных моделей;
· специфицирование интерфейсов (задач) для классов с помощью средства разработки объектных моделей.
3. Этап реализации:
· Реализация методов интерфейсов (задач) для классов на соответствующем языке программирования;
· Промежуточная отладка и тестирование программной системы.
Доказано, что предлагаемая методика разработки позволяет снизить трудоемкость разработки сложных программных систем, имеющих большое количество классов объектов, состояние которых необходимо сохранять в базе данных.
Третья глава посвящена реализации настраиваемой объектной модели предметной области интеллектуальной ГИС. Согласно общепринятой познавательной парадигме для абстрагирования любой предметной области первичными и атомарными признаются категории объектов и отношений между объектами. Отсюда формально модель ПО есть двойка ({D},{R}), где {D} – множество объектов, {R} – множество отношений между объектами. При этом межобъектные отношения проявляются вследствие наличия у объекта имманентных свойств.
В предлагаемой объектной модели множество отношений подразделяется на объектные отношения, устанавливаемые с помощью свойств объектов, и концептуальные отношения, устанавливаемые на уровне классов (отношения наследования, включения и т.д.). С другой стороны, в объектной модели ПО ГИС отношения делятся на логические и топологические.
{R} = <{RL}, {ÂL}, {RT}, {ÂT};
где {RL} и {ÂL}- логические отношения (объектные и концептуальные соответственно),
а {RT} и {ÂT} - топологические отношения (также объектные и концептуальные).
Топологические отношения основаны на сравнении пересечений границ и внутренних областей замкнутых объектов. Бинарное топологическое отношение между двумя объектами A и B может описываться как пересечение точек-наборов объекта А (набор A0 – внутренняя область, набор dA – граница) и объекта В (В0, dВ):
RT (A,B) = |A0, B0, dA, dB|;
Для любых двух объектов определяются четыре множества пересечений, каждое из которых может быть пустым или непустым, что дает в совокупности 16 комбинаций (см. таблицу 1). Восемь из них не имеют смысла, два являются симметричными, и в результате получается шесть различных отношений: разделены, внутри, касается, равно, покрывает, перекрывает.
¶A Ç ¶B |
¶A Ç B° |
A° Ç ¶B |
A° Ç B° |
Имя отношения |
Æ |
Æ |
Æ |
Æ |
А разделено с В |
Æ |
Æ |
Æ |
¹Æ |
|
Æ |
Æ |
¹Æ |
Æ |
|
Æ |
¹Æ |
Æ |
¹Æ |
B внутри А |
Æ |
¹Æ |
Æ |
Æ |
|
Æ |
¹Æ |
Æ |
¹Æ |
А внутри В |
Æ |
¹Æ |
¹Æ |
Æ |
|
Æ |
¹Æ |
¹Æ |
¹Æ |
|
¹Æ |
Æ |
Æ |
Æ |
А касается В |
¹Æ |
Æ |
Æ |
¹Æ |
А равно В |
¹Æ |
Æ |
¹Æ |
Æ |
|
¹Æ |
Æ |
¹Æ |
¹Æ |
А покрывает В |
¹Æ |
¹Æ |
Æ |
Æ |
|
¹Æ |
¹Æ |
Æ |
¹Æ |
В покрывает А |
¹Æ |
¹Æ |
¹Æ |
Æ |
|
¹Æ |
¹Æ |
¹Æ |
¹Æ |
А перекрывает В |
Таблица 1. Выражение топологических отношений через пересечение границ и внутренних областей
Для концептуальных топологических отношений, заданных на уровне класса объектов, добавляется модификатор (в простейшем случае – логический флаг «разрешения» или «запрещения»):
ÂT (A,B) = |A0, B0, dA, dB, m|
Следовательно, должно существовать как минимум 12 концептуальных топологических отношений.
В предлагаемой объектной модели ПО все концептуальные отношения (как логические, так и топологические) реализуются с помощью иерархии классов объектов, набора событий и встроенного языка управления объектами. Объектные отношения задаются при помощи полей объекта и механизма задач. Таким образом, настраиваемая объектная модель ПО ГИС представляется в виде
DM = <{O}, {M}, {T}, Ev, IL> ;
где {O} – множество ГИС-объектов; {M} – множество метаклассов; {T} – множество задач; Ev – набор событий, IL – встроенный язык управления объектами.
Mj = <Fs, Ts, Ef, Im> ; Fs = <{Fj}>; Ts = <{Tj}> ;
Fs – набор полей класса; F – поле класса; Ts – список задач; T – задача; Ef – форма редактирования; Im – графическое представление.
Oj = <M, Fs> ; Fs = <{Fj}> ;
M – метакласс; Fs – набор полей объекта; F –поле объекта.
Tj = <Fs, Ef> ; Fs = <{Fj}> ;
Fs – набор полей задачи; F – поле задачи; Ef – форма вызова задачи.
Ev = <Co, Do, Cf, {T}, {M}>;
Co – событие создание объекта;
Do – событие удаления объекта;
Cf – событие изменение поля объекта;
{T}- набор событий, связанных с выполнением задачи;
{M}- набор событий моделирования.
Структура ГИС-объекта определяется на уровне метакласса как совокупность набора полей и методов. Кроме описания полей и методов метакласс может содержать также графическое изображение (значок) и ресурс формы редактирования объектов. Форма редактирования определена для каждого метакласса и служит для просмотра и изменения полей объектов данного класса, вызова методов объектов и т.д.
Каждое поле должно принадлежать к одному из предопределенных типов; среди типов полей различают примитивные типы и объектные типы. Примитивные типы полей соответствуют базовым типам в большинстве языков программирования. Характеристики этих типов приведены в таблице 2.
Имя типа |
Описание типа |
Характеристика |
INTEGER |
целый |
целые числа со знаком. (4 байта) |
FLOAT |
вещественный |
вещественные числа. (8 байт) |
BOOLEAN |
логический |
значения true/false, Y/N, 1/0, Д/Н (1 байт) |
STRING |
строка |
строка переменной длины (до 64 Кбайт) |
DATETIME |
дата/время |
целая часть-дата; дробная-время. (8 байт) |
POINT |
координатный |
координаты точки (X,Y) (8 байт) |
VAR |
тип-вариант |
проверка типа не производится |
FUNCTION |
метод объекта |
указатель на функцию-метод объекта. (4 байта) |
Объектные типы предоставляют возможность использования в качестве полей объекта других объектов заданного класса. Поддерживаются два варианта использования объектов: ссылка на существующий объект и включение объекта заданного класса в качестве составной части сложного объекта.
В настраиваемой объектной модели интерфейсы объектов реализованы посредством задач. Задачи не поддерживают механизм наследования и хранятся в системе в виде линейного списка. При настройке объектной модели для каждого метакласса можно определить некоторый набор задач, выполняемых ГИС-объектами данного метакласса. Для задачи также возможно определить форму редактирования. Поскольку задача имеет собственный набор полей, пользователь может менять их значения в визуальном режиме.
Разработчику ГИС-приложений необходим полный и удобный доступ ко всем полям ГИС-объектов, а также средство для вызова методов объектов и возможность определения некоторых сценариев моделирования. Для этой цели объектная модель ПО ГИС включает в себя интерпретатор встроенного языка, позволяющий оперировать любым объектом при помощи скриптов.
Интерпретатор встроен в ядро системы и позволяет выполнять определенный набор действий над объектами, вычислять сложные выражения и запускать сценарии.
Разработанный автором для настраиваемой объектной модели встроенный язык SOML (Simple Object Manipulation Language – простой язык манипулирования объектами) содержит основные операторы обработки данных, которые позволяют строить простые программы для манипулирования полями объекта. Вместе с тем в нем отсутствуют конструкции, широко применяемые в развитых языках. В частности, нет блочной структуры, переменных (вместо них используются поля выбранного объекта) и даже управляющих операторов. Тип данных однозначно определен на уровне типа поля объекта, программно изменить тип данных нельзя. Следует отметить, что SOML не предназначен для реализации объектных методов, которые, как правило, пишутся на Delphi или C++ и компилируются в подгружаемые модули. Область применения этого языка охватывает следующие программные задачи:
· вызов методов объектов из прикладных задач ГИС;
· создание пользовательских процедур инициализации объектов
· создание пользовательских процедур, вызываемых при изменении значения поля объекта.
Как правило, во всех этих случаях функциональность скриптов состоит в изменении значений полей и вызове заранее определенных методов объектов.
Для оценки эффективности использования подходов, заложенных в основу настраиваемой объектной модели ПО, был проведен ряд программных тестов, направленных на сравнение их быстродействия с традиционными объектными технологиями, прежде всего, с Microsoft COM/DCOM. Результаты проведенной экспериментальной оценки подтверждают, что быстродействие настраиваемой объектной модели в процессе выполнения основных системных задач ГИС на 1-2 порядка превосходит быстродействие традиционных объектных подходов.
Четвертая глава описывает разработанное программное средство разработки объектных моделей ПО ГИС.
Данное средство обеспечивает поддержку адаптивного жизненного цикла процесса разработки, благодаря чему сокращаются сроки и повышается качество разработки ГИС.
В геоинформационных системах, где вопросы быстродействия зачастую выходят на первый план, имеет смысл использовать специализированные объектные модели, разработанные для решения задач ГИС. Поскольку такая специализированная модель не является универсальной, большое значение приобретает возможность быстрой настройки модели на заданную предметную область. Настройка должна осуществляться пользователем системы в интуитивно понятном интерактивном режиме и без необходимости перекомпиляции каких-либо модулей ГИС. Такой подход обеспечивает сразу несколько преимуществ:
1. Поддерживается адаптивный жизненный цикл процесса разработки. Благодаря этому облегчается применение современных методологий, сокращаются сроки и повышается качество разработки ГИС.
2. Появляется возможность создавать сложные модели ПО интеллектуальных ГИС за счет расширения классической объектной парадигмы.
3. Облегчается интеграция объектного и топологического подходов к построению ГИС.
Для настройки объектной модели на конкретную предметную область разработано программное средство OntoModeler, позволяющее автоматизировать процесс создания описаний метаклассов предметной области.
Созданные с помощью инструментального средства описания метаклассов сохраняются в объектной базе данных (структурированном хранилище) и используются для создания ГИС-объектов в процессе эксплуатации ГИС.
Для изменения свойств и вызова методов объектов в режиме диалога с пользователем предназначены формы редактирования ГИС - объектов. Эти формы представляют собой диалоговые окна, на которых размещены элементы пользовательского интерфейса, связанные с полями объекта. С помощью инструментального средства OntoModeler пользователь может редактировать эти формы в визуальном режиме.
Формы, как и поля классов, поддерживают наследование. В случае, если для класса не определена форма редактирования, будет использоваться форма класса-предка. В текущей версии ГИС все формы хранятся в бинарном формате, а для обмена данными между приложениями используется автоматическое преобразование в формат XML.