4. Sorteren van ISAD(G) records

4.1. Inleiding

Er zijn diverse plaatsen waar ISAD(G) worden gesorteerd ten opzicht van elkaar.

In Brocade zijn 2 contexten van essentieel belang:

  • sorteren van records binnen de ISAD(G) hiërarchie

  • sorteren van records binnen een archieven overzicht

Deze 2 situaties zijn essentieel verschillend:

In een ISAD(G) hiërarchie zijn de records gerelateerd door middel van de ouder beschrijving. Door middel van een konsekwente naamgeving kan de invoerder de basis liggen van een goede sortering.

In een archieven overzicht is dit helemaal niet zo duidelijk: de overzichten hebben immers geen directe band met de ISAD(G) beschrijving. Daar komt nog bij dat - in tegenstelling tot de ISAD(G) hiërarchie - een ISAD(G) beschrijving kan worden geplaatst binnen multiple overzichten.

4.2. Data-model

In het Brocade data-model zijn er, per beschrijving, twee elementen die kunnen worden gebruikt om het record te sorteren:

  • de titel

  • het sorteerveld

Zowel de titel als het sorteerveld mogen authority codes bevatten. Deze authority codes worden vertaald volgens een schema beschreven in de meta informatie van het ISAD-systeem.

Het vertaal-systeem gaat achtereenvolgens de meta informatie isaarsort, isaartrepr, isaarrepr gebruiken om de authority codes te vertalen. Van zodra er een meta waarde ingevuld is, stopt dit systeem.

Tenslotte worden ook kleine letters omgevormd naar kapitalen.

4.3. Sorteren binnen de hiërarchie

Het ganse sorteermechanisme wordt herleid tot een getal en dit getal wordt ook opgeslagen in de databank.

macro getISADRecordId($array, $isadloi):
    '''
    $synopsis: Haal de identificatiegegevens op van een ISAD record
    $array: Array met het resultaat
            Array("trn"): transactiecode van de laatste wijziging
            Array("ref"): complete referentie
            Array("parent"): ISAD loi van de parent (kan leeg zijn)
            Array("isaar"): ISAAR loi bij deze record (kan leeg zijn)
            Array("scheme"): schema horend bij deze record
            Array("ty"): type
            Array("ti"): titel
            Array("nsort"): sorteernummer
            Array("sort"): sorteerstring
            Array("tic"): title is ISAAR code ?  0 | 1
            Array("tree"): indien de parent leeg is staan hier de overview codes (isadview !)
                           in subscript.
    $isadloi: ISAD loi
    $example: m4_getISADRecordId($array, $isadloi)
    '''
    «d %Gid^gbisd(.$array,$isadloi)»

Het veld sortnr bevat dit getal.

Dit getal komt tot stand in 2 fasen:

  • Eerst wordt een sorteerstring berekend

  • Tenslotte wordt sortnr berekend

De sorteerstring wordt berekend op basis van de titel (=`ti`) en het sorteerveld (=`sort`).

De titel wordt steeds bepaald door de invoerder. Deze kan in het invulformulier ook een sorteerveld ingeven.

Bestaat er een sorteerveld, dan is dit meteen ook de sorteerstring en bepaalt het ook de plaatsing van het ISAD(G) record binnen zijn ouder. Het titelveld speelt geen enkel rol.

Caution

Dit sorteerveld wordt het best bij grote uitzondering gehanteerd. Eens ingevuld, kan de werking slecht worden ongedaan gemaakt door het manueel te wijzigen, record per record.

Is er geen sorteerveld ingevuld in het invulformulier dan bepaalt de titel de sorteerstring.

Hier zijn er echter een paar interessante mogelijkheden op basis van het archiefschema waartoe de record behoort (zie ook: Archieven - Archiefbeschrijvingen - Beheersfuncties - Archiefschema's [link]). In dit archiefschema kan men in het veld sortregexp patronen en prefixen definieren. De software zet de titel af tegen deze patronen en - indien de titel het patroon volgt - dan wordt de prefix voorgevoegd bij de titel.

Voorbeeld:

Met een (getransformeerde titel) van de gedaante:

WERKSTUKKEN VAN CLAUS, HUGO

en in het veld sortregexp bij het schema:

WERKSTUK*:00100
BRIEFWISSELING*:00200
VERZAMELING*:00300

Dan wordt de sorteerstring:

00100WERKSTUKKEN VAN CLAUS, HUGO

Op deze wijze kan het sorteerveld op een praktische wijze worden vervangen.

Attention

Dit systeem kan enkel werken indien de titel op een getructureerde wijze wordt gespecificeerd.

Het sorteernummer

De sorteerstring is voldoende om de sortering goed te kunnen uitvoeren. Wegens technische redenen en redenen uit performantie wordt deze string nog omgevormd naar een getal. Deze omvorming speelt zich af binnen de hiërarchie zelf en kan niet buiten deze hiërarchie worden gebruikt!

Het sorteernummer wordt (her)berekend van zodra titel of sorteerveld wijzigt.

4.3.1. Sorteren binnen de hiërarchie - verfijning release 4.30

Elke isad-beschrijving krijgt bij registratie een sorteringsnummer die wordt berekend a.d.h.v.

  • De titel in het veld "Titel" (1)

  • Een "string/nummer" in het veld "Sorteerwaarde" (3)

Eén nuancering is hierbij mogelijk (2): De aanwezigheid van bepaalde patronen in de titel, kan leiden tot het voorafgaan van een sorteercode aan de titel (vooraleer dat het sorteringsnummer wordt berekend) waardoor binnen een lijst van isads met dezelfde parent, een extra 'inhoudelijke' sortering mogelijk is)

4.3.1.1. Voorbeeld

  • BRIEVEN VAN*:01800 ==> Isads met patroon "BRIEVEN VAN*" in de titel krijgen sorteerwaarde 01800 aan het begin van de titel

  • BRIEVEN AAN*:01900 ==> Isads met patroon "BRIEVEN AAN*" in de titel krijgen sorteerwaarde 01800 aan het begin van de titel

Hierdoor worden in eerste instantie de isads met "brieven van" opgelijst en vervolgens die met "brieven aan".

4.3.1.2. Volgorde berekening (3) - (2) - (1)

Deze opzet werkt zolang een instelling op een uniforme manier isads invoert. Deze opzet schiet te kort wanneer een instelling afwisselend invoert met behulp met ar-loi's, dan wel karakterrijen in titel/sorteerwaarde-veld

4.3.1.3. Probleemstelling Letterenhuis

Kinderen van "isad:lh:136453" hebben in sommige gevallen de ar-loi in de titel en in andere gewoon de naam van de archiefvormer. Dit heeft invloed op het sorteringsnummer dat berekend wordt. (in sommige gevallen sortering niet naar wens).

Daarom werd de software zodanig aangepast dat ar-loi's in titel en sorteerwaarde omgezet worden in een karakterstring naar keuze (voor de berekening van het sorteringsnummer) zodat het verschil in invoer (wel/geen ar-loi) geen invloed meer heeft op de sortering:

  • Nieuwe metadata t.h.v. isadsysteem : "Sorteervorm voor authoritycodes" : Geeft aan met behulp van welke metadata een ar-loi moet omgezet worden.

  • Nieuwe metadata t.h.v. het authority-type : "Sorteervormen" waar aangegeven wordt hoe een ar-loi wordt omgezet in een karakterrij in functie van de sortering (lees: voor berekening van het sorteringsnummer)

Deze werkwijze laat toe dat instellingen in de toekomst de sortering van kinderen met dezelfde parent tav elkaar volledig zelf in de hand hebben.

4.4. Sorteren binnen overzichten

Enkel de inhoud van het titelveld is bepalend voor de sortering. Het sorteerveld speelt geen enkele rol bij de plaatsing van een ISAD(G) record in een overzicht.

Deze titel kan echter worden getransformeerd zodat zijn beschrijving toch naar een betere plaats kan worden verschoven.

In de meta informatie van een overzicht (zie ook: Archieven - Archiefbeschrijvingen - Beheersfuncties - Archiefoverzichten [link]) kan in het veld trans een aantal transformatie op de titel worden gespecificeerd.

Voorbeeld:

*:kcpersoon:init*/ARCHIEFSTUKKEN*/ARCHIEFSTUKKEN/ARCHIEF/1
*:kcpersoon:init*/COLLECTIE*/COLLECTIE/ARCHIEF/1
*:kcpersoon:init*/ARCHIVALIA*/ARCHIVALIA/ARCHIEF/1
*:kcvereniging:init*/ARCHIEFSTUKKEN*/ARCHIEFSTUKKEN/ARCHIEF/1
*:kcvereniging:init*/COLLECTIE*/COLLECTIE/ARCHIEF/1

Elke regel bestaat uit 5 velden (gescheiden door '/'). Regels kunnen worden toegepast of worden verworpen.

  • Het eerste veld is een patroon op het tekstfragment (hoofdding).

  • Het tweede veld is een patroon op de titel zelf.

  • Het derde veld wordt gezocht in de titel en (eventueel) vervangen door het vierde veld.

  • Het 5e veld is '0' of '1': indien '1', dan wordt het transformatie proces gestopt na een succesvolle transformatie.

Stel dat, in het voorbeeld, een titel:

COLLECTIE VAN CLAUS, HUGO

wordt gebruikt onder het hoofdding:

kc:kcpersoon:initc

De eerste regel is niet van toepassing: het hoofdding komt overeen maar de titel niet.

De tweede regel is wel van toepassing:

  • het hoofdding beantwoordt aan het patroon *:kcpersoon:init*

  • de titel beantwoordt aan het patroon COLLECTIE*

  • de transformatie doet een effectieve wijziging van COLLECTIE VAN CLAUS, HUGO naar `ARCHIEF VAN CLAUS, HUGO

De andere regels zijn niet meer van toepassing: het vijfde veld is immers 1

4.5. Software

Zie: Archieven - Archiefbeschrijvingen - Groepsbewerkingen - Sorteren van ISAD(G) beschrijvingen [link]

Sorteren van ISAD(G) beschrijvingen (Interne code: mt:up:isadsort)

Dit proces gaat alle ISAD(G) beschrijvingen van een gegeven systeem hersorteren. Deze actie heeft betrekking op twee domeinen:

  • sorteren binnen de ISAD(G) hiërarchie (sorteren bij een zelfde ouder)

  • sorteren binnen het geassocieerde archievenoverzicht

Parameters

Archiefsysteem (Interne code: mt:pup:isadsys)

Het archiefsysteem staat voor een collectie van archiefbeschrijvingen die bij elkaar horen.

Indien je in de lijst met mogelijkheden niet het gewenste archiefsysteem terugvindt, dan betekent dit dat je geen toegang heeft tot dat systeem.

Eventueel kan de systeembeheerder je toegang verschaffen.