Nástroj pro hromadnou úpravu xml objektů Fedora Repository

30 views
Skip to first unread message

Jan Dobiášovský

unread,
Apr 20, 2017, 12:50:12 PM4/20/17
to Digital Preservation CZ
Dobrý den,
v digitální knihovně NTK jsme zjistili, že cca 800 objektů vytvořených v prvních letech fungování knihovny (tedy ještě před používáním proArcu) , nemá ve svých metadatech úmístěno systémové číslo, což znemožňuje jejich sklizeň přes OAI pro SKC.


Podařilo se nám vyexportovat dané objekty z fedory ve formátu .foxml a hledáme řešení jak upravit (nějaký nástroj, popř. skript v pythonu apod.?) do jednotlivých xml vložit něco na způsob:
<mods:recordInfo>
<mods:recordIdentifier source="CZ PrSTK">#Systémové číslo</mods:recordIdentifier>
</mods:recordInfo>

Následně můžeme dokumenty do krameria jako náhradu původních.



Nesetkali jste se někdy s podobnou situací? Jak jste ji řešili?


Děkuji za případné nápady,

Jan Dobiášovský
Administrátor digitální knihovny
NTK
uuid_0a027780-02b8-11e5-b939-0800200c9a66.xml

melichar

unread,
Apr 22, 2017, 3:04:15 AM4/22/17
to Digital Preservation CZ
Zdravím,
tohle je přesně dotaz, který jsme v tomhle fóru čekali, díky!

Trochu mě překvapilo, že nikdo nereaguje, čekal bych minimalně, že
třeba Vlastik Krejčír nebo Filip K. s něčím podobným zkušenosti mít
budou, byt ne treba přímo s touhle situací. Mě napada jen obecné
https://docs.python.org/2/library/xml.etree.elementtree.html, ale to
asi znáte:-)

Hezký víkend a díky za výkop.

Marek Melichar
> --
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „Digital
> Preservation CZ“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny,
> zašlete e-mail na adresu
> digital-preservat...@googlegroups.com.
> Chcete-li do této skupiny přidat příspěvek, zašlete e-mail na adresu
> digital-pre...@googlegroups.com.
> Navštivte tuto skupinu na
> https://groups.google.com/group/digital-preservation-cz.
> Chcete-li tuto diskusi zobrazit na webu, navštivte
> https://groups.google.com/d/msgid/digital-preservation-cz/1a13def4-f750-412b-9ee1-c12cc68b17a8%40googlegroups.com.
> Další možnosti najdete na https://groups.google.com/d/optout.



--
Marek Melichar

Michal Růžička

unread,
Apr 22, 2017, 7:19:14 AM4/22/17
to Digital Preservation CZ
Zdravím,

já si popravdě nebyl úplně jist, na co vlastně dotaz směřuje, tj. jestli je tam nějaký chyták krom strojové úpravy XML. Na jednoduchou opravdu XML existuje nástrojů obrovské množství od použití XSLT, přes Perl/Python/... skript pro implementaci v čemkoliv jiném.

V příloze přikládám jednoduchý jednoúčelový skript v Perl, který úpravu prování:

$
./add-modsrecord-info.pl
Usage:
    add
-modsrecord-info.pl input_foxml.xml SYSNO

Example:
    add
-modsrecord-info.pl uuid_0a027780-02b8-11e5-b939-0800200c9a66.xml 123456789

Používá moduly
Encode
Encode::Locale
FindBin
Path::Tiny
XML
::LibXML::XPathContext
XML
::LibXML

Případně tedy doinstalovat dle možností daného systému přes
$ cpan Path::Tiny
apod.

Pomůže takto?

--mr

Dne sobota 22. dubna 2017 9:04:15 UTC+2 Marek Melichar napsal(a):
Marek Melichar
add-modsrecord-info.pl
uuid_0a027780-02b8-11e5-b939-0800200c9a66.with-rec-id.xml

Jan Dobiášovský

unread,
Apr 22, 2017, 9:35:42 AM4/22/17
to Digital Preservation CZ
Moc díky za nápady,
šlo mi hlavně o strojovou úpravu když se jedná o větší množství záznamů (řádově stovky).

Nakonec jsme si vyrobili jednorázový skript v pythonu s xml.dom knihovnou. Štěstí že jsme přidávali alespoň linky do katalogu ručně společně s vytvářením, takže jsme mohli většinu automatizovat přes porovnání vyexportovaných záznamů a uuid v krameriovi. Ručně by to byla opravdu fuška :-)

Hezký zbytek víkendu,

Jan Dobiášovský
Reply all
Reply to author
Forward
0 new messages