Skip to content
mila.pacek edited this page Aug 7, 2020 · 2 revisions

Nástroj Mapseries využívající metadata indexů mapových děl pro účely katalogizace

Geografický ústav Masarykovy univerzity spolu s Moravskou zemskou knihovnou v Brně vyvinul v rámci řešení projektu TEMAP nástroj Mapseries pro katalogizaci mapových děl. Nástroj umožňuje katalogizátorovi jednoduše předvyplnit metadata katalogizovaného mapového listu podle předem připravené šablony a zkopírovat tato metadata pro další použití, např. pro knihovnický systém Aleph. Nástroj je dostupný na stránce https://mapseries.mzk.cz/catalog/. Více informací lze nalézt v Certifikované metodice pro tvorbu metadat pro indexy mapových děl, která je dostupná z http://invenio.nusl.cz/record/200402.

Příprava šablony

Šablona je textový soubor, který obsahuje nekompletní metadatový záznam jednoho mapového listu daného mapového díla. Nekompletní proto, že některé jeho části jsou nahrazeny proměnnými (v matematickém či programátorském slova smyslu), které reprezentují některé vlastnosti mapových listů. Tyto proměnné jsou v průběhu samotné katalogizace postupně nahrazovány hodnotami, čímž vznikne kompletní záznam určený ke zkopírování.

Proměnné a vlastnosti

Proměnná reprezentuje proměnlivou, variantní nebo vícenásobnou vlastnost mapových listů daného mapového díla.

Proměnlivá vlastnost

Proměnlivá vlastnost mapových listů je taková, která není shodná pro všechny listy mapového díla, ale je shodná pro exempláře jednoho mapového listu. Příkladem proměnlivé vlastnosti může být označení mapového listu, ale také třeba jeho název nebo pokrytá oblast.

Variantní vlastnost

Variantní vlastnost mapových listů je taková, která není shodná pro různé exempláře alespoň jednoho mapového listu daného mapového díla. Příkladem variantní vlastnosti je jazyk dokumentu u 3VM, který se může lišit exemplář od exempláře (některé exempláře jsou vytištěny v češtině, jiné v němčině nebo třeba v maďarštině). Dalším příkladem variantní vlastnosti je název listu 3VM, který je na některých exemplářích v české podobě a na jiných v německé (např. Brno vs. Brünn). Na rozdíl od jazyku dokumentu jsou varianty různé list od listu.

Vícenásobná vlastnost

Vícenásobná vlastnost mapových listů je taková, která může pro jeden exemplář mapového listu nabývat více hodnot. Příkladem vícenásobné vlastnosti je název pokryté oblasti mapového listu, kdy jeden mapový list může pokrývat i více oblastí (např. list 36°50° 3VM pokrývá oblast Ostrava i oblast Opava).

Postup určení proměnné

Pravděpodobně nejsnazším způsobem, jak začít určovat proměnné, je vzít si několik hotových metadatových záznamů mapových listů daného díla a srovnat je. Místa, kde se od sebe jednotlivé záznamy liší, jsou kandidáty na proměnné. Následně je třeba případ od případu posoudit, o jakou vlastnost se jedná.

Závislost hodnot proměnných

Často se stává, že hodnota jedné vlastnosti přímo závisí na hodnotě jiné vlastnosti. Například na vydavatelské korporaci závisí místo vydání i bibliografický předchůdce. Vytipováním těchto závislostí a jejich následným zápisem do šablony lze velmi urychlit proces katalogizace. Katalogizátorovi následně stačí určit pouze vydavatelskou korporaci a místo vydání i bibliografický předchůdce jsou doplněny automaticky. Speciálním případem závislých proměnných jsou situace, kdy si hodnoty dvou (nebo dokonce více) proměnných vždy odpovídají. Příkladem může být rok vydání, který se objevuje v metadatovém záznamu na několika místech. Nástroj umožňuje zapisovat jednoduché závislosti, kdy hodnota jedné proměnné je přímo závislá na hodnotě jiné proměnné. Na jedné proměnné může být závislé více proměnných, ale jedna proměnná může být závislá na maximálně jedné jiné proměnné. Proměnná, na jejíž hodnotě je závislá hodnota jiné proměnné, nesmí být sama závislá. Počet možných hodnot obou proměnných musí být v rámci každého mapového listu shodný. Ani jedna z proměnných nesmí být vícenásobná.

Vytvoření šablony

Nejjednodušším způsobem je zkopírovat hotový metadatový záznam nějakého mapového listu daného díla a uložit jej do samostatného textového souboru. Následně je třeba místa v záznamu, kteréobsahují hodnoty výše vytipovaných proměnných nahradit zápisem těchto proměnných.

Syntaxe proměnných v šabloně

Každá proměnná je v metadatovém záznamu reprezentována objektem zapsaným ve striktní JSON notaci. Každý takový objekt musí mít několik atributů, které specifikují, jakým způsobem bude při katalogizaci nahrazena daná proměnná konkrétní hodnotou. Na následujícím obrázku je modře vyznačená jedna proměnná s atributy id, width, title a values. Před ní je na obrázku zapsaná jiná proměnná s atributy base, width, title a valuesByBaseIndex. Na konci posledního řádku je vidět začátek další proměnné (složená závorka), jejíž atributy již vidět nejsou.

Ukázka metadatového záznamu ve striktní JSON notaci

Je důležité si uvědomit, že všechen text, který je vně objektů proměnných, včetně mezer, tabulátorů a koncůřádků, se objeví ve výsledném metadatovém záznamu. Pouze místo objektů proměnných se objeví vyplněné hodnoty. Obrázek nahoře by se po nahrazení proměnných „smrskl“ na tři řádky začínající čísly 080, 110 a 24510 (v případě, že by žádná z vyplněných hodnot neobsahovala znak konce řádku). Na následujícím obrázku je vidět šablona tak, jak vypadá, když ji vyplňuje katalogizátor.

Vyplňovaná šablona z pohledu katalogizátora

Atributy proměnných

Atribut base, typ Text Popis: Přítomnost tohoto atributu indikuje, že se jedná o závislou proměnnou a naopak nepřítomnost tohoto atributu indikuje, že se jedná o nezávislou proměnnou. Hodnotou samotného atributu je identifikátor jiné proměnné, na jejíž hodnotě je závislá hodnota této proměnné.

Atribut enabled, typ Boolean Popis: Určuje, zda katalogizátor může měnit hodnotu nezávislé proměnné. Výchozí hodnota je true. Tento atribut má smysl přenastavit na false pouze v případě nevariantních nezávislých proměnných, které mají jedinou hodnotu.Hodnoty závislých proměnných katalogizátor měnit nemůže.

Atribut Id, typ Text Popis: Identifikátor proměnné. V šabloně nesmí existovat dvě proměnné se stejným identifikátorem. Atribut není povinný, ale je nutné jej uvést u proměnné, na níž je závislá jiná proměnná, aby se na ni dalo odkazovat atributem base.

Atribut multipleValues, typ Boolean Popis: Indikuje, zda je hodnota vícenásobná. Výchozí hodnota je false. Atribut může být true pouze u proměnných, které nejsou závislé a zároveň na nich žádná proměnná nezávisí.

Atribut title, typ Text Popis: Název pole. Objeví se vnástroji při najetí myši na pole dané proměnné a v případě variantní proměnné i jako nápověda přímo v poli.

Atribut width, typ Číslo Popis: Přibližná šířka pole, které se objeví v nástroji na místě proměnné. Použitou jednotkou jsou znaky textu.

Atribut value, typ Hotnoda / Odkaz Popis: Hodnota nebo odkaz na hodnotu(-y) dané proměnné. Pozor na to, že odkaz může reprezentovat i více hodnot. Způsob zápisu viz dále. Tento atribut nesmí být uveden u závislých proměnných.

Atribut values, typ pole Hodnot / Odkazů Popis: Pole hodnot nebo odkazů na hodnoty dané proměnné. V jednom poli mohou být jak hodnoty, tak odkazy. Pozor na to, že odkaz může reprezentovat i více hodnot. Způsob zápisu viz dále.Tento atribut nesmí být uveden u závislých proměnných.

Atribus valuesByBaseIndex, typ pole Hodnot / Odkazů Popis: Vyplňuje se pouze u závislých proměnných, a to pouze u těch, jejichž hodnota není rovna hodnotě proměnné, na které závisí. U závislých proměnných je automaticky vybrána hodnota, která má takovou pozici (index) v rámci možných hodnot, jakou má zvolená hodnota proměnné, na které závisí, v rámci svých možných hodnot. Jedná se o pole hodnot nebo odkazů na hodnoty dané proměnné. V jednom poli mohou být jak hodnoty, tak odkazy. Pozor na to, že odkaz může reprezentovat i více hodnot. Způsob zápisu viz dále.

Atribut valueSeparator, typ Text Popis: Oddělovač hodnot vícenásobné proměnné. Má smysl jej uvádět pouze pokud je multipleValuestrue. Konec řádku lze zapsat jako „\n” (zpětné lomítko a malé en).

Hodnoty a Odkazy na hodnoty

Ve třech atributech objektu proměnné –value, values a valuesByBaseIndex– se vyskytuje zápis hodnot nebo odkazů na hodnoty. Hodnota je vždy reprezentována libovolným textovým řetězcem (a naopak – pokud se na daném místě objeví textový řetězec, je tento považovaný za hodnotu). Hodnota se objeví nezměněná v poli formuláře nebo jako jedna z možných variant. Odkaz na hodnotu(-y) je vždy reprezentován objektem zapsaným ve validní JSON notaci. Může mít dva atributy –attr a formatFunction– které jsou popsány dále. V určitých případech může odkaz reprezentovat i více hodnot.

Odkaz na hodnotu si lze představit jako převodní funkci, která má dva vstupní parametry: stringValue - textový řetězec nebo sheet - objekt typu OpenLayers.Feature.Vector a jeden výstup, kterým je hodnota, která se objeví nezměněná v poli formuláře nebo jako jedna z možných variant. Pokud je uveden atribut attr, dosadí se za první parametr –stringValue– hodnota z příslušného sloupce tabulky. Pokud atribut attr uveden nebyl a jedná se o závislou proměnnou, dosadí se za první parametr hodnota proměnné, na níž závisí tato proměnná. Za druhý argument –sheet– se vždy dosadí objekt, který představuje mapový list včetně geometrie. Pokud je uveden atribut formatFunction, aplikuje se daná formátovací funkce na oba argumenty a její návratová hodnota se objeví v poli formuláře nebo jako jedna z možných variant. Pokud atribut formatFunction uveden nebyl, objeví se nezměněná hodnota parametru stringValue v poli formuláře nebo jako jedna z možných variant. Jak již bylo řečeno, může odkaz reprezentovat i více hodnot. To nastane v případě, že hodnota ve sloupci tabulky určeném atributem attr obsahuje znak „|“, který slouží jako oddělovač hodnot. V tom případě se výše popsaný postup aplikuje na každou hodnotu zvlášť a výsledkem je stejný počet hodnot, jaký je v daném sloupci uložen. V hodnotách, které jsou specifikovány uvnitř šablony, je lepší se znaku „|“ zcela vyhnout.

Atributy odkazů na hodnoty

Atribut attr, typ Text Popis: Název sloupce tabulky kladu mapových listů, ve kterém je uložena hodnota (nebo více hodnot), která vstupuje do výše popsané převodní funkce. Více hodnot je možné do sloupce uložit spomocíoddělovače „|“. Toho lze s výhodou využít v případě variantních nebo vícenásobných proměnných.

Atribut formatFunction, typ Text Název formátovací funkce, která je aplikována na dva argumenty – stringValue a sheet (viz výše). V nástroji existují dvě připravené formátovací funkce: ms:marc21_0341_bbox a ms:marc21_255_bbox_czech. Tyto formátovací funkce vrací prostorový rozsah daného mapového listu pro příslušná pole metadatového záznamu MARC21. Kromě toho je možné si pro každou mapovou sérii v konfiguračním souboru nadefinovat vlastní formátovací funkci (viz dále) a na ni se zde odkázat.

Zápis jednotlivých typů proměnných

Proměnlivá vlastnost Hodnoty proměnlivé vlastnosti je ideální zapsat a následně získat z tabulky nebo z geometrie kladu mapových listů. V šabloně se na takovou hodnotu lze odkázat odkazem s nastaveným atributem attr a/nebo formatFunction. Příkladem ze šablony 3VM budiž pole 043, 0341 nebo 255.

Variantní vlastnost

U variantních vlastností je situace složitější. Pokud pro všechny exempláře všech mapových listů existuje omezené množství možných hodnot (například jazyk dokumentu nebo vydavatelská korporace), je nejjednodušším způsobem zápis možných hodnot přímo do šablony. Příkladem ze šablony 3VM jsou pole 0410 nebo 110$$a. Pokud pro všechny exempláře jednoho mapového listu existuje velké množství možných hodnot a tyto hodnoty se navíc vyskytují i u většiny jiných listů (například rok vydání nebo číslo vydání), je nejjednodušším způsobem možné hodnoty neuvádět a nechat na katalogizátorovi jejich explicitní doplnění. Příkladem ze šablony 3VM jsou pole 008 nebo 300. Pokud pro exempláře alespoň jednoho listu existuje malé množství možných hodnot a tyto hodnoty se u různých mapových listů neopakují (například název listu 3VM), je ideální zapsat hodnoty do jednoho sloupce tabulky kladu mapových listů a oddělit je znakem „|“. Příkladem ze šablony 3VM je pole 24510$$a. Speciálním případem předchozího odstavce je potom situace, kdy sice existuje více možných hodnot, ale jedna z druhé je strojově odvoditelná. Příkladem je označení mapového listu 3VM, které se vyskytuje ve dvou variantách se stupni a bez stupňů (34°49° vs. 3449). V tomto případě stačí do tabulky uložit pouze jednu hodnotu a druhou hodnotu potom získat formátovací funkcí. Příkladem ze šablony 3VM je pole 24510$$p.

Vícenásobná vlastnost

Hodnoty vícenásobných vlastností, které se liší list od listu (například pokrytá oblast), je ideální zapsat do jednoho sloupce tabulky a oddělit je znakem „|“. Příklademze šablony 3VM jsou pole 080 nebo 651.

Závislá vlastnost

Pokud je hodnota závislé vlastnosti rovna hodnotě, na níž závisí, není třeba žádnou hodnotu uvádět. Příkladem ze šablony 3VM jsou pole 264$$c, 490 nebo 830. Pokud se hodnota závislé vlastnosti liší, je nutné uvést možné hodnoty nebo odkazy do proměnné valuesByBaseIndex. V průběhu katalogizace je potom automaticky vybrána hodnota, která má takovou pozici (index) v rámci možných hodnot, jakou má zvolená hodnota proměnné, na které závisí, v rámci svých možných hodnot. U proměnných, které mají atribut valuesByBaseIndex, je pak třeba se rozhodnout, zda budou jejich hodnoty zapsány přímo do šablony (příkladem ze šablony 3VM jsou pole 008, 110, 245, 264$$a, 490, 655) nebo do tabulky (pole 246 druhá hodnota, 4901 druhá hodnota, 830 druhá hodnota) nebo budou získány převodem z původní hodnoty (2463 první hodnota, 4901 první hodnota, 830 první hodnota). Rozhodovací klíč je v tomto případě obdobný, jako u variantních vlastností.

Příprava kladu mapových listů

Klad mapových listů je nutné připravit jako soubor ve formátu ShapeFile (*.shp). Charakteristiky formátu shapefile jsou popsány např. v dokumentu ESRI White Paper (1998). Každý mapový list je v něm reprezentován jedním polygonem a několika sloupci (atributy).V tabulce kladu musí existovat všechny sloupce odkazované ze šablony a jejich hodnoty je třeba vyplnit. Názvy a typy sloupců mohou být libovolné (nejbezpečnější jsou typy text nebo číslo). Dva sloupce jsou povinné (vyžadované aplikací): SHEET, v němž je uloženo číslo mapového listu a TITLE, v němž je uložen název mapového listu.

Klad mapových listů je nejbezpečnější převést do souřadného systému EPSG:4326. Pro účely projektu TEMAP byly klady mapových listů shromažďovány a vytvářeny vrámci přípravy výsledku Nmap Specializovaná mapa - Klady listů vybraných mapových děl na území České republiky, který je dostupný na adrese: http://mapy.geogr.muni.cz/klady/index.html.

Zaregistrování mapového díla do nástroje

Zaregistrování mapového díla předpokládá provedení dvou kroků, a to: nahrání šablony a přidání mapového díla do konfiguračního souboru. Jejich provedení se předpokládá rovněž odborníkem z oboru kartografie a geoinformatiky.