-
Notifications
You must be signed in to change notification settings - Fork 26
datovy model K7
Digitální objekty systému Kramerius 7 jsou uloženy v úložišti Akubra ve formátu FOXML 1.1. Popis tohoto formátu je zde: https://wiki.duraspace.org/display/FCR30/Introduction+to+FOXML (pozn.: dostupné pouze po přihlášení).
Každý digitální objekt systému K7 má jednoznačný identifikátor UUID, generovaný stejným algoritmem, který byl použit v předchozí verzi systému Kramerius (tedy UUID verze 1-4, viz https://datatracker.ietf.org/doc/html/rfc4122), doplněný prefixem uuid:, například uuid:0eaa6730-9068-11dd-97de-000d606f5dc6
Objekty používají datové streamy navržené v rámci POC, povinné streamy jsou DC, BIBLIO_MODS a RELS_EXT.
Objekty, které obsahují binární stream IMG_FULL s obrázkem v plném rozlišení, jsou oproti POC rozšířeny o další binární stream IMG_THUMB s miniaturou obrázku (ve formátu JPG se šířkou 128 px) pro zobrazení v souhrnných přehledech a binární stream IMG_PREVIEW se zmenšeným náhledem obrázku (ve formátu JPG se šířkou 512 px)
Pokud k obrázku stránky existuje OCR, musí být uložen v příslušném FOXML objektu v datastreamu TEXT-OCR (MIME type text/plain) v kódování UTF-8.
Pokud k OCR existuje i dokument ALTO (verze 1 nebo 2), musí být uložen v tomtéž FOXML objektu v datastreamu ALTO (MIME type text/xml), rovněž v kódování UTF-8.
Další rozšíření oproti POC je standardní datový stream POLICY, který obsahuje přístupová práva ve formátu XACML - použit pouze u objektů s omezeným přístupem.
Pokud pro digitální objekt existuje donátor, jehož logo má být zobrazeno spolu s titulem, je uveden jako vazba v RELS-EXT na speciální FO-XML objekt, který obsahuje logo donátora v binárním datovém streamu LOGO. Tento způsob umožňuje informace automaticky indexovat v RI a navíc je možno snáze přidávat nové donátory. Příklad FOXML objektu donátora (Norské fondy) je v souboru installation-x.x.x.zip v adresáři fedora, soubor donator_norway.xml.
V budoucích verzích Krameria bude podporováno vyznačování vyšších logických částí (např. článků) na jejich podřízených stránkách, založené na informacích v datastreamech ALTO příslušných stránek. FOXML objekt nadřízené části (článku) v tom případě bude obsahovat datastream "STRUCT_MAP" (MIME type text/xml, kódování UTF-8) s následujícím obsahem:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<parts>
<part type="TITLE/SUBTITLE/NORMAL_TEXT..." order="1/2/3..." alto="uuid:eed93968-e2ef-11e1-abbb-001b63bd97ba/ALTO" begin="TextBlock5" />
... element part opakovat pro každou podřízenou stránku
</parts>
Atributy elementu part jsou převzaty z odpovídajícího elementu div v logické struktuře METS dle nového standardu NKP pro digitalizaci (viz níže)
Dokumenty v původním formátu DTD Kramerius 3 mají hierarchickou stromovou strukturu (typicky monografie/svazek/stránka nebo periodikum/ročník/číslo/stránka). Úložiště Fedora není hierarchické. Každému uzlu původní stromové struktury odpovídá digitální objekt FOXML s příslušným content modelem, jednotlivé objekty jsou do stromové struktury propojeny pomocí RDF vazeb definovaných v datovém streamu RELS-EXT.
Pořadí objektů zobrazovaných v hierarchické stromové struktuře Krameria je určeno výhradně pořadím RDF vazeb uvedených v datastreamu RELS-EXT.
Při konverzi dat do FOXML z formátů K3 nebo METS NDK je zachováno pořadí součástí uvedené v rámci původního konvertovaného dokumentu.
Pokud je titul do Krameria importován po jednotlivých částech (například samostatné ročníky periodika), importní proces Krameria automaticky přidá RDF vazby na nově importované součásti na konec datastreamu RELS-EXT v již existujícím nadřazeném FOXML objektu. K tomuto spojení vazeb dojde tehdy, pokud existující i nově přidávaný nadřazený FOXML objekt mají stejný PID.
Pokud je při postupném importu samostatných částí titulu nastavena konfigurační property ingest.sortRelations=true
, dojde po importu nové části k automatickému setřídění vazeb RELS-EXT. Kriterium třídění je závislé na content modelu tříděných objektů a je určeno pomocí XPath z datastreamu BIBLIO-MODS v tříděných objektech. Hodnota Xpath pro jednotlivé content modely je definována v konfigurační property sort.xpaths
Pořadí vazeb je možno setřídit stejným algoritmem jako při importu příkazem Třídit z kontextového administrátorského menu. Správnost tohoto automatického třídění je závislá na správném obsahu dat v datstreamu BIBLIO-MODS ve tříděných objektech. Pokud objekty nejsou automaticky setříděny požadovaným způsobem (například kvůli nesprávnému číslování stran), je pořadí vazeb v datstreamu RELS-EXT možné editovat ručně pomocí editoru, který je součástí instalace Krameria (popis zde)
Kramerius 7 pracuje s následujícími modely:
-
page
-
graphic
-
map
-
sheetmusic
-
archive
-
manuscript
-
monograph
-
monographunit
-
periodical
-
periodicalvolume
-
periodicalitem
-
soundrecording
-
soundunit
-
track
-
internalpart
-
article
-
collection
-
convolute
Oproti K5 již není potřeba, aby v Repozitáři (dříve Fedora) existovaly FOXML objekty definující používané modely. V K7 nelze přidávat vlastní modely. Je tomu tak proto, že objekty různých modelů mají odlišné vlastnosti - např. vzhledem k povoleným vazbám, nebo indexaci.
Každý validní objekt v repozitáři je součástí datové struktury strom, která je definována vlastními vazbami. Např. monografie mající X stránek (přes vazby hasPage) tvoří dvouúrovňový strom s kořenem (monografie) a X listy. Anebo periodikum mající několik ročníků (hasVolume), každý z ročníků několik čísel (hasItem), každé z čísel několik stránek (hasPage) - celkem Y stránek napříč všemi čísly všech ročníků. Zde jde o strom se 4 úrovněmi (periodikum, ročníky, čísla, stránky) a Y listy.
Vybrané vazby mezi objekty nejsou součástí stromu objektu, ale jde o tzv. nevlastní vazby. Objekty mohou přes tyto vazby ukazovat na jiné objekty, ani by museli splňovat omezení daná stromovou strukturou.
Nevlastní vazba isOnPage se používá pro články, vnitřní části a obrázky.
Periodikum P1 má ročník R1, ten má číslo Č1. Č1 má stránky S1, S2, S3 a článek A1, který ukazuje na stránky S2 a S3.
- P1 -hasVolume-> R1
- R1 -hasItem-> Č1
- Č1 -hasItem-> S1, Č1 -hasItem-> S2, Č1 -hasItem-> S3, Č1 -hasItem-> A1,
- A1 -isOnPage-> S2, A1 -isOnPage-> S3
A1 tedy není rodičem S2 ve stromě s kořenem P1, nicméně A1 je součástí stejného stromu, jeho vlastním rodičem je Č1. Říkáme, že A1 je nevlastním rodičem S1.
Podporovaná je i situace, kdy články přímo mají/vlastní stránky. Tehdy musí být vazba z článku na stránku přes hasPage a na stránku nesmí vézt jiná vazba hasPage.
Tuto nevlastní vazbu používají sbírky na objekty, které sbírka zahrnuje. Tedy i jiné sbírky. Každá sbírka je tedy samotným stromem o jednom prvku, který je zároveň kořenem i jediným listem. Důvod, proč sbírky mezi sebou nemají vlastní vazby jde vidět z následujícího příkladu.
Sbírka 1 obsahuje monografii M1, periodikum P1, číslo některého jiného periodika Č1. Sbírka 2 obsahuje Sbírku 1. Sbírka 3 také obsahuje sbírku 1. Tedy:
- S1 -contains-> M1
- S1 -contains-> P1
- S1 -contains-> Č1
- S2 -contains-> S1
- S3 -contains-> S1
- S3 -contains-> M1
S3 i S2 jsou nevlastní rodiče S1, nemohly by zde tedy figurovat vlastní vazby, každý objekt ve stromu musí mít nejvýše jednoho rodiče. M1, P1, Č1 jsou (nepřímo) součástí sbírek S2 i S3 a jsou třeba přístupné pod licencemi těchto sbírek. M1 je přímo (ale i nepřímo přes S1) zahrnuta v S3.
RDF definuje vybrané vlastnosti objektu a zajména vztahy mezi objekty. Typ vztahu je určen názvem vazby. Vazba mezi objekty je vždy vyjádřena ve RDF zdrojového objektu, v jeho datastreamu RELS-EXT. Tedy vztah objekt1 -vazba-> objekt2 bude definován v RELS-EXT objekt1.
Například pokud monografie uuid:0eaa6730-9068-11dd-97de-000d606f5dc6 obsahuje tři stránky (uuid:4308eb80-b03b-11dd-a0f6-000d606f5dc6, uuid:4a79bd50-af36-11dd-a60c-000d606f5dc6, uuid:430d7f60-b03b-11dd-82fa-000d606f5dc6), může RDF záznam monografie vypadat takto:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:model="info:fedora/fedora-system:def/model#"
xmlns:rel="http://www.nsdl.org/ontologies/relationships#"
xmlns:oai="http://www.openarchives.org/OAI/2.0/"
>
<rdf:Description rdf:about="info:fedora/uuid:0eaa6730-9068-11dd-97de-000d606f5dc6">
<model:hasModel rdf:resource="info:fedora/model:monograph"/>
<rel:policy>policy:public</rel:policy>
<rel:hasDonator rdf:resource="info:fedora/donator:norway"/>
<rel:hasPage rdf:resource="info:fedora/uuid:4308eb80-b03b-11dd-a0f6-000d606f5dc6"/>
<rel:hasPage rdf:resource="info:fedora/uuid:4a79bd50-af36-11dd-a60c-000d606f5dc6"/>
<rel:hasPage rdf:resource="info:fedora/uuid:430d7f60-b03b-11dd-82fa-000d606f5dc6"/>
<oai:itemID>uuid:0eaa6730-9068-11dd-97de-000d606f5dc6</oai:itemID>
</rdf:Description>
</rdf:RDF>
název vazby | relevantní modely | platné hodnoty | poznámka |
---|---|---|---|
hasModel | cokoliv (povinné) | rdf:resource="info:fedora/model:*" | např. info:fedora/model:monograph, info:fedora/model:page |
hasDonator | cokoliv | rdf:resource="info:fedora/donator:*" | např. info:fedora/donator:norway |
contract | cokoliv | cokoliv (v těle elementu) | identifikátor čísla zakázky, např: rel:contract20740</rel:contract> |
policy | cokoliv | "policy:public", nebo "policy:private" (v těle elementu) | např. rel:policypolicy:private</rel:policy> |
itemId | cokoliv | PID | identifikátor, pod kterým bude objekt zveřejněn v protokolu OAI-PMH, obvykle identický s PID objektu |
handle | cokoliv | identifikátor handle | persistentní URL (identifikátor typu handle) |
název vazby | relevantní modely | platné cílové modely | poznámka |
---|---|---|---|
hasPage | monograph, map, sheetmusic, graphic, archive, manuscript, periodicalitem, monographunit, article | page | něco obsahuje stránku (pozor na článek a rozdíl mezi article -> hasPage -> page a article -> isOnPage -> page) |
hasUnit | monograph, convolute | monographunit (pro monografie), top-level objekty kromě sbírek (pro konvoluty) | monografie obsahuje část monografie, nebo konvolut obsahuje top-level dokument, který není sbírka (monografie, grafika, periodikum, ...) |
hasVolume | periodical | periodicalvolume | periodikum obsahuje ročník periodika |
hasItem | periodical, periodicalvolume | periodicalitem, supplement | periodikum/ročník periodika obsahuje číslo periodika |
hasIntCompPart | periodicalitem | internalpart, article | číslo periodika obsahuje vnitřní část/článek |
hasSoundUnit | soundrecording | soundunit | zvukový dokument obsahuje část/jednotku |
hasTrack | soundrecording, soundunit | track | zvukový dokument/část zvukového dokumentu obsahuje zvukovou stopu |
isOnPage | article, internalpart, picture | page | článek/vnitřní část se nachází na stránce. Pozor, jde o nevlastní vazbu, musí existovat objekt, který stránku obsahuje (typicky monografie, nebo číslo periodika). |
contains | collection | cokoliv | sbírka zahrnuje nějaký objekt. Opět jde o nevlastní vazbu, zahrnutý objekt tedy musí mít vlastního rodiče, pokud sám není objektem nevyžadující rodiče (monografie, periodikum). Sbírky nesmí vytvářet cyklus přes vazby contains, např. s1 -contains-> s2 -contains-> s1 nesmí nastat. |
Pokud není uvedeno jinak, jmenný prostor zmíněných vazeb je http://www.nsdl.org/ontologies/relationships#. Výjimky:
- element hasModel je ve jmenném prostoru info:fedora/fedora-system:def/model#
- element itemId je ve jmenném prostoru http://www.openarchives.org/OAI/2.0/
Digitální objekty v systému Kramerius tvoří obecnou stromovou strukturu s vazbami definovanými pomocí RDF vazeb, které jsou potomky vazeb fedora:hasPart a fedora:isPartOf.
Systém lze libovolně rozšiřovat o nové typy objektů přidáním příslušného objektu cmodel s povinnými datovými streamy DC, BIBLIO_MODS a RELS_EXT.
Pro ukládání obrázkových nebo zdrojových dat slouží stream IMG_FULL. V nejjednosušším případě obsahuje přímo zdrojový obrázek a to buď jako managed nebo referencovaný stream (Externally Referenced Content nebo Redirect Referenced Content).
V tomto případě stream IMG_FULL obsahuje referenci na obrázek generovaný IIP serverem ve vhodném rozlišení a ve vazbách RELS-EXT je uvedena cesta k IIP serveru ve formě:
<tiles-url xmlns="http://www.nsdl.org/ontologies/relationships#">iip_server_poskytujici_dlazdice</tiles>
IMG_FULL obsahuje přímo zdrojový PDF dokument. PDF v sobě obsahuje textovou vrstvu a tedy není potřeba mít další datové streamy TEXT_OCR a ALTO.
Poznámka: Při indexaci se pro každou stránku PDF vytváří samostatný objekt v indexu.
IMG_FULL obsahuje přímo zdrojový ePub dokument. U tohoto formátu se rovněž nepředpokládá přítomnost streamů TEXT_OCR a ALTO.
Od roku 2012 jsou v platnosti nové standardy datových formátů pro digitalizaci, vyvíjené v NK. K dispozici jsou na této adrese: http://www.ndk.cz/standardy-digitalizace
název DIV v NDK | model v K7 | rodičovská vazba v K5 |
---|---|---|
PERIODICAL_TITLE | periodical | - |
PERIODICAL_VOLUME | periodicalvolume | hasVolume |
ISSUE | periodicalitem | hasItem |
ARTICLE | article | hasIntCompPart |
SUPPLEMENT | supplement | hasIntCompPart |
PICTURE | picture | hasIntCompPart |
VOLUME | monograph | - |
CHAPTER | internalpart | hasIntCompPart |