Jazyk XML v geoinformatice

Dr. Ing. Jiří Horák
Ing. Jan Růžička
Institut ekonomiky a systémů řízení
VŠB – Technická univerzita Ostrava
tř. 17. listopadu
708 33 Ostrava – Poruba
E – mail
:
jiri.horak@vsb.cz, jencekruzicka@hotmail.com

 

The paper presents new tool, which strongly influence the field of computer sciences and geoinformatics. The basic features of XML language and basic methods of document preparation are described. Last but not least the possibilities of XML application for geoinformatics are reviewed, mainly in the context of metadata and metainformation system.

Tento příspěvek si klade za cíl seznámit čtenáře s novým nástrojem, který významnou měrou ovlivní oblast informatiky včetně geoinformatiky. V příspěvku jsou popsány základní vlastnosti jazyka XML (eXtensible Markup Language), základní metody tvorby dokumentů s využitím tohoto jazyka. V neposlední řadě jsou zde nastíněny možnosti využití jazyka XML pro potřeby geoinformatiky, především ve vztahu k metadatům a metainformačním systémům.

Jak často jste na Webu hledali nějakou informaci a protože jste nevěděli, kde přesně ji hledat, použili jste oblíbeného vyhledávače? Zadali jste řetězec, chvíli jste počkali a získali seznam 8000 stránek, které tento řetězec obsahují. Většinou vám inteligence vyhledávačů (seřazení, hledání podle kategorie, apod.) příliš nepomůže a nezbývá vám, než stránku po stránce otevírat a číst, čekat, číst, čekat,..

Jak by se vám líbilo mít možnost zadat, že to co hledáte má svůj význam - jde např. o název programu - a že nehledáte libovolný text, kde se o programu mluví, ale požadujete jeho popis.

Řešení pro tuto situaci (ale i pro mnoho jiných aplikací) nabízí jazyk XML (eXtensible Markup Language). Tento příspěvek nemůže poskytnout popis jazyka XML, pokusí se pouze vysvětlit základní principy XML a uvést možnosti použití.

Jazyk XML patří mezi tzv. značkovací jazyky, kam patří i HTML, se kterým bývá často srovnáván. XML je poměrně mladý; doporučení k tomuto jazyku vydalo konsorcium W3C v únoru 1998. XML vznikl právě díky snahám dát překotně publikovaným dokumentům na WWW nějaký pořádek a nabídnout nástroj, který by se nesoustřeďoval jen na formátování informace jako HTML, ale informace dobře strukturoval a strukturu popisoval vhodnými metadaty.

XML vychází z jazyka SGML. Tento jazyk, prazáklad značkovacích jazyků, vznikal již koncem 60tých let ve firmě IBM, která hledala možnost ukládání velkého množství právních dokumentů v SW a HW nezávislém formátu. Jazyk SGML se dočkal standardizace v roce 1986 (ISO 8879) v rámci projektu ODA (Open Document Architecture) jako univerzální nástroj (de facto metajazyk) pro definici zápisu různých elektronických dokumentů (nejen textu !) nezávislé na HW a SW platformě a maximálně flexibilní.

SGML používá vláda USA (zvláště ministerstvo obrany) a velké společnosti jako IBM či Boeing.

Jednou z nejúspěšnějších aplikací jazyka SGML je elektronická dokumentace elektronických součástek, na jejímž standardu (standardu pro výměnu informací) se dohodli firmy Hitachi, Intel, National Semiconductors, Philips Semiconductors a Texas Instruments, kteří založili skupinu ECIX. Standard zahrnuje 2 části - PCIS (Pinnacles Component Information Standard) a CIDS (Component Information Dictionary Standard). PCIS poskytuje informace o součástkách ve formátu, který lze snadno číst nebo ho importovat do CAD systémů. Najde se zde popis funkcí součástek, zapojení, montáže, instrukčních sad i balení, stejně jako paměťové mapy. Popis se odkazuje na slovník CIDS, kde jsou definovány termíny a vlastní součástky. Inženýři tak mohou podstatně jednodušším způsobem zařazovat součástky různých firem do svých návrhů, hledat optimální, rychle zjišťovat jejich parametry.[1][http://www.cfi.org/ecix/]

Z jiných projektů lze jmenovat sadu specifikací pro údržbu letadel a výměny informací (Sdružení amerických leteckých dopravců), standard pro výměnu informací pro vozový park (Master Car Builder’s Association) atd.

Aplikace SGML se příliš nerozšířily, protože jazyk je značně komplikovaný a aplikace jsou drahé. Stěží se tak může prosadit v prostředí Internetu. Na jeho základě však vznikl populární HTML a perspektivní XML.

XML dokumenty se skládají z textu (obsahu) a značek. Každý dokument má pevnou strukturu, která je definovaná v deklaraci typu dokumentu. V ní je uvedeno, jaké prvky (elements) bude následující dokument obsahovat, kolikrát se mohou vyskytovat, jaké jiné prvky obsahují, jaké atributy mohou nebo musí mít a co mají obsahovat. Definuje se rovněž kořenový prvek, kterým celá struktura začíná.

V následující části je vlastní obsah dokumentu. Jakýkoliv text musí být uzavřen mezi značkami. K základním používaným značkám patří prvky, entity, komentáře a zpracovatelské instrukce. Prvek určuje význam textu, který obklopuje. Začíná počáteční značkou (start-tag) a uzavírá se koncovou značkou.

Typ prvku je řeka a jeho obsahem je Morava.

Prvek může mít určité atributy, jejichž hodnota je zadávána v rámci počáteční značky.

V tomto případě je zadán atribut číslo (možná identifikátor řeky).

Pro úplnost dodejme, že existují i tzv. prázdné prvky, které nemají počáteční a koncovou značku; nelze však do nich nic vložit.

Entity dovolují vkládat do textu určité předem definované pasáže. Lze je přirovnat ke konstantám, které jsou deklarovány systémem, autorem na začátku dokumentu (interní), nebo obsahem externího souboru (externí) nebo jsou definovány v deklaraci typu dokumentu (proměnná část struktury).

1. příklad:

2. příklad:

Deklarace typu dokumentu

Deklarace typu dokumentu musí být uvedena v úvodu každého dokumentu. Interní deklarace je celá popsána v dokumentu. Externí deklarace je provedena mimo vlastní dokument, ze kterého postačí provést odkaz na tuto definici. Externí deklarace jsou ukládány jako tzv. DTD (Document Type Definition) a umožňují standardizovat obsah dokumentů. Existuje již celá řada uznávaných standardních DTD pro jednotlivé typy dokumentů, můžete ale vytvářet své vlastní definice.

Deklarace provádí definice jednotlivých používaných prvků, jejich atributů,....

Příklad definice:

Prvek název se musí vyskytnout v dokumentu pro každý okres právě 1x, za ním se musí vyskytnout 1 nebo více prvků obec (některé městské okresy jsou tvořeny právě jednou obcí) a nakonec může, ale nemusí být uveden přednosta.

Prvek obec je definován podobně - jméno se musí vyskytnout 1x, popis několikrát nebo také vůbec ne a nakonec starosta může, ale nemusí být uveden.

Prvek popis obsahuje buď text (#PCDATA) nebo prvek historie nebo obojí (| znamená OR).

U definice prvků je vhodné provést i definici atributů, které tyto prvky obsahují:

Okres má tedy 5 atributů. KODOK je identifikátor a jeho zadání je vždy vyžadováno. Kraj je znakovou sadou (CDATA) a nemusí být vůbec zadán (#IMPLIED). Stav může nabývat 2 hodnot, výchozí hodnota je “nepostižený”. ENTITY#IMPLIED znamená, že není vyžadován, ale je-li zadán, musí odpovídat jménu jiné entity. IDREFS#IMPLIED není vyžadován, ale je-li zadán, musí hodnota odpovídat hodnotám atributů.

V deklaraci typu dokumentu se může objevit i deklarace parametrických entit, které dovolují použít proměnnou specifikaci při definici prvků.

Výhody použití jazyka XML lze ukázat na několika bodech:

  1. pevnější pravidla strukturování než HTML i SGML (např. vynucování počátečních i koncových značek), přísně hierarchická stavba dokumentů;
  2. popis obsahu dokumentu metadaty;
  3. možnost používat standardy struktury dokumentů (DTD) i možnost tvorby vlastních značek;
  4. podpora 32bitového kódování znaků (UNICODE, ISO 10646), což odstraní problémy s psaním a přenosem diakritických znaků;
  5. definice formátování dokumentů je oddělena od definice struktury a obsahu dokumentu (využití kaskádových stylů CSS nebo jazyka XSL);
  6. Možnost využití rozšířených odkazů pomocí XLink a XPointer. Jsou dovoleny obousměrné odkazy, je možné se odkazovat na část dokumentu (a přenést pouze tuto část a ne celý dokument !), lze se odkazovat na více míst současně (ze seznamu se vybírá konkrétní cíl), můžete definovat odkaz i mimo návěští (např. na 3. prvek za návěštím). Odkazy lze ukládat i mimo stránku, ke které se vztahují. Z toho plyne lepší možnost centralizované správy dokumentů.

Využití XML je především tam, kde potřebujeme univerzální prostředek pro popis informace metadaty, její přenos a sdílení mezi více uživateli, mezi více SW a HW platformami. Je vhodný jak pro interpretaci člověkem (je čitelný), tak i pro automatické zpracování.

Dnešní příklady využití jsou v oblasti obchodování - především EDI (elektronická výměna dokumentů), jejichž standardy a nástroje zatím byly příliš drahé, složité a tudíž nevhodné pro malé a střední firmy. Dále je to příprava aplikací řízených daty a správa dokumentů.

K zajímavým projektům jistě patří v USA připravovaný pilotní projekt, který umožní odeslat daňové přiznání na finanční úřad ve formátu XML. Uživatel vyplní standardní kolonky a na druhé straně bude dokument snadno počítačově zpracován.

Přehled oblastí nasazení si můžeme udělat ze seznamu hlavních DTD [podle 2]:

Hypertext markup Language (HTML)

Jsou připraveny DTD pro jednotlivé verze HTML. Nově však bude DTD pro HTML rozloženo na několik relativně samostatných DTD pro jednotlivé funkce HTML - např. formátování, formuláře, tabulky.

Channel Definition Format (CDF)

Používá se pro definici kanálů.

Mathematical Markup Language (MathML)

MathML je jazyk určený pro zápis matematických výrazů. Vedle grafické věrnosti je důležité i zachycení významu tohoto výrazu. To umožňuje i výměnu dat mezi matematickými programy pomocí tohoto formátu.

Resource Description Framework (RDF)

Definuje standardní rámec, který lze využít pro přidávání metainformací k datovým zdrojům. Praktické využití je např. pro aplikace, které hodnotí obsah stránek.

Open Software Description Format (OSD)

Slouží pro popis programových aplikací a jejich částí. Měl by usnadnit automatickou distribuci a instalaci programového vybavení.

Chemical Markup Language

Je určen pro zápis vzorců chemických sloučenin. Podobně jako MathML dovoluje kvalitní grafický záznam vzorců, ale i záznam jejich významu.

Synchronized Multimedia Integration Language (SMIL)

Slouží pro tvorbu multimediálních aplikací.

Precision Graphics Markup Language (PGML)

PGML je návrhem jazyka pro definici dvourozměrné grafiky, postavené na formátech Postscriptu a PDF.

UML eXchange Format (UXF)

UXF slouží k výměně dat v jazyce UML (Unified Modelling Languge), který se uplatňuje při analýze a návrhu informačních systémů.

DocBook

Je vhodný pro psaní technické dokumentace.

Text Encoding Initiative (TEI)

TEI zahrnuje skupinu standardizovaných DTD vhodných pro uchování a výměnu publikací, především knih.

Scalable Vector Graphics (SVG)

Vzhledem k jeho významu pro geoinformatiku bude popsán podrobněji.

Stručná charakteristika SVG

SVG je jazykem pro popis dvourozměrné vektorové a smíšené rastr/vektor grafiky. Využívá 3 typy grafických objektů: vektorové prvky, rastrové obrázky a text. Grafické objekty mohou mít svůj styl, mohou být transformovány, skládány a seskupovány. Pomocí DOM pro SVG (DOM znamená Document Object Model), který vychází z obecného XML DOM, je možné realizovat např. animace.

SVG zatím není doporučením konsorcia W3C, jde zatím pouze o pracovní návrh.

SVG definuje některé základní tvary pro tvorbu vektorové grafiky - obdélník, kruh, elipsa, linie, polylinie, polygon. Je možné definovat uživatelský souřadný systém, jednotky měření, transformaci, styl kresby, použití symbolů, barev, vzorů, maskování, skládání obrazu, filtrace. Lze ale rovněž definovat odkazy, zoomování, animace, využít skriptování (např. definice událostí typu “onclick” nebo “onmouseover”.)

Na druhou stranu určitou slabinou zůstává rychlost přenosu detailní grafiky ve formátu SVG. ASCII formát z tohoto pohledu není nejvhodnější. V rámci projektu DISGIS byl srovnáván XML s binárními formáty a bylo konstatováno, že je průměrně 1.66x větší. Projekt DISGIS zkoumal možnost využití XML pro projekt MEGRIN, GEIXS a další.

Příklad definice polylinie [4]:

<?xml version=”1.0” standalone=”no”?>

<!DOCTYPE svg PUBLIC “-//W3C//DTD SVG December 1999//EN”

“http://www.w3c.org/Graphics/SVG/SVG-19991203.dtd”>

<svg width=”12cm” height=”4cm” viewBox=”0 0 1200 400”>

</svg>

Obr.1 Příklad polylinie

Nezanedbatelnou součástí, každého dobře navrženého informačního systému (i geografického informačního systému) je správa metadat o datech spravovaných v tomto systému. Metadata mohou být spravována jako specifická část informačního systému nebo mohou stát mimo celý systém v tzv. metainformačním systému. Všeobecný zájem různých organizací o problematiku metadat v geoinformatice způsobil vznik několika zajímavých aktivit. V současné době na území České republiky probíhá několik aktivit, které směřují k vytvoření několika nezávislých metainformačních systémů. Převážná část těchto systémů je budována jako resortní metainformační systémy ministerstev vlády České republiky. Jedním metainformačním systémem, který by rád působil jako otevřený metainformační systém, zpřístupňující metadata širokému poli zájemců, je metainformační systém CAGI. Pro práci mnoha organizací je samozřejmě nutné mít přehled nejen o vlastních datech popsaných v interním metainformačním systému, ale i o datech jiných organizací. Většina metainformačních systémů nebude mít veřejný charakter a organizace nebudou mít možnost jednoduchým způsobem vyhledávat v metainformačních systémech jiných organizací. Některé organizace budou mít zájem poskytovat informace z jejich metainformačních systémů jiným organizacím formou nepřímého přístupu do systému. Bude vhodné navrhnout SW a HW nezávislý prostředek pro výměnu informací (dat) z metainformačních systémů. Velice zajímavým a vhodným nástrojem se v tomto případě jeví jazyk XML. Svým specifickým způsobem popisu struktury otevřeného textového dokumentu jazyk XML nabízí postupy pro tvorbu výměnného formátu pro metadata, který by byl snadno zpracovatelný počítačem stejně tak jako srozumitelný člověku.

V současné době již existuje několik zajímavých pokusů o vytvoření takového výměnného prostředku s využitím jazyka XML. Nejznámější z těchto aktivit, jejíž činnost vyústila až ve vytvoření standardního výměnného formátu metadat nazvaného XML Metadata Interchange Format (XMI). O vytvoření tohoto standardu se zasloužila skupina Object Management Group (OMG). Hlavním cílem XMI je umožnit snadnou výměnu metadat mezi modelovacími nástroji (založenými na Unified Modeling Language (UML)) a mezi nástroji a metadatovými sklady (založených na MOF - Meta Object Facility a OMG standardu pro modelování a metadatové sklady) v distribuovaných heterogenních prostředích.

XMI vychází z kombinace tří standardů: XML, UML, MOF. Integrace těchto tří standardů by měla umožnit sdílení a výměnu objektových modelů a jiných metadat prostřednictvím Internetu. Tento standard se jeví jako potenciálně zajímavý prostředek pro výměnu metadat mezi metainformačními systémy budovanými v České republice s návazností na možnou výměnu metadat i s metainformačními systémy budovanými za hranicemi naší země.

Za zmínku stojí také informace o výměném formátu pro metadata používaném pro potřeby nizozemského Nationaal Clearinghouse Geo-Informatie (NCGI). Tento výměnný formát byl vytvořen s využitím jazyka XML. NCGI budován na základě prestandardů CEN stejně jako některé metainformační systémy budované v České republice.

XML představuje velmi slibný základ řady aplikací. Za nejdůležitější lze označit jeho využití pro výměnu dat a tvorbu metadat (definice struktury dokumentu, atributů, standard pro dvourozměrnou grafiku SVG). Přínosem je i nové pojetí odkazů a možnost využití skriptování (interaktivita objektů).

[1] Laurent S.S.: Tvorba internetových aplikací v XML. Computerpress 1999, 222 stran, ISBN 80-7226-170-3

[2] www.kosek.cz

[3] www.ibm.com/xml

[4] www.w3c.org/Graphics/SVG/