NLCR / komplexni-validator

Komplexní validátor
http://www.ndk.cz/aktuality/novinky-titulni-strana/seminar-komplexni-validator-v-praxi
Apache License 2.0
8 stars 3 forks source link

PSP_ID_DERIVED_FROM_TITLE_ID - nesprávně nastavené pravidlo #162

Open jbil7 opened 4 months ago

jbil7 commented 4 months ago

Pravidlo, které kontroluje PSP-ID (jímž je myšlen patrně identifikátor v packageid) vůči titleid, je dle DMF nevhodně nastaveno. V momentě, kdy v titleid nenachází urn:nbn ani uuid, ohlásí validátor chybu

nenalezen žádný z identifikátorů UUID ani URN:NBN

Jak stanovuje DMF pro periodika v.2.0 (kapitola 5.1), hodnota v packageid je "název kořenového adresáře balíčku". A název adresáře balíčku "musí vycházet z identifikátoru [...] entity, tj. URN:NBN nebo UUID" (DMF perio 2.0, kapitola 6). Navíc, "[...] za rozhodující [pro pojmenování PSP balíčku] se považuje identifikátor přidělený pro úroveň reprezentující intelektuální entitu." (DMF perio, tamtéž)

Do elementu titleid se zapisují primárně identifikátory reprezentující celý titul, nikoli samostatnou intelektuální entitu. Ačkoli je pro titleid povoleno urn:nbn, jeho výskyt v titleid nelze považovat za samozřejmý. Vyskytne-li se v titleid uuid, bude se vztahovat k celému titulu, nikoli k základní úrovni intelektuální entity. Identifikátory v titleid tedy přinejmenším v případě periodik nevyhovují požadavkům pro název balíčku, tudíž ani pro packageid je nelze považovat za spolehlivý srovnávací materiál.

Naopak, vhodnějšími hodnotami pro porovnání s packageid jsou uuid a urn:nbn základní úrovně IE, tj.:

Pravidlo lze vypnout ve validatorConfig v souboru rules.xml zakomentováním tohoto bloku:

<rule name="PSP_ID_DERIVED_FROM_TITLE_ID">
            <description>PSP-ID by měl být odvozen od některého z identifikátorů titulu, a to typu 'urnnbn' nebo 'uuid'</description>
            <validation functionName="checkStringDerivedFromUrnnbnOrUuid">
                <params>
                    <value name="string" type="STRING">
                        <value-ref name="PSP_ID"/>
                    </value>

                    <value name="identifiers" type="IDENTIFIER_LIST">
                        <value-ref name="INFO_IDENTIFIERS"/>
                    </value>
                </params>
            </validation>
        </rule>

Možná namísto INFO_IDENTIFIERS by stačilo definovat něco jako IE_IDENTIFIERS s použitím výše navržených identifikátorů. Pravidlo jako takové pak může zůstat.

jbil7 commented 1 week ago

Pravidlo je zapnuto pouze v nejnovějších fDMF (počínaje perio 1.9 a mono 2.0). Ve starších fDMF bylo vypnuto v rámci commitu 4630d6c .

Nyní bude pravidlo z výše uvedených důvodů vypnuto i v nejnovějších fDMF a to po dobu jeho chybného fungování, případně po dobu, dokud nebude nahrazeno jiným, správně fungujícím pravidlem.