LIBCAS / ARCLib

ARCLib – komplexní řešení pro dlouhodobou archivaci digitálních (knihovních) sbírek
GNU General Public License v3.0
4 stars 1 forks source link

Návrh na změnu mapování "authorial ID" pro NDK balíčky #79

Closed vjirousek closed 3 years ago

vjirousek commented 4 years ago

Dle domluvy na předchozí schůzce přikládám návrh pro změnu mapování "authorial ID" - namísto stávajícího info.xml by mělo být přebíráno z hlavního METS souboru dle následujících podmínek:

MONOGRAFIE:

odkud: hlavní_mets.xml identifikace monografie dle kořenového elementu:

zdroj pro "authorial ID":

var 1)

**df53c210-d3f7-11e6-a1de-001018b3eb4b** pouze pokud MODSMD_VOLUME není v balíčku obsaženo, pak: var 2) **df53c210-d3f7-11e6-a1de-001018b3eb4b** ### PERIODIKA: odkud: hlavní_mets.xml identifikace periodika dle kořenového elementu: zdroj pro "authorial ID": var 1) **df53c210-d3f7-11e6-a1de-001018b3eb4b** pouze pokud MODSMD_ISSUE není v balíčku obsaženo, pak: var 2) **df53c210-d3f7-11e6-a1de-001018b3eb4b**
vjirousek commented 4 years ago

Doplnil jsem variantu pro samostatně zpracovanou přílohu monografie, vyskytuje se velmi zřídka, ale standard s ní počítá.

yantom commented 4 years ago

Budou implementovány rozšířené možnosti mapování postihující zmíněné případy užití.

yantom commented 3 years ago

@vjirousek Implementováno zavedením podpory Xpath 3.1. Požadovaný xPath jsem vložil do profilu Sip profile 1 https://arclib-test.lib.cas.cz/sip-profiles/3cdc21a2-8b2a-4b56-81a8-3d2ee82ab6b4 a provedl testovací ingest: https://arclib-test.lib.cas.cz/ingest-workflows/ARCLIB_000003175

Xpath:

if (/mets/@TYPE = 'Monograph') then 
    if(/mets/dmdSec[starts-with(@ID,'MODSMD_VOLUME')]//identifier[@type='uuid']/text())
        then /mets/dmdSec[starts-with(@ID,'MODSMD_VOLUME')]//identifier[@type='uuid']/text()
    else
        /mets/dmdSec[starts-with(@ID,'MODSMD_SUPPL')]//identifier[@type='uuid']/text()
else
    if(/mets/@TYPE = 'Periodical') then
        if(/mets/dmdSec[starts-with(@ID,'MODSMD_ISSUE')]//identifier[@type='uuid']/text())
            then /mets/dmdSec[starts-with(@ID,'MODSMD_ISSUE')]//identifier[@type='uuid']/text()
        else
            /mets/dmdSec[starts-with(@ID,'MODSMD_SUPPL')]//identifier[@type='uuid']/text()
    else
        null
jbil7 commented 3 years ago

Dle mých zjištění probíhá již mapování authorial ID v souladu s návrhem. Testoval jsem prozatím pouze na perio (s hlavní úrovní na issue i na suppl), nicméně s ohledem na užitý xpath usuzuji, že bude analogicky funkční i pro mono.

yantom commented 3 years ago

Mělo by tomu tak být, interně jsme testovali všechny případy.