Skip to content
Pavel Šťastný edited this page Nov 28, 2016 · 37 revisions

#Přechod na nový repozitář - Proof of concept [[TOC]]

#Úvod Účelem realizace PoC je potřeba přechodu na novější repositář pro ukládání digitálních objektů pro systém Kramerius. Tento text popisuje ověřované varianty migrace:

  1. Fedora Commons 4
  2. Java content repository

#Fedora 3 Základním problémem migrace je reprezentace dat. Starší verze fedory byla postavena nad digitálním objektem, který je reprezentovaný pomocí FOXML. Popis modelu je vidět v následujícím popisu:

Datový model

Pro zobrazení jsou potřeba dvě komponenty. První O zobrazení se starají dvě komponenty. V pr RDF vazby mezi jednotlivými objekty jsou drženy pomocí RELS-EXT streamů. Z O zobrazení digitálního objektu se staraly dvě komponenty. První byl samotný repositář, druhý pak SOLR index (který poskytoval funkcionalitu vyhledávání případně umožňoval získat data, které je časově obtížné z repositáře získat).

#Fedora 4 Nová verze fedory implementuje Linkded data platform. Základními prvkem je node - LDP Resource. Může obsahovat dětské nody pak se jedná Container.

Samotná reprezentace objektu v nové fedoře může vypadat následovně:

<Container> 
 - <Non-RDF resource DC>
 - <Non-RDF resouce BIBLIO_MODS>
 - <Non-RDF resource BIBLIO_MODS>
 - <Non-RDF resource RELS-EXT>

Důležitým aspektem zde je fakt, že samotný RELS-EXT, který drží vazby mezi objekty, je zde uložen jako standardní datastream. (Tak tomu ostatně bylo u i fedory 3).Je tedy zaručeno "stejné" nakládání s objektem jako bylo u dřívější fedory verze.

#Java content repository Podobným způsobem lze nakládat s daty v repozitáři JCR. Nutno je jen oddělit typy uzlů, které reprezentují digitální objekt od uzlů reprezentujících datastream. Výsledná reprezentace bude podobné té předchozí.

##Uložení digitálních objektů v repozitáři Objekty mohou být uloženy v repozitáři vícero způsoby. V implementaci PoC bylo využito nejjednodužší varianty a to uložení všech objektů v jedné úrovni. Viz následující struktura:

  - <PID_1>
  - <PID_1> 

Poznámka: Ve výsledné implementaci se uložení objektů může lišit.

Data jsou v repozitáři ukládána stejně, resp. podobně jako v předchozí verzi Data v repositáři je možno vícero způsoby. V rámci POC je implementováno organizace uložení na základě pidu, tedy

Na první pohled se nabízí dvě možnosti:

  1. Organizace na základě pidu a struktury - Každý rodič bude mít pod sebou své děti.
  - <parent PID> 
	- <child PID> 
  1. Organizace na základě pidu - Data budou organizována pouze podle svého PIDu
  - <PID_1>
  - <PID_1> 

V POC jsme se drželi první možnosti a to hlavně z důvodu snadého adresování objektu. Pro získání objektu postačí pouze jeho PID. Stejně tomu bylo i u fedory ve verzi 3.

Komunikace s repozitářem

Komunikaci s repozitářem zajišťuje objekt FedoraAccess . Stará o všechny typy volání (datové nebo získání metadat). Podpora nových repozitářů je realizována dvěma implementacemi této třídy. Nastavení dané implementace je realizováno konfigurační proměnnou. Proměnná pro jackrabbit, proměnná pro [fedoru 4] (https://github.com/ceskaexpedice/kramerius/blob/POC/common/src/main/java/res/configuration.properties#L12).

Realizace a testování

V rámci Poc byla vytvořena distribuce, která umožňuje naimportovat, zaindexovat a prohlížet jednoduchou monografii. Instalace distribuce s popisem jak importovat data je popsána zde:.

Co v konceptu není řešeno.

  1. Realizace referencovaných streamů
  2. Virtuální sbírky
  3. Import dat z jiných formátů než z FOXML.
  4. Replikace dat.
  5. Rozhraní pro ČDK.

V rámci POC byl vytvořen importní modul, který importuje ve formátu FOXML do nového repositáře. Pod větví POC byla vytvořena implementace, která umí číst data z nového repositáře přičemž předpokládá, že v indexu SOLR jsou již zaindexovaná.

Externí závislosti

#Resource index

Proof of concept počítá s možností vyhnout se triple store indexu úplně, nicméně možnost využít externí triple store index a způsob instalace je popsán zde: https://wiki.duraspace.org/display/FEDORA4x/External+Triplestore

#Podpora SOLR idexu SOLR index je podporován. Možný způsob implementace je vidět zde: https://wiki.duraspace.org/display/FEDORA4x/Solr+Indexing+Quick+Guide

#OAI provider Od verze 5.3.4 je využíván OAI provider postaven na indexu SOLRu.

#Odkazy

  1. https://wiki.duraspace.org/display/FEDORA4x/The+Fedora+4+object+model
  2. https://wiki.duraspace.org/display/FEDORA4x/Solr+Indexing+Quick+Guide
  3. https://wiki.duraspace.org/display/FEDORA4x/External+Triplestore
  4. https://wiki.duraspace.org/display/FEDORA451/Concept+Mapping+-+Fedora+3+to+4
  5. https://wiki.duraspace.org/display/FEDORA451/Linked+Data+Platform
  6. https://wiki.duraspace.org/display/FEDORA451/Glossary#Glossary-Datastream

#Java content repository (Jackrabbit) Další zkoumanou možností je přechod na některý repositář splňující specifikaci Java content repository (JSR 170 a JSR 283). Pro tento účel byl vybrán produkt Jackrabbit.

##Uložení dat v repositáři Opět se nabízí více možností. Volili jsme stejnou cestu jaká byla popsána výše.

##Implementace komunikace s fedorou Nová implementace FedoraAccess. Volba mezi různými implementacemi (Fedora 3, Fedora 4 a Jackrabbit) je možná pomocí systémové proměnné.

##Podpora SOLR indexu Pomocí funkce Observation

#Odkazy

  1. https://jcp.org/en/jsr/detail?id=170
  2. https://jcp.org/en/jsr/detail?id=283
  3. http://modeshape.jboss.org/

Instalace implementovaných variant zde:

Clone this wiki locally