Skip to content

Instantly share code, notes, and snippets.

@antoinecourtin
Last active June 28, 2023 19:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save antoinecourtin/f53278455b85530be109f583f90f1bda to your computer and use it in GitHub Desktop.
Save antoinecourtin/f53278455b85530be109f583f90f1bda to your computer and use it in GitHub Desktop.

Les ensembles dans le flux XML - TMS

Nouveau postulat de départ : On n’inscrit pas en xml qu’une notice peut être soit une notice mère (= ensemble pouvant être soit un fonds, soit un ensemble) soit une notice fille car une même notice peut être à la fois une notice fille et une notice mère. C’est par la présence ou non des éléments xml, que l’on pourrait déduire de sa position (mère ; fille : mère/fille).

Légende :

  • flèche noire : associationid=5 : fonds
  • flèche jaune : associationid=4/10 : liste des type d'ensemble à définir (mais faut-il les définir plus que ca, on avait dit que non)
  • flèche bleue : les "voir aussi" (relationshipid)

Cas simple pour un ensemble de type ensemble (pas fonds)

graph TB;
   A(Notice A - Ensemble de type recueil)-->|associationid_4/10| B(Notice B - feuille 1)
   A-->|associationid_4/10|C(Notice C - feuille 2)
   A-->|associationid_4/10|D(Notice D - feuille 3)

linkStyle 0,1,2 stroke:#ff3,stroke-width:4px,color:black;    
<!-- XML pour la notice A -->
<relations>
    <hierarchical-relations>
        <narrowers-record-relations> 
            <narrower-record num-fiche="$objectid" num-ordre="$sortnumber">notice B</narrower-record> 
            <narrower-record num-fiche="$objectid" num-ordre="$sortnumber">notice C</narrower-record> 
	    <narrower-record num-fiche="$objectid" num-ordre="$sortnumber">notice D</narrower-record> 
        </narrowers-record-relations> 
    </hierarchical-relations>
</relations>

le $sortnumber est le n° d'inventaire qui est utilisé pour le tri. mais attention, il n'est pas numérique mais alpha numérique RF 2021 4 1 A confirmer car peut-être utiliser plutôt display-order

<!-- XML pour la notice B, C et D-->
<relations>
    <hierarchical-relations>
        <broaders-record-relations> 
            <broader-record num-fiche="$objectid" type-ensemble="associationlabel">Notice A</broader-record>
        </broaders-record-relations>
    </hierarchical-relations>
</relations>

Pour construire les valeurs des éléments xml de type "Notice A', il faut prendre $alphasort + ":" + $titrenum-order=1 (de la notice cible) + "(" + "$objectnumber" +")"

Valeur de l'élément xml, la valeur de l'élément xml de la notice fille. L'ordre des notices filles doit respecter l'ordre intellectuel des notices filles qui se trouve dans sortumber et devra donc alimenter l'attribut num-ordre

Cas complexe pour un ensemble de type fonds avec un niveau hiérarchique intermédiaire

graph TB;
    A(Notice A - Fonds toto)-->|associationid_5| B(Notice B)
    A-->|associationid_5|C(Notice C - sous-fonds)
    C-->|associationid_10/4|D(Notice D - receuil)
    D-->|associationid_10/4|H(Notice H)
    C-->|associationid_10/4|E(Notice E)
    D-->|associationid_10/4|I(Notice I)
    D-->|associationid_10/4|J(Notice J)
    C-->|associationidVoiraussi|F[Notice F]
    C-->|associationidVoiraussi|G[Notice G]
    D-->|associationidVoiraussi|K[Notice k]

linkStyle 2,3,4,5,6 stroke:#ff3,stroke-width:4px,color:black;    
linkStyle 7,8,9 stroke:blue,stroke-width:4px,color:black;

Exemple de bloc xml pour la notice C du graphe

<relations>
    <hierarchical-relations>
        <broaders-record-relations> 
            <broader-record num-fiche="objectid" type-ensemble="relationshipid">Notice A</broader-record>
        </broaders-record-relations>
        <narrowers-record-relations> 
            <narrower-record  num-fiche="objectid" num-ordre="">notice D</narrower-record > 
            <narrower-record  num-fiche="objectid" num-ordre="">notice E</narrower-record > 
        </narrowers-record-relations> 
    </hierarchical-relations>
    <see-also-records>
        <see-also-record num-fiche="$objectid" type-relation="$relationshipid">notice F</see-also-record>
        <see-also-record num-fiche="$objectid" type-relation="$relationshipid">notice G</see-also-record> 
    </see-also-records>
</relations>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment