You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Johdanto

Ysasta Ysoon siirtymän vuoksi tietueiden ylläpito siirtyi MARC21-tietueiden ylläpidosta RDF-muotoisen tietokannan yläpitoon. Koska kirjastojärjestelmät käsittelevät edelleen MARC21-muotoisia tietueita, tarvitaan konversio-ohjelma, joka kääntää SKOS-muotoiset sanastot (YSO, YSO-paikat, SLM) MARCXML-muotoon. Sanastot on julkaistu Finto.fi-palvelussa, jossa ne ovat vapaasti selattavissa.

Finto-skos-to-marc-muunnin

Ohjelman lähdekoodi: https://github.com/NatLibFi/Finto-data/tree/master/tools/finto-skos-to-marc

Muuntaa Finton SKOS-muotoisen sanastotiedoston MARC-muotoiseksi (.mrcx).

Ohjelma tukee tällä hetkellä Yso-, Yso-paikat- ja SLM-sanastojen erikoisominaisuuksia.

Ajaminen ja muunnos
Yksinkertaisimmillaan muunnos tapahtuu esimerkiksi seuraavalla komennolla:
`python3 finto-skos-to-marc.py --vocabulary_code="sanastotunnus" --input="tiedostopolku" --languages="fi" --output="tiedostopolku2" --log_file="tiedostopolku3"`
Tämä luo `tiedostopolku2`-tiedostopolkuun tiedoston, jossa on kompaktissa MARCXML-muodossa ohjelman muuntamat käsitteet. __Osa käsitteistä voi jäädä muuntamatta esimerkiksi puutteellisen tiedon vuoksi__ (näin mm. tapahtuu, jos käsitteellä ei ole muunnettavalla kielellä skos:prefLabel-ominaisuutta) tai esimerkiksi `--keep_deprecated_after="None"`-rajoitteen vuoksi.

Rajoitteita on asetettavissa enemmän `config`-komentoriviparametrillä annettavassa konfiguraatiotiedostossa:

 Komentoriviparametri  Konfiguraatiotiedosto  Oletusarvo ohjelman muuttujissa  Selite 
 --config    konfigointitiedoston sijainti 
 --config_section    asetettava, jos jos konfigurointitiedoston sektion nimi on eri kuin sanastokoodi (esim. "yso-paikat") 
  creatorAgency  FI-NL  003-kenttään kirjoitettava ISIL-tunnus 
 --default_creation_date  defaultCreationDate  1980-01-01  päivämäärä 688-kenttään, jos käsitteessä tätä ei ole määritelty 
 --endpoint  endpoint  ENDPOINT_ADDRESS http://api.dev.finto.fi/sparql  osoite, josta haetaan sanastoon linkittyneitä muita sanastoja 
 --endpoint_graphs  endpointGraphs  ENDPOINTGRAPHS = []  sanasto(t), joita halutaa
 --grouping_classes  groupingClasses  GROUPINGCLASSES  YSOn ryhmäkäsitteet, joita ei tulosteta, jos keepGroupingClasses 
 --input    Konvertoitavan sanaston tiedosto 
 --input_format  inputFormat  oletusarvo turtle, joku RDFLib-kirjaston hyväksymistä https://rdflib.readthedocs.io/en/stable/plugin_parsers.html
 --ignore_other_graph_warnings  ignoreOtherGraphWarning  False  Ei lokiteta mitään, jos toisesta sanastosta ei löydy vastinetta 
 --keep_deprecated_after  keepDeprecatedAfter  ALL  Päivämäärä, jonka jälkeen deprekoidut käsitteet tuotetaan MARC21-muodossa ("all" tai "none", jos ei päivämäärää)
 --keep_grouping_classes  keepGroupingClasses   Tulostetaan sanaston ryhmäkäsitteet, jotka määritelty konfigointitiedoston groupingClasses-kohdassa 
 --keep_modified_after    jos tulostetaan vain muuttuneet käsitteet, annetaan päivämäärä muodossa YYYY-MM-DD 
 --languages    kieli tai kielet (erota pilkuin), jotka halutaan sanastoon 
 --loc_directory  locDirectory   tallennuskansio kongressin kirjaston MARC21-tietueille 
 --log_file    lokitiedoston sijainti 
 --modification_dates    Pythonin pickle-muotoinen tiedosto, jossa ylläpidetään MARC21-tietueiden muutospäivämääriä 
 --multilanguage_vocabulary  multilanguage   Jos kyseessä on monikielinen sanasto ja sanastokoodiin halutaan kielikoodi, arvoksi True 
   NORMALIZATION_FORM = "NFD"  käytetään UTF8-merkkien dekoodauksessa 
 --output    kirjoitettava tiedosto 
  pickleFile   Pythonin pickle-muotoinen tiedosto, johon sanastotiedosto pakataan 1. käyttökerralla 
 --previous_records    sijainti syötetiedostolle, johon uusia käsitteitä verrataan ja . Voi olla sama kuin tulostettava tiedosto 
 --vocabulary_code    Sanastokoodi, joka tulee MARC21:een. Yso-paikoilla "yso" 



Näiden lisäksi ohjelmassa on oletusarvoina ja tkonfiguroitavissa nimiön arvot ja luettelointikoodit (ei käytössä).

__Käsitteiden suodattuminen on tarkoituksenmukaista. Jos sanaston käsitteillä on viittauksia toisiin sanastoihin, tulee näiden graafit saattaa ohjelman tietoon__ `--endpoint` ja `--endpoint_graphs`__-parametreilla.__

Ohjelmaa voidaan ajaa kolmella tavalla:
1. Tuotetaan sanaston kaikki käsitteet
2. Tuotetaan sanaston kaikki käsitteet ja ylläpidetään tiedostoa MARC21-tietueiden muutospäivämääristä
3. Haetaan muutospäivämäärät edellä mainitusta tiedostosta

Tämä edellyttää, että ohjelma ajetaan aina ensin 2. tavalla, jos halutaan muuttuneet käsitteet. 2. tapa edellyttää komentoriviparametrejä --previous_records ja --modification_dates, 3. tapa edellyttää parametrejä --keep_modified_after ja --modification_dates. 2. tavassa syöte- ja tulostiedosto voivat olla sama (esim. edellisen päivän tiedosto, jonka päälle tallennetaan kaikki käsitteet).

Yhdysvaltojen Kongressin kirjaston `LCSH`- ja `LCGF`-viitteitä ei kuitenkaan tarvitse asettaa näin: ne haetaan ja tallennetaan myöhempää käyttöä varten ohjelman toimesta automaattisesti, jos `--loc_directory="tiedostopolku"`-parametri on asetettu (varmistathan, että tällainen tiedostopolun mukainen kansio on olemassa ja siihen on ohjelmalla käyttö- ja kirjoitusoikeus).

Muunnettavan tiedosto on myös mahdollista putkittaa ohjelmalle, ja muunnettu tiedosto sekä lokitiedosto edelleenputkittaa UNIX-käytänteiden mukaisesti. Putkituksella ei kuitenkaan ole mahdollista ulostulostaa useita erikielisiä tiedostoja yhdellä kertaa - `--output`-parametria käytettäessä eri kieliversiot eritellään toisistaan `nimi-kielitarkenne`-erotuksilla.

Katso tarkemmat ohjeet --help-komennolla.

### Konfiguraatiotiedosto
Kaikille (paitsi pakolliselle `vocabulary_code`-komentoriviparametrille) on olemassa oma vastaava konfiguraatiotiedostossa asetettava kohtansa. `config.ini` sisältää perusmuotoisen konfiguraatiotiedoston, jota voi käyttää pohjana.
`[DEFAULT]`-osiossa on määritelty kaikille sanastoille yhteiset ominaisuudet, joita voi yliajaa muissa osioissa. __Komentoriviparametrit kuitenkin AINA yliajavat asetettuina konfiguraatiotiedoston vastaavat määritykset.__ Huomaathan, että kaikkia ominaisuuksia ei voi asettaa komentoriviltä. Listojen ilmaisemisessa välimerkkinä käytetään pilkkua. __Ohjelma käyttää oletusarvoisesti pakollista sanastokoodia vastaavaa osiota__, mutta tämän voi yliajaa asettamalla `config_section`-komentoriviparametrin (tarpeen esimerkiksi yso-paikkojen tapauksessa, jos haluaa pitää samassa konfiguraatiotiedossa kaikki sanastot).


  • No labels