2. část: Práce s projektem 

Metadata

Úvod  Předchozí  Další   Tisk této stránky

Pojem metadata v rámci WebMapu představuje souhrnné označení pro strukturované popisné údaje týkající se různých druhů objektů, s nimiž WebMap pracuje. Aktuální verze WebMapu umí pracovat s metadaty následujících typů objektů:

projekt: popisné údaje týkající se mapového projektu jako celku;

mapa: údaje pro jednotlivé uzly stromu mapových oken;

téma: údaje pro témata v mapě témat;

sloupec: údaje týkající se veřejných sloupců mapových témat.

Historicky před vznikem obecného systému metadat každý z těchto objektů obsahoval pevně definovanou množinu popisných údajů, obvykle zároveň funkčně svázaných s činností WebMapu. Nově každý z těchto objektů může zároveň obsahovat libovolnou množinu dalších strukturovaných popisných údajů. Ty sice WebMap přímo pro svoji činnost nepotřebuje, lze s nimi ovšem pracovat prostřednictvím šablon a tak je zahrnout například do různých výpisů vyhledaných hodnot nebo jejich hodnotami chování šablon řídit (viz Schneiderovo rozšíření REN).

Pro práci s metadaty slouží ve WebMapu tři hlavní nástroje:

editační okno typů metadat umožňuje nadefinovat stromovou strukturu uživatelských popisných údajů (metadat), připojit k metadatům uživatelské popisy a definovat jejich datové typy a další vlastnosti;

editační okno formátů metadat umožňuje definovat formáty exportu a importu metadat do / ze souborů xml nebo dbf;

funkce výrazového kalkulátoru pro přístup k metadatům umožňují propojení metadat se systémem šablon.

Současná verze podporuje tyto datové typy metadat:

celé číslo

reálné číslo

datum

čas

řetězec

Vnitřní systém datových typů je rozšiřitelný a na základě dalších požadavků bude možno jej snadno doplnit o další typy jako např. bod, obdélník nebo barva.

V samotných objektech jsou uživatelská metadata uložena jako posloupnost záznamů obsahujících položky cesta, datový typ a hodnota. Cesta představuje identifikátor metadatového záznamu a může obsahovat znaky / oddělující vnořené složky stromové struktury metadat obdobně jako v souborovém systému Windows nebo Linux.

Okno pro editaci typů metadat slouží k definici stromových struktur uživatelských metadat. Systém předpokládá, že v obvyklém případě pracovník obsluhující WebMap obdrží požadavek implementovat např. pro mapy určitou strukturu metadat definovanou normou nebo jiným specifickým zadáním. V okně pro editaci typů metadat vytvoří nový typ metadat (který lze obdobně jako šablony uložit buď dovnitř souboru projektu, nebo do samostatné knihovny metadat s příponou wml) a ve stromě na pravé straně vymodeluje dle zadání hierarchii metadat, popisy jednotlivých metadat a jejich parametry, které mají vliv na funkci editoru metadat (např. datový typ určuje, jaký typ editoru se má pro určitý typ metadat otevřít).

Typ metadat obsahuje následující údaje:

identifikátor: systémový řetězec označující typ nebo složku metadat.

popis: textový uživatelský popis typu metadat.

datový typ: datový typ metadat. Prázdná hodnota udává, že se nejedná o konečná metadata, ale o složku.

číselník: neprázdná hodnota udává identifikátor číselníku definujícího povolené hodnoty příslušného metadata. V případě editace se namísto běžného editoru textu, čísla nebo data otevře výběrový seznam obsahující dostupné položky z příslušného číselníku.

výchozí hodnota: hodnota, která se při vytváření nového záznamu v editoru metadat nabídne jako automatická předvolba hodnoty metadat.

neprázdná: pokud je záznam o metadatech přítomen, nesmí obsahovat prázdnou hodnotu. Editor metadat v takovém případě nedovolí potvrdit editaci, pokud není hodnota metadat zadána.

násobná hodnota: editor umožňuje zadat pro daný typ metadat více záznamů obsahujících různé hodnoty.

skrýt hodnoty: skrýt ve stromě metadat metadata tohoto typu.

zakázat: (dočasně) potlačit použití příslušného záznamu o typu metadat; uzly s tímto příznakem se ve stromě definujícím strukturu metadat ignorují; například při změně datového typu nebo jiné vlastnosti určitého typu metadat lze původní definici z archivních důvodů ve stromě ponechat a označit ji tímto příznakem jako neaktuální, namísto ní se bude při práci s metadaty používat nová (jiná) definice.

dlouhý text: položka textového typu obsahuje víceřádkový text, pro který se otevře větší editační okno s odstavcovým editorem; u běžných metadat typu text se pro editaci používá jednořádkový editor textů jako v běžných dialogových oknech.

použít pro objekty: příznaky, zda se tento typ metadat týká projektu, mapového okna, tématu nebo veřejného sloupce tématu.

minimální a maximální hodnota: definuje omezení pro rozsah povolených hodnot metadat datového typu celé / reálné číslo.

desetinná místa: počet desetinných míst, na která se mají metadata datového typu reálné číslo tisknout. Záporná hodnota způsobí povinný tisk nevýznamných nul napravo od desetinné čárky.

Pokud není datový typ zadán, záznam se nepoužije jako editovatelný typ metadat, ale ve stromě metadat se vyznačí jako složka obsahující metadata nebo další složky (s libovolnou hloubkou vnoření). Při editaci určitého typu metadat se pak identifikátory těchto složek spojí znaky /, na konec se přidá identifikátor samotného koncového typu metadat a tento řetězec tvoří cestu, která se uloží do záznamu o metadatech.

Pokud uzel stromu typů metadat obsahuje složku s prázdným identifikátorem, složka se v editoru metadat sice vyznačí, ale při skládání cesty typu metadat se uzel ignoruje. Takto je možno například metadata, která z důvodu určité normy musí být označena identifikátory "na stejné úrovni" (tedy bez vnoření složek), ve stromě logicky rozčlenit do podstromů a dosáhnout tak větší přehlednosti pro uživatele.

Příklad: strom metadat obsahuje údaje o projektu; složka autor obsahuje typy metadat typu text s identifikátory jmeno a prijmeni. Pokud pak v editoru medatat vytvoříte nový záznam metadat jmeno, uloží se do projektu s cestou autor/jmeno. (Kdyby složka autora měla identifikátor prázdný, v editoru metadat by se sice zobrazila, ale výsledná cesta typu metadat by byla pouze jmeno.)

Okno pro editaci formátů metadat umožňuje definovat formáty pro export a import uživatelských i základních vestavěných metadat objektů WebMapu. Opět obdobně jako u šablon nebo stromů typů metadat každý formát metadat je opatřen identifikátorem a může být uložen buď uvnitř projektu, nebo v samostatné knihovně (soubor wfl).

Formáty se definují deklarativně příkladem; formát je definován stromem, který v nejjednodušším případě odpovídá přímo stromové struktuře xml souboru, který má být formátem generován nebo ze kterého je cílem importovat data. Uzly stromu pak odpovídají tagům v xml souboru a lze je propojit se zvolenými typy metadat, do kterých se pak při importu načte obsah příslušných tagů z xml souboru, při exportu se do těchto tagů hodnoty metadat uloží.

Tímto způsobem lze definovat strukturu exportního souboru například pro metadata projektu, jediného mapového okna nebo tématu. Pokud je ovšem cílem vytvořit složitější formát obsahující větší počet objektů daného typu nebo kombinující údaje z různých typů objektů (například pokud je cílem vyexportovat seznam mapových oken a u každého mapového okna údaje o tématech v těchto oknech a jejich veřejných sloupcích), je třeba využít speciální typy uzlů stromu definujícího formát metadat, které umožňují programovat činnost exportního / importního mechanismu za účelem dosáhnout složitějšího kombinovaného chování.

V editoru formátů metadat se každý uzel stromu definujícího formát označuje jako pravidlo. Pravidlo definuje, jakým způsobem se má export resp. import v daném místě stromu zachovat. Stávající verze podporuje následující druhy pravidel:

tag: definuje přímo název tagu pro export resp. import a případně cestu typu metadat, který se má propojit s textovým obsahem tohoto tagu. V případě exportu se pak vytvoří výstup typu <tag>hodnota daného typu metadat</tag>, import naopak obsah tagu do daného typu metadat načte.

atribut: definuje atribut tagu a jeho propojení s určitým typem metadat. Na výstupu pak bude <tag atribut="hodnota metadat atributu">hodnota metadat tagu</tag>.

podřízený formát: do stromu se na tomto místě dosadí jiný formát metadat se zadaným identifikátorem. Tímto způsobem lze u složitějších formátů metadat vytvářet "procedury" zpracovávající resp. generující určitou část xml stromu.

xml metaspojení: přesměruje export nebo import do zadaného souboru xml. Lze využít například tehdy, pokud je zadáním pro každé mapové okno nebo každé téma vygenerovat nebo naimportovat samostatný xml soubor.

množinové metaspojení: přesměruje export nebo import do datové množiny jednoho z typů podporovaných WebMapem, v současné verzi je podporován formát dbf (generování / načítání souboru dbf) a sql (generování / načítání databázové tabulky).

podřízené mapové okno: toto pravidlo se používá tehdy, pokud chcete v xml souboru promítnout stromovou strukturu stromu mapových oken do stromové struktury xml (stromovou strukturu mapových oken v xml souboru má například WMS u metadatového popisu služby GetCapabilities).

V případě množinového metaspojení se na úrovni podřízeného podstromu pracuje s jednotlivými záznamy stejně jako s opakujícími se tagy v xml souboru. Jednotlivé identifikátory tagů odpovídají názvům sloupců tabulky a lze je tedy opět propojit s vhodnými typy metadat.

V některých případech lze výhodně využít funkci "načíst soubor", která zanalyzuje zvolený xml soubor a na základě jeho struktury předvyplní strom formátu metadat. Stačí pak strom projít a do jednotlivých pravidel (tagů) doplnit mapování na příslušné typy metadat.

Strom map lze exportovat / importovat dle zadání buď linearizovaně (cílem je exportovat pouze seznam map, nikoli jejich stromovou strukturu) nebo stromově (stromová struktura mapových oken se promítne do vnořených tagů v xml souboru). K linearizovanému exportu a importu slouží tlačítko v dialogu pro export / import metadat stromu mapových oken "rozvinout podstrom", které pro účely metadat převede strom mapových oken v preorder posloupnost oken.

V případě exportu a importu metadat o projektu je situace jednoduchá, protože projekt je v tomto kontextu jen jeden a není třeba jej nijak blíže specifikovat. Složitější situace je u mapových témat nebo oken, kterých je větší počet. Při exportu se projde zvolený výběr, případně celý strom a podle pravidel formátu se do výstupu zahrnou vybrané údaje o tématech nebo mapách.

Při importu naproti tomu je třeba rozlišovat situaci, kdy je cílem vytvořit nové objekty a ty předvyplnit importovanými daty, a situaci, kdy je třeba docílit propojení s již existujícími objekty a těm pouze změnit hodnoty určitých metadat. Pravidlo typu tag a atribut umožňuje za tímto účelem zvolit jeden z následujících typů propojení metadat:

projekt

mapové okno - spojení

mapové okno

téma - spojení

téma

téma v mapě - spojení

téma v mapě

veřejný sloupec - spojení

veřejný sloupec

mapový zdroj - spojení

mapový zdroj

připojené stránky k tématu v mapě - spojení

připojené stránky k tématu v mapě

Při exportu se typy propojení spojení chovají jako jejich protějšky bez označení "- spojení"; příslušné pravidlo vloží do atributu nebo obsahu tagu obsah zadaného typu metadat zvoleného typu objektu. Tag se vyexportuje tolikrát, kolik objektů bylo pro export vybráno.

Při importu pravidla s propojením spojení definují podmínku, na základě níž se podle obsahu tagu nebo atributu vybere (například na základě aliasu) příslušný objekt. Pokud podmínce spojení nevyhoví žádný z dostupných objektů, objekt se při importu nově založí, pokud v dialogu pro import je zaškrtnuta volba "vytvářet nové objekty". Pokud je volba vypnuta, nenamapovaný objekt se ignoruje.

Systém metadat respektuje přirozenou hierarchii objektů ve WebMapu; pokud například v kontextu výběru mapových oken použijete propojení "téma v mapě", podstrom pravidel se při exportu vyvolá postupně pro všechna témata v zadaných mapách. Obdobně pro téma v mapě lze vytvořit propojení "připojené stránky k tématu v mapě" a pro téma propojení "veřejný sloupec".

Ve složitějších případech může být součástí zadání překódování hodnot metadat, kdy hodnoty v xml souboru textově neodpovídají přímo hodnotám těchto metadat, ale jsou s nimi svázány nějakým převodním vztahem. V takovém případě lze definovat v rámci pravidla přímo dvojici výpočetních výrazů, které provedou toto překódování (samostatně pro export a import).

Další informace: Definice typu metadat
Definice formátu metadat
Načtení metadat
Uložení metadat

 

Soubor: metadata.htm