Введение
Грамматика XML для географических объектов
Язык географической разметки (GML) — это грамматика XML, определённая Консорциумом открытых геопространственных данных (OGC) для представления географических объектов. GML служит языком моделирования для географических систем, а также открытым форматом обмена географическими данными в Интернете. Ключевым преимуществом GML является его способность интегрировать все виды географической информации, включая не только традиционные "векторные" или дискретные объекты, но и растровые данные (см. также GMLJP2) и данные с датчиков.
Инструмент подмножества
Кроме того, спецификация GML предоставляет инструмент для создания подмножеств, позволяющий генерировать профили GML, содержащие список компонентов, заданный пользователем. Инструмент состоит из трех скриптов XSLT. Эти скрипты генерируют профиль, который разработчик может расширить вручную или улучшить иными способами, используя ограничение схемы. Как ограничения полной спецификации GML, схемы приложений, которые может генерировать профиль, сами должны быть валидными схемами приложений GML. Инструмент для создания подмножеств может генерировать профили и по другим причинам. Указание элементов и атрибутов, которые необходимо включить в результирующую схему профиля, и запуск инструмента приводят к созданию единого файла схемы профиля, содержащего только элементы, заданные пользователем, и все объявления элементов, атрибутов и типов, от которых зависят указанные элементы. Некоторые схемы профилей, созданные таким образом, поддерживают другие спецификации, включая IHO S-57 и GML в JPEG 2000.
Схема применения
Для того чтобы предоставить доступ к географическим данным приложения посредством GML, сообщество или организация создает XML-схему, специфичную для интересующей области применения (схема приложения). Эта схема описывает типы объектов, данные которых интересуют сообщество, и которые приложения сообщества должны предоставлять. Например, приложение для туризма может определять типы объектов, такие как памятники, достопримечательности, музеи, съезды с дорог и смотровые площадки, в своей схеме приложения. Эти типы объектов, в свою очередь, ссылаются на примитивные типы объектов, определенные в стандарте GML. Некоторые другие языки разметки для географических данных используют конструкции схем, но GML опирается на существующую модель XML-схем, а не создает новый язык схем. Схемы приложений обычно разрабатываются с использованием UML, соответствующего стандарту ISO 19103 (Географическая информация – Язык концептуальных схем), а затем создаются приложения GML в соответствии с правилами, приведенными в Приложении E стандарта ISO 19136.
GML и KML
KML, получивший широкое распространение благодаря Google, дополняет GML. Если GML — это язык для кодирования географического контента для любых приложений, описывающий широкий спектр объектов и их свойств (например, мосты, дороги, буи, транспортные средства и т. д.), то KML — это язык для визуализации географической информации, специально разработанный для Google Earth. KML может использоваться для отображения контента GML, а контент GML может быть "стилизован" с помощью KML для целей представления. KML прежде всего является транспортом для 3D-визуализации, а не для обмена данными. В результате этого существенного различия в назначении, кодирование контента GML для визуализации с использованием KML приводит к значительной и необратимой потере структуры и идентичности в результирующем KML. Более 90% структур GML (таких как, например, метаданные, системы координат, горизонтальные и вертикальные датумы, геометрическая целостность окружностей, эллипсов, дуг и т. д.) не могут быть преобразованы в KML без потерь или использования нестандартного кодирования. Аналогично, из-за того, что KML разработан как транспорт для визуализации, кодирование контента KML в GML приведет к значительной потере структур визуализации KML, таких как области, правила уровня детализации, информация о просмотре и анимации, а также информация о стилизации и многомасштабное представление. Возможность отображать метки мест на различных уровнях детализации отличает KML от GML, поскольку визуализация не входит в область применения GML.
Особенности
GML определяет характеристики, отличные от геометрических объектов. Объект-признак (feature) – это объект приложения, представляющий физическую сущность, например, здание, реку или человека. Объект-признак может иметь или не иметь геометрические аспекты. Геометрический объект определяет местоположение или область, а не физическую сущность, и поэтому отличается от объекта-признака. В GML объект-признак может иметь различные геометрические свойства, описывающие геометрические аспекты или характеристики объекта-признака (например, свойства "Точка" или "Протяжённость"). GML также предоставляет возможность объектам-признакам совместно использовать геометрическое свойство, используя удалённую ссылку на свойство для совместно используемой геометрии. Удалённые свойства – общая черта GML, заимствованная из RDF. Атрибут xlink:href в свойстве геометрии GML означает, что значение свойства является ресурсом, на который указывает ссылка. Например, объект-признак "Здание" в конкретной схеме приложения GML может иметь положение, заданное примитивным типом геометрического объекта GML "Точка". Однако здание является отдельной сущностью от точки, определяющей его положение. Кроме того, объект-признак может иметь несколько геометрических свойств (или не иметь их вовсе), например, протяжённость и положение.
Первоначальная работа к рекомендательному документу ОГК
Рон Лейк начал работу над GML осенью 1998 года, после предшествующей работы над XML-кодировками для радиовещания. Лейк представил свои первые идеи на встрече OGC в Атланте, штат Джорджия, в феврале 1999 года под названием xGML. Это положило начало концепции GeoDOM и идее языка географического стилирования (GSL), основанного на XSL. На той же встрече Акифуми Накай из NTT Data также представил работу, частично выполнявшуюся в NTT Data, над XML-кодировкой под названием G XML, ориентированной на сервисы, основанные на местоположении. В апреле 1999 года Galdos создала команду XBed (с CubeWerx, Oracle Corporation, MapInfo Corporation, NTT Data, Mitsubishi и Compusult в качестве субподрядчиков). XBed был сфокусирован на использовании XML в геопространственной области. Это привело к созданию SFXML (Simple Features XML) при участии Galdos, Бюро переписи населения США и NTT Data. Galdos продемонстрировала ранний движок стилизации карт, извлекающий данные с сервера данных "GML" на базе Oracle (предшественник WFS) на первом этапе тестирования веб-карт OGC в сентябре 1999 года. В октябре 1999 года Galdos Systems переработала черновик SFXML в запрос комментариев и изменила название языка на GML (Geography Markup Language). В этом документе были представлены несколько ключевых идей, которые стали основой GML, включая 1) правило определения значения свойств объекта, 2) удаленные свойства (через rdf:resource) и 3) решение использовать схемы приложений вместо набора статических схем. В статье также предлагалось, чтобы язык основывался на Рамке описания ресурсов (RDF), а не на DTD, использовавшихся к тому моменту. Эти вопросы, включая использование RDF, активно обсуждались в сообществе OGC в 1999 и 2000 годах, в результате чего окончательный документ с рекомендациями по GML содержал три профиля GML – два на основе DTD и один на RDF – при этом один из DTD использовал подход со статической схемой. В мае 2000 года документ был утвержден в качестве рекомендательного на заседании OGC.
Переход к XML-схеме Версия 2.
Еще до принятия Рекомендации в OGC, Галдос приступил к разработке версии GML на основе XML Schema, заменив схему `rdf:resource` для удаленных ссылок на использование `xlink:href` и разработав специфические шаблоны (например, "Barbarians at the Gate") для обработки расширений сложных структур, таких как коллекции объектов. Большая часть работы по проектированию XML-схемы была выполнена Ричардом Мартеллом (Galdos), который был редактором документа и в основном отвечал за преобразование базовой модели GML в XML-схему. Важный вклад в этот период внесли также Саймон Кокс (CSIRO Australia), Пол Дейзи (US Census), Дэвид Бургграф (Galdos) и Адриан Катберт (Laser Scan). Корпус инженеров армии США (в особенности Джефф Харрисон) оказывал значительную поддержку разработке GML. Корпус инженеров армии США финансировал проект “USL Pilot”, который оказался очень полезным для изучения возможностей связывания и стилизации в спецификации GML, при этом важную работу выполняли Мони (Ionic) и Ся Ли (Galdos). Проект спецификации XML Schema был представлен компанией Galdos и одобрен для публичного распространения в декабре 2000 года. В феврале 2001 года он получил статус Рекомендации, а в мае того же года – утвержденной спецификации. Эта версия (V2.0) отказалась от "профилей", использовавшихся в версии 1, и закрепила ключевые принципы, изложенные в первоначальной заявке Galdos, в качестве основы GML.
GML и G-XML (Япония)
В то время как эти события разворачивались, параллельно в Японии велась работа над G XML под эгидой Японского центра продвижения баз данных под руководством г-на Шиге Кавано. G XML и GML различались в нескольких важных аспектах. Ориентированный на приложения LBS, G XML использовал множество конкретных географических объектов (например, Mover, POI), в то время как GML предоставлял очень ограниченный набор конкретных объектов и создавал более сложные объекты с помощью схем приложений. На тот момент G XML все еще описывался с использованием DTD, а GML уже перешел на XML Schema. С одной стороны, G XML требовал использования многих фундаментальных конструкций, которых не было в лексиконе GML в то время, включая временные характеристики, пространственные ссылки по идентификаторам, объекты с историей и концепцию стилизации на основе топологии. GML, с другой стороны, предлагал ограниченный набор примитивов (геометрия, элемент) и способ построения пользовательских типов объектов (элементов). Серия встреч, прошедших в Токио в январе 2001 года с участием Рона Лейка (Galdos), Ричарда Мартелла (Galdos), сотрудников OGC (Курта Бюлера, Дэвида Шелла), Шиге Кавано (DPC), Акифуми Накаи (NTT Data) и доктора Шимады (Hitachi CRL), привела к подписанию меморандума о взаимопонимании между DPC и OGC, в соответствии с которым OGC обязывался внедрить в GML фундаментальные элементы, необходимые для поддержки G XML, что позволило бы представить G XML как схему приложения GML. В результате в основной список объектов GML вошло множество новых типов, включая наблюдения, динамические элементы, временные объекты, стили по умолчанию, топологию и точки обзора. Большая часть работы была выполнена Galdos по контракту с NTT Data. Это заложило основу для GML 3, хотя в этот период произошло значительное новое развитие – взаимодействие OGC и ISO/TC 211.
На пути к ISO GML 3.0 расширяет сферу применения GML
Хотя для большинства новых объектов, введенных соглашением GML/G XML, и для некоторых, введенных Galdos в рамках процесса OGC (в частности, для покрытий), существовало базовое кодирование, вскоре стало очевидно, что лишь немногие из этих кодировок соответствовали абстрактным спецификациям, разработанным ISO TC/211, которые все чаще становились основой для всех спецификаций OGC. Геометрия GML, например, была основана на более ранней и лишь частично документированной модели геометрии (Simple Features Geometry), которой было недостаточно для поддержки более обширных и сложных геометрий, описанных в TC/211. В этот период времени управление разработкой GML также изменилось, и в ней стало участвовать гораздо больше людей. Значительный вклад в этот период внесли Милан Трниник (Galdos) (стили по умолчанию, CRS), Рон Лейк (Galdos) (наблюдения), Ричард Мартелл (Galdos) (динамические объекты). 12 июня 2002 года г-н Рон Лейк был удостоен премии Гарделса от OGC за его работу по созданию GML. В цитате к награде говорится: «В частности, эта награда отмечает ваши выдающиеся достижения в создании языка географической разметки (GML) и вашу уникальную, чуткую и эффективную работу по содействию примирению национальных различий для обеспечения значимой стандартизации GML на глобальном уровне». Саймон Кокс (CSIRO) и Клеменс Портеле (Interactive Instruments) также впоследствии получили премию Гарделса, отчасти за их вклад в GML.
Стандарты
Консорциум открытых геопространственных данных (OGC) – международная добровольная организация по разработке стандартов, члены которой поддерживают стандарт Geography Markup Language. OGC координирует свою деятельность с организацией по стандартизации ISO TC 211 для обеспечения согласованности между работой OGC и ISO. В 2007 году GML был принят в качестве международного стандарта (ISO 19136:2007). GML также может быть включен в версию 2.1 Национальной модели обмена информацией США (NIEM).