21. 10. 2011 ~ 0 Komentářů

Napojení repozitáře DSpace VŠB-TUO na DRIVER


Autor příspěvku: Mgr. Ladislav Kulhánek, VŠB-TUO

Úvod

VŠB-TUO buduje repozitář postavený na DSpace ve verzi 1.7.1 s uživatelským rozhraním XMLUI. Potřebovali jsme jej napojit na evropský portál DRIVER. Repozitáře se s DRIVER propojují pomocí OAI PMH. Repozitář vystupuje jako poskytovatel dat, DRIVER vystupuje jako poskytovatel služby – data v pravidelných intervalech sklízí a pomocí nich poskytuje služby.

Systém DSpace už v základu poskytuje OAI-PMH rozhraní. Ve výchozím nastavení se nachází na adrese http://adresa-repozitare.org/oai/request. Nebylo však možné náš repozitář hned na DRIVER napojit, protože nesplňoval všechna pravidla, která DRIVER požaduje. Napojení tedy spočívá v úpravě repozitáře tak, aby splňoval pravidla DRIVER.

Existuje patch pro DSpace, který upraví OAI-PMH rozhraní tak, aby vyhovovalo DRIVER a pravidlům OpenAIRE. Rozhodli jsme se tento patch nepoužít a upravit DSpace vlastní cestou. Jednak proto, že patch funguje pouze pro verzi 1.6.2 a jednak jsme chtěli mít větší kontrolu nad provedenými změnami v DSpace.

Pravidla DRIVER

Pravidla, která musí poskytovatelé obsahu splňovat, jsou popsána v dokumentu DRIVER Guidelines. Každý, kdo chce napojit svůj repozitář na DRIVER, by si měl tento dokument přečíst.

Velmi užitečná věc, kterou DRIVER poskytovatelům obsahu nabízí, je validátor. Validátor umí projít repozitář a říct, jestli splňuje pravidla, případně která pravidla nesplňuje a u kterých záznamů. Validátor je přístupný po registraci. Do validátoru se zadá adresa OAI-PMH protokolu a vybere se, která OAI-PMH množina (set) se má validovat. Lze si také zvolit, podle kterých skupin pravidel se má validovat. Validátor slouží zároveň jako validace pro OpenAIRE, obsahuje celkem čtyři skupiny pravidel: pravidla obsahu pro DRIVER (DRIVER Content Rules), pravidla použití pro DRIVER (DRIVER Usage Rules), pravidla obsahu pro OpenAIRE (OpenAIRE Content Rules) a pravidla použití pro OpenAIRE (OpenAire Usage Rules). Pravidla obsahu jsou pravidla týkající se metadat, pravidla použití jsou pravidla týkající se OAI-PMH. Po proběhnutí validace se zobrazí procentuální výsledek pro každou validovanou skupinu pravidel, který říká, na kolik validovaný repozitář pravidla splňuje. Není nutné mít repozitář validní na 100 %. Některá pravidla jsou však vyžadována a bez jejich splnění není možné se k DRIVER připojit.

Validace je poměrně časově náročná. Čím více záznamů se validuje, tím déle trvá. Pokud se validují stovky záznamů, trvá řádově hodiny. Validace také ne vždy fungovala a museli jsme někdy určitou dobu čekat, než bude zprovozněna.

Úprava metadat

Metadata v našem repozitáři nesplňovala pravidla DRIVER. Například obsah elementu dc.type neodpovídal číselníku DRIVER, záznamy obsahovaly více než jeden element dc.date a podobně.

Potřebovali jsme metadata pozměnit tak, aby odpovídala pravidlům DRIVER. Jsou dvě možnosti, jak toho dosáhnout. První možnost znamená změnit metadata přímo v repozitáři. Buď přes uživatelské rozhraní, nebo pomocí SQL přímo v databázi. Druhá možnost obnáší úpravu metadat na OAI-PMH vrstvě. Rozhodli jsme se pro druhou možnost. Tento způsob byl rychlejší a flexibilnější. Navíc kdybychom v budoucnu potřebovali formát dat změnit nějak jinak (například pro dalšího poskytovatele služeb a současně zachovat poskytování dat pro DRIVER, pomocí prvního způsobu by to téměř nebylo možné.

Na adrese http://dspace.vsb.cz/oai-driver/proxyna jsme vytvořili druhé OAI-PMH rozhraní, které generuje výstup splňující DRIVER pravidla. Nové rozhraní jsme vytvořili pomocí webové aplikace, která vznikla zkopírováním webové aplikace zajišťující standardní OAI-PMH rozhraní DSpace.

Výstup ve formátu Dublin Core zajišťuje ve standardním OAI-PMH rozhraní třída org.dspace.app.oai.OAIDCCrosswalk. Implementovali jsme vlastní třídu s názvem org.dspace.app.oai.OAIDCCrosswalkDRIVER, která produkovala mírně odlišný výstup, ale ten vyhovoval DRIVER pravidlům. Implementace nebyla složitá, vycházeli jsme ze třídy org.dspace.app.oai.OAIDCCrosswalk a v té jsme změnili metodu createMetadata. Tato metoda má na starosti vykreslování metadat ve formátu Dublin Core.

Úprava OAI-PMH

Metadata už odpovídala pravilům DRIVER, ještě jsme museli upravit samotné OAI-PMH. OAI-PMH člení záznamy do množin. Záznam patří do 0 až n množin. DSpace vytváří množiny podle komunit a kolekcí. Každá kolekce v DSpace odpovídá OAI-PMH množině a naopak.

DRIVER sklízí pouze záznamy nacházející se v množině DRIVER. My jsme měli záznamy umístěné ve více kolekcích a tudíž i ve více množinách. Vytvořili jsme proto v DSpace kolekci DRIVER a namapovali do ní záznamy, které chceme nechat sklízet. Abychom nemuseli mapovat ručně, vytvořili jsme program, který prochází vybrané kolekce a automaticky mapuje nové záznamy do kolekce DRIVER.

Druhý problém vznikl s pojmenováním množiny. DSpace vytváří jména množin podle handle identifikátoru kolekce/komunity, čili množina se jmenuje například „hdl_10084_12345“. Podle pravidel DRIVER se však musí jmenovat „driver“. DSpace neumožňuje nastavit, jak se má množina pojmenovat. Toto jsme vyřešili jednoduchou textovou substitucí na úrovni OAI-PMH. Příchozí požadavek obsahující jméno množiny „driver“ se přeloží na jméno „hdl_xxx_yyy“ a výstup se přeloží zase zpátky na „driver“.

Tato řešení se ukazují jako dostačující, pokud se vyskytnou další požadavky na modifikaci množin, vyřešíme to pravděpodobně větším zásahem do OAI-PMH implementace.

Registrace repozitáře

Po úspěšné validaci repozitáře jsme přikročili k samotné registraci. Při registraci je potřeba vyplnit několik údajů o repozitáři. Po vyplnění se automaticky spustí validace. V případě, že proběhne úspěšně, je repozitář ručně zkontrolován pracovníkem DRIVER a následně registrován. Poté jsou jednou týdně, podle našich zkušeností v pátek, sklízeny změny.

Přidej komentář