Kerta-ajo: korjaus Asterin toimijanimiin ja sanastoihin

Last modified by Ville Huhtala on 2025/02/04 07:11

Tee nämä muutokset heti Almaan siirtymisen jälkeen.

Kerta-ajo: kenttä 600, 610, 611 "Alma muotoisiksi"

  • lisää kenttiin 600, 610 ja 611 '$2 finaf', jos kentässä '$0 (FI-ASTERI-N)'
  • vaihtaa 2ind arvoksi 4 → 7, jos kentässä  '$0 (FI-ASTERI-N)'
  • poistaa kentistä 600, 610 ja 611 samansisältöiset tuplaosakentät $0 ja $2
6xx asterilinkkautuvaksi
rule "tee 600/610/611 asterilinkkautuvaksi osakenttä 0 perusteella"
priority 18
when
 TRUE
then
 addsubfield "600.2.finaf" if (exists "600.0.(FI-ASTERI-N)*")
 addsubfield "610.2.finaf" if (exists "610.0.(FI-ASTERI-N)*")
 addsubfield "611.2.finaf" if (exists "611.0.(FI-ASTERI-N)*")
 changeSecondIndicator "600" to "7" if (exists "600.0.(FI-ASTERI-N)*")
 changeSecondIndicator "610" to "7" if (exists "610.0.(FI-ASTERI-N)*")
 changeSecondIndicator "611" to "7" if (exists "611.0.(FI-ASTERI-N)*")
end

rule "poista tuplaosakentät 0 ja 2"
priority 15
 when
  (TRUE)
 then
  correctDuplicateSubfields "600" "02"
  correctDuplicateSubfields "610" "02"
  correctDuplicateSubfields "611" "02"

end

Rajoitukset

  • Asterin nimimuoto vaihtunut (esim. lisätty vuosilukuja) sen jälkeen kun tietue viimeksi tallennettu tietokantaan Melindasta
  • Tietue on haettu Voyagerin remote toiminnalla Melindasta → karsii vuosiluvut
  • Normalisointisäännön mukaiset muutokset tehdään, vaikka nimimuoto ei oikeasti voikaan linkkautua Asteriin. Säännön voisi muotoilla tiukemminkin, esimerkiksi lisätä vaatimuksen $d osakentän olemassaolosta.

Esimerkki. Tilanne normalisointisäännön ajon jälkeen. Ensimmäinen nimimuoto linkkautuu automaattisesti oikein. Jälkimmäisestä meni virheellisesti, koska nimimuodosta puuttuu vuosiluku

image2020-5-29_14-51-26.png

Kerta-ajo: kenttä 650, 651 ja 655 "Alma muotoiseksi"

  • lisää loppupiste 650, 651 ja 655 $a osakenttään, jos
    • 650 $0 sisältää http://www.yso.fi/onto/yso/*
    • 651 $0 sisältää http://www.yso.fi/onto/yso/*
    • 655 $0 sisältää http://urn.fi/URN:NBN:fi:au:slm:*
  • korvaa mahdollinen tuplaloppupiste yhdellä loppupisteellä $a osakentässä
  • poista loppupiste jos $a osakenttä päättyy ')'
  • siirrä $2 osakenttä viimeiseksi
  • 655 kenttä: siirrä mahdollinen $5 osakenttä viimeiseksi
  • poista muut kuin ensimmäinen $0 osakenttä
rule "lisää loppupiste 650 & 651 yso ja 655 slm $a osakenttiin, osa 1"
priority 10
    when
         (TRUE)
     then
            suffix "650.a" with ".temporary_suffix_to_replace" if (exists "650.0.http://www.yso.fi/onto/yso/*")
            suffix "651.a" with ".temporary_suffix_to_replace" if (exists "651.0.http://www.yso.fi/onto/yso/*")
            suffix "655.a" with ".temporary_suffix_to_replace" if (exists "655.0.http://urn.fi/URN:NBN:fi:au:slm:*")
end

rule "lisää loppupiste 650 & 651 yso ja 655 slm $a osakenttiin, osa 2"
# korjaa .. -> .
priority 8
    when
        (TRUE)
    then
        replaceContents "650.a.\\\\.\\\\.temporary_suffix_to_replace" with "."
        replaceContents "651.a.\\\\.\\\\.temporary_suffix_to_replace" with "."
        replaceContents "655.a.\\\\.\\\\.temporary_suffix_to_replace" with "."
end

rule "lisää loppupiste 650 & 651 yso ja 655 slm $a osakenttiin, osa 3"
# poista loppupiste 650 & 651 yso ja 655 slm $a osakentästä jos se päättyy ) merkkiin
priority 7
 when
  (TRUE)
 then
  replaceContents "650.a.)\\\\.temporary_suffix_to_replace" with ")"
  replaceContents "651.a.)\\\\.temporary_suffix_to_replace" with ")"
  replaceContents "655.a.)\\\\.temporary_suffix_to_replace" with ")"
end

rule "lisää loppupiste 650 & 651 yso ja 655 slm $a osakenttiin, osa 4"
priority 6
    when
        (TRUE)
    then
        replaceContents "650.a.temporary_suffix_to_replace" with ""
        replaceContents "651.a.temporary_suffix_to_replace" with ""
        replaceContents "655.a.temporary_suffix_to_replace" with ""
end

rule "siirrä $2 osakenttä kentän 650 & 651 ja 655 loppuun"
priority 4
    when
        (TRUE)
    then
        changeSubField "650.2" to "2" if (exists "650.0.http://www.yso.fi/onto/yso/*")
        changeSubField "651.2" to "2" if (exists "651.0.http://www.yso.fi/onto/yso/*")
        changeSubField "655.2" to "2" if (exists "655.0.http://urn.fi/URN:NBN:fi:au:slm:*")
end

rule "siirrä $5 osakenttä kentän 655 loppuun"
priority 3
    when
        (TRUE)
    then
        changeSubField "655.5" to "5" if (exists "655.0.http://urn.fi/URN:NBN:fi:au:slm:*")
end

rule "korjaa 650 & 651 ja 655 tupla-$0-osakentät suomalaisissa auktorisoiduissa muodoissa"
priority 2
    when
        (TRUE)
    then
        replaceContentsExceptFirst "650.0" with "" if (exists "650.0.http://www.yso.fi/onto/yso/*")
        replaceContentsExceptFirst "651.0" with "" if (exists "651.0.http://www.yso.fi/onto/yso/*")
        replaceContentsExceptFirst "655.0" with "" if (exists "655.0.http://urn.fi/URN:NBN:fi:au:slm:*")
end