LOTERRE - Linked Open TERminology REsources

Que permet le service « Transformer » ?

Le service « Transformer » permet de générer une terminologie en format SKOS-XML ou de convertir une terminologie initialement en format SKOS-XML dans un autre format.

Les opérations proposées par ce service peuvent être regroupées en trois types : correction, enrichissement et conversion.

Correction

Ces opérations sont en particulier destinées à corriger les anomalies préalablement détectées par le service « Contrôler ».

Suppression des doublons de termes

Le service « Supprimer les doublons au niveau des termes d’un fichier SKOS/RDF-XML » traite des fichiers contenant des éléments « skos:Concept » ou  « rdf:Description[rdf:type[@rdf:resource=’http://www.w3.org/2004/02/skos/core#Concept’]] ».

Au niveau de chaque concept, ce service fonctionne de la manière suivante :

  • Tous les libellés préférentiels sont gardés ;
  • Les libellés alternatifs (synonymes) d’une même langue sont dédoublonnés entre eux et par rapport au libellé préférentiel :
    • si un même terme apparaît plusieurs fois comme libellé alternatif d’une même langue, une seule occurrence est gardée ;
    • si un même terme apparaît à la fois comme libellé alternatif et libellé préférentiel d’une même langue, seul le libellé préférentiel est gardé.
  • Les libellés cachés d’une même langue sont dédoublonnés entre eux, par rapport au libellé préférentiel et par rapport aux libellés alternatifs :
    • si un même terme apparaît plusieurs fois comme libellé caché d’une même langue, une seule occurrence est gardée ;
    • si un même terme apparaît à la fois comme libellé caché et libellé préférentiel d’une même langue, seul le libellé préférentiel est gardé ;
    • si un même terme apparaît à la fois comme libellé caché et libellé alternatif d’une même langue, seul le libellé alternatif est gardé.

A l’issue de ce traitement, il convient de contrôler à nouveau le fichier en utilisant le service « Contrôler un fichier SKOS/RDF-XML au niveau des concepts », pour s’assurer qu’il ne subsiste plus de doublons.

Correction de la symétrie des concepts associés

Si un concept A est associé avec un concept B via la propriété « skos:related », le concept B doit lui aussi être associé au concept A via cette même propriété, car la relation est symétrique.

Le service »Corriger les anomalies de symétrie des concepts associés dans un fichier SKOS/RDF-XML » traite des fichiers contenant des éléments « skos:Concept » ou  « rdf:Description[rdf:type[@rdf:resource=’http://www.w3.org/2004/02/skos/core#Concept’]] ».
Il insère dans le fichier SKOS la propriété « skos:related » manquante, lorsque la condition de symétrie définie ci-dessus n’est pas vérifiée.

A noter que ce traitement ne s’applique pas à d’éventuelles sous-propriétés de la relation « skos:related » (voir détails dans ce document).

Insertion de concepts spécifiques

La relation hiérarchique entre un concept A et un concept B est exprimée à l’aide de la propriété « skos:broader » et la présence au niveau du concept B d’une relation « skos:narrower » (qui en est la relation inverse) n’est pas obligatoire car elle est inférée de la relation « skos:broader ».
Cependant, le bon fonctionnement de certaines applications (comme Skosmos) nécessite la présence des deux relations.

Le service « Insérer les concepts spécifiques dans un fichier SKOS/RDF-XML valide » traite des fichiers contenant des éléments « skos:Concept » ou  « rdf:Description[rdf:type[@rdf:resource=’http://www.w3.org/2004/02/skos/core#Concept’]] ».
Il insère dans le fichier SKOS, au niveau de chaque concept générique, autant de propriétés « skos:narrower » que de concepts spécifiques de ce concept.

Insertion de collections spécifiques

La relation hiérarchique entre une collection A et une collection B est exprimée à l’aide de la propriété « isothes:superGroup » et la présence au niveau de la collection B d’une relation « isothes:subGroup » (qui en est la relation inverse) n’est pas obligatoire car elle est inférée de la relation « isothes:superGroup ».
Cependant, le bon fonctionnement de certaines applications (comme Skosmos) nécessite la présence des deux relations.

Le service « Insérer les collections spécifiques dans un fichier SKOS/RDF-XML valide » traite les fichiers contenant des « skos:Collection » ou des « rdf:Description[rdf:type[@rdf:resource=’http://www.w3.org/2004/02/skos/core#Collection’]] » ou des « rdf:Description[rdf:type[@rdf:resource=’http://purl.org/iso25964/skos-thes#ConceptGroup’]] ».

Il insère au niveau de la super-collection autant de propriétés « isothes:subGroup » que de collections spécifiques à cette collection.

Enrichissement

Ajout d’un schéma de concept et d’une licence

Le service « Insérer un bloc ‘ConceptScheme’ dans un fichier SKOS/RDF-XML » traite les fichiers contenant des « skos:Concept » ou des « rdf:Description[rdf:type[@rdf:resource=’http://www.w3.org/2004/02/skos/core#Concept’]] ».

Il insère deux blocs au début d’un fichier SKOS/RDF-XML :

– Un bloc « cc:License » avec par défaut la valeur de licence « Creative Commons CC-BY 4.0 ». Il convient de modifier ce bloc si la ressource est diffusée sous une autre licence.

– Un bloc « skos:ConceptScheme » ou « rdf:Description[rdf:type[@rdf:resource=’http://www.w3.org/2004/02/skos/core#ConceptScheme’]] » avec :

  • un URI dérivé des identifiants des concepts ;
  • des propriétés pour les métadonnées à compléter/modifier par l’utilisateur au niveau du fichier de sortie :
    • les titres français anglais et espagnol (dc:title),
    • les descriptions française, anglaise et espagnole (dc:description),
    • les sujets français, anglais et espagnol (dc:subject),
    • le nom du créateur de la ressource (dc:creator),
    • le type de licence (cc:license),
    • les noms français, anglais et espagnol de l’organisme auquel la ressource doit être attribuée (cc:attributionName),
    • le site web de l’organisme / institution (cc:attributionURL),
    • les top-concepts (skos:hasTopConcept) si la ressource est structurée,
    • les langues de la ressource calculées à partir des codes langues utilisés pour les libellés préférentiels des concepts (dcterms:language avec attribut lexvo / codes ISO 639-3),
    • la date de création de la ressource (dcterms:created),
    • la date de dernière modification (dcterms:modified),
    • la version de la ressource (owl:versionInfo).

Après génération des champs, leur contenu textuel doit être complété et validé par l’utilisateur.

Insertion hasTopConcept

Le service « Insérer les propriétés « hasTopConcept » dans un fichier SKOS/RDF-XML valide » traite des fichiers contenant des « skos:ConceptScheme » ou des « rdf:Description[rdf:type[@rdf:resource=’http://www.w3.org/2004/02/skos/core#ConceptScheme’]] ».

Il insère une propriété « skos:hasTopConcept » au niveau du bloc « ConceptScheme » pour chaque concept qui n’a pas de propriété « skos:broader ».

n.b. : Ne pas utiliser ce service pour les ressources non structurées ou faiblement structurées.

Insertion topConceptOf

Le service « Insérer les propriétés « topConceptOf » dans un fichier SKOS/RDF-XML valide » traite les fichiers contenant des « skos:Concept » ou des « rdf:Description[rdf:type[@rdf:resource=’http://www.w3.org/2004/02/skos/core#Concept’]] ».

Il insère une propriété « skos:topConceptOf » au niveau de chaque concept qui n’a pas de propriété « skos:broader ».

n.b. : ne pas utiliser ce service pour les ressources non structurées ou faiblement structurées.

Attribution d’ARK

Ce service permet de remplacer les identifiants (URI) d’un fichier SKOS/RDF-XML par des identifiants ARK construits selon les préconisations de la California Digital Library (CDL).

Un identifiant ARK a la syntaxe suivante :

  • Le NMA (Name Adressing Authority ou Autorité d’adressage), son rôle est de rendre l’URL cliquable dans un navigateur web.
  • L’identifiant ARK proprement dit qui se compose de :
    • le label « ark:/ »,
    • un code numérique qui correspond au NAAN (Name Assigning Authority Number ou Autorité d’assignement de nom) attribué sur demande par la CDL à des organismes producteurs de ressources terminologiques.

Le service  « Attribuer des identifiants ARK à un fichier SKOS/RDF-XML valide » traite des fichiers contenant des « skos:Concept » ou des « rdf:Description[rdf:type[@rdf:resource=’http://www.w3.org/2004/02/skos/core#Concept’]] ».

La transformation est effectuée en deux temps :

1- Remplacement de l’URI de la ressource (au niveau du schéma de concepts) par l’URI générique suivant : http://mon_site.fr/ark:/NAAN/ABC
L’ancien URI est mis dans une balise « dc:identifier ».

Au niveau des concepts, une suite alphanumérique de 8 caractères suivie d’un tiret puis d’un caractère de contrôle (check sum) vient compléter ce préfixe et constituer un identifiant ARK unique pour chaque concept de la ressource.

Préfixe Identifiant unique
http://mon_site.fr/ark:/NAAN/ABC -CGT6ZZBQ-F

2- Recalcul des URI pour :

  • chacune des relations « skos:broader », « skos:narrower », « skos:related »
  • les éventuelles propriétés « skosxl:prefLabel », « skosxl:altLabel », « skosxl:hiddenLabel »
  • les membres des éventuelles collections
  • les éventuels éléments « skosxl:Label »

Pour avoir des identifiants ARK conformes aux recommandations de la CDL (voir détails ici), l’URI générique doit être modifié comme suit :

  • Remplacer la partie « autorité d’adressage » http://mon_site.fr par l’URL du site
  • Garder le type d’identifiant /ark:/
  • Remplacer NAAN par le NAAN de l’organisme d’appartenance de la ressource SKOS/RDF-XML
  • Remplacer ABC par un code alphanumérique court correspondant à la ressource elle-même

Voici un exemple réel : http://data.loterre.fr/ark:/67375/1WB

A noter qu’en l’absence de NAAN, l’URI ne peut pas être considéré comme un « URI ARK » mais peut néanmoins être utilisé sans la partie ark:/NAAN/, la dernière partie étant un identifiant unique.

Conversion

Différents modules de conversion sont proposés par Loterre :

Ce service permet de générer un fichier SKOS-XML à partir d’une feuille ce calcul (Excel, OpenOffice, etc.) sauvegardée en CSV.

Deux variantes de ce service sont proposées par Loterre, selon que le séparateur de champs présent dans le fichier CSV est un point-virgule ou une virgule :

  • Transformer un fichier CSV dont le séparateur est un point-virgule en SKOS/RDF-XML
  • Transformer un fichier CSV dont le séparateur est une virgule en SKOS/RDF-XML

n.b. : dans le cas d’un fichier CSV dont le séparateur est un point-virgule, utiliser les guillemets doubles anglais ( » / quote) comme délimiteur de texte pour les champs susceptibles de contenir le point-virgule comme ponctuation. Mettre les quotes au début et à la fin du texte pour que le point-virgule ne soit pas considéré comme un séparateur de champ. Si le texte contient lui-même des quotes, elles doivent être doublées.

La feuille de calcul initiale doit respecter un formalisme prédéfini :

  • utiliser le séparateur «§§» pour les champs multi-valués (exemple : hormone§§médicament)
  • utiliser des noms d’étiquettes du tableau suivant :
Donnée terminologique Etiquette à utiliser
xx = code ISO de la langue (*)
Commentaire
Préférentiel prefLabel_xx Un « prefLabel_fr » est attendu
Synonyme altLabel_xx
Terme caché hiddenLabel_xx
Définition definition_xx
Note note_xx
Note d’application scopeNote_xx
Note éditoriale editorialNote_xx
Note historique historyNote_xx
Note de changement changeNote_xx
Exemple example_xx
Terme générique broader_xx Un « broader_fr » est attendu
Terme associé related_xx Un « related_fr » est attendu
Groupe (collection) group_xx Un « group_fr » est attendu
Alignement exact exactMatch
Alignement proche closeMatch
Alignement plus large broadMatch
Alignement plus restreint narrowMatch
Alignement associé relatedMatch

(*) Remplacer « xx » par le code langue ISO sur 2 caractères ; exemple « prefLabel_fr » pour le préférentiel français. Voir la liste des codes ISO 639-1

Les données sont transformées de la manière suivante :

  • Un fichier SKOS/RDF-XML est créé pour contenir l’ensemble de la ressource terminologique.
  • Chaque ligne hormis la première ligne devient un « skos:Concept », si un identifiant est présent, il est attribué au concept ; dans le cas contraire, un URI provisoire lui est affecté dans l’attribut « rdf:about ».
  • Les étiquettes de la première ligne sont transformées en leur équivalent SKOS, par exemple « prefLabel_fr » devient « skos:prefLabel » avec un attribut « xml:lang= »fr » ».
  • Le contenu de chaque cellule est versé dans la propriété SKOS ad hoc et si le contenu est multi-valué, il est scindé en autant de propriétés que de valeurs séparées par le séparateur «§§».
  • Les relations TA et TG sont traitées en deux temps : dans un premier temps une propriété « skos:related » ou « skos:broader » est générée pour chaque TA ou TG puis dans un deuxième temps, c’est l’URI du concept correspondant aux termes en question qui est mis dans l’attribut « rdf:resource ».
  • Si le fichier comporte des groupes, une « skos:Collection » est créée pour chaque groupe. Veiller à traduire les groupes au moins en anglais.

De plus, la transformation insère également deux blocs au début du fichier SKOS/RDF-XML :

  • Un bloc « cc:License » avec par défaut la licence Creative Commons CC-BY 4.0 qu’il convient de modifier si la ressource est diffusée sous une autre licence
  • Un bloc « skos:ConceptScheme » avec :
    • un URI dérivé des identifiants des concepts ;
    • des propriétés pour les métadonnées à compléter/modifier par l’utilisateur au niveau du fichier de sortie :
    • les titres français anglais et espagnol (dc:title),
    • les descriptions française, anglaise et espagnole (dc:description),
    • les sujets français, anglais et espagnol (dc:subject),
    • le nom du créateur de la ressource (dc:creator),
    • le type de licence (cc:license),
    • les noms français, anglais et espagnol de l’organisme auquel la ressource doit être attribuée (cc:attributionName),
    • le site web de l’organisme / institution (cc:attributionURL),
    • les top-concepts (skos:hasTopConcept) si la ressource est structurée,
    • les langues de la ressource calculées à partir des codes langues utilisés pour les libellés préférentiels des concepts (dcterms:language avec attribut lexvo / codes ISO 639-3),
    • la date de création de la ressource (dcterms:created),
    • la date de dernière modification (dcterms:modified),
    • la version de la ressource (owl:versionInfo).

Le contenu textuel de ces champs devra être complété et validé par l’utilisateur.

Si les concepts n’ont pas d’identifiants, l’URI par défaut de la ressource est « http://www.monsite/vocabs/ABC ». C’est également la racine de l’URI des concepts, des relations et des éventuelles collections. Elle doit être remplacée comme suit :

  • Remplacer « http://www.monsite/ » par la bonne URL.
  • Garder « /vocabs/ ».
  • Remplacer « ABC » par un code alphanumérique court correspondant à la ressource elle-même.

Au niveau des concepts, l’URI est une concaténation de l’URI de la ressource avec un identifiant unique ; au niveau des collections, l’URI est une concaténation de l’URI de la ressource avec le nom du groupe en remplaçant les espaces par des « _ ».
Pour passer à des identifiants ARK, utiliser la transformation « Attribuer des identifiants ARK à un fichier SKOS/RDF-XML valide ».

Transformer un fichier SKOS-XML en CSV

Ce service permet de générer un fichier CSV à partir d’un fichier SKOS/RDF-XML valide contenant des éléments « skos:Concept » ou « rdf:Description[rdf:type[@rdf:resource=’http://www.w3.org/2004/02/skos/core#Concept’]] ».
Deux variantes en sont proposées par Loterre, selon la nature du séparateur de champs souhaités dans le fichier CSV résultant :

  • Transformer un fichier SKOS/RDF-XML en fichier CSV dont le séparateur est une virgule
  • Transformer un fichier SKOS/RDF-XML en fichier CSV dont le séparateur est un point-virgule

Le fichier produit peut être importé dans un tableur (Excel, LibreOffice, etc.) pour y être modifié (voir plus loin la procédure d’import dans Excel).

Les données sont transformées de la manière suivante :

Une première ligne « en-têtes de colonnes » est créée à partir des éléments (propriétés skos ou autres) utilisés pour décrire les différents concepts du fichier SKOS/RDF-XML :

  • Une étiquette « ID » est créée pour les identifiants des concepts,
  • Les propriétés ayant un attribut « xml:lang » sont listées en accolant le nom de l’élément (sans espace de nom) avec le code langue (par exemple, « skos:prefLabel/@xml:lang= »fr » » donne l’étiquette « prefLabel_fr »),
  • En ce qui concerne les propriétés qui ont un attribut autre que « xml:lang »:
    • celles qui correspondent aux relations sémantiques (« skos:broader », « skos:narrower » et « skos:related ») sont traduites en « broader_fr », « narrower_fr » et « related_fr »
    • les autres (propriétés d’alignement, etc.) sont sorties avec le nom de l’élément seulement (sans espace de nom, par exemple, « exactMatch » pour « skos:exactMatch »)
  • Les propriétés qui n’ont pas d’attribut sont sorties avec le nom de l’élément seulement (sans espace de nom),
  • Si le fichier contient des collections, une étiquette « group_fr » est créée. Cette étiquette peut s’avérer redondante si les concepts contiennent des propriétés reflétant leur appartenance à des groupes (domaine, microthésaurus, etc.).

Ensuite, une ligne est générée pour chaque concept du fichier :

  • le contenu de l’attribut « rdf:about » est mis dans la colonne « ID »,
  • le contenu des éléments textuels (termes, définitions, notes, etc.) est versé dans la colonne correspondant à l’élément et au code langue de cet élément,
  • les relations hiérarchiques et associatives (liens) sont traduites en les remplaçant par les termes préférentiels français correspondants,
  • le contenu des autres éléments est sorti tel quel,
  • si le concept appartient à une collection, le nom en français de la collection est mis dans la colonne « group_fr ».

A noter que :

  • les contenus des différents champs sont mis entre quotes (guillements anglais) pour éviter les problèmes de séparation quand ces contenus contiennent la virgule comme élément de ponctuation,
  • si le contenu d’un champ contient des quotes, elles sont doublées pour les protéger,
  • les contenus des champs à occurrences multiples (par exemple, « skos:altLabel ») sont versés dans la même « cellule » mais séparés par le séparateur «§§».

Pour importer le fichier dans Excel :

  • Créer un nouveau fichier dans Excel (« Fichier » / « Nouveau »).
  • Cliquer sur Menu « Données », choisir « Fichier texte » puis choisir le fichier à importer avec l’explorateur de fichiers.
  • Importer le fichier (bouton « Importer »).
  • Au niveau de l' »Assistant Importation de texte » :
    • cocher la case « Délimité »,
    • dans la liste déroulante de menu « Origine du fichier », choisir « 65001 : Unicode (UTF-8) »
  • Cliquer sur « Suivant » :
    • Au niveau de la colonne « Séparateurs », cocher la case « Virgule »,
    • Garder les quotes (« ) au niveau du menu « Identificateur de texte »,
    • Vérifier le rendu au niveau de l’Aperçu des données,
  • Cliquer sur « Suivant » puis sur « Terminer » et « OK ».

Une fois modifié dans Excel, le fichier peut à nouveau être sauvegardé en CSV puis transformé en SKOS en utilisant le service « Transformer un fichier CSV dont le séparateur est un point-virgule en SKOS/RDF-XML » ou « Transformer un fichier CSV dont le séparateur est une virgule en SKOS/RDF-XML » en fonction du séparateur de champs appliqué au moment de la sauvegarde.

Transformer un fichier SKOS-XML en HTML

Ce service permet de générer un fichier HTML (version française) à partir d’un fichier SKOS valide. Il traite des fichiers contenant des « skos:Concept » ou des « rdf:Description » de type « Concept ».
Deux variantes en sont proposées par Loterre, selon la version linguistique choisie :

  • Convertir un fichier SKOS/RDF-XML valide en fichier html-version française
  • Convertir un fichier SKOS/RDF-XML valide en fichier html-version anglaise

Les entrées terminologiques sont présentées dans l’ordre alphabétique du préférentiel (français ou anglais)  :

  • les termes (préférentiel et synonymes) dans la langue choisie
  • les définitions et notes dans la langue choisie
  • les relations (termes génériques, associés et spécifiques)
  • les termes préférentiels dans les autres langues
  • les groupes éventuels d’appartenance
  • les alignements
  • les références bibliographiques éventuelles
  • la (les) source(s) du concept.

La richesse des informations affichées dépendra du contenu et de la structuration du fichier SKOS de départ.

Transformer un fichier SKOS-XML en PDF

Cette transformation permet de générer un fichier PDF à partir d’un fichier SKOS valide.
Deux variantes en sont proposées par Loterre, selon la version linguistique choisie pour la ressource  :

  • Transformer un fichier SKOS/RDF-XML en un fichier PDF correspondant à la version française de la ressource
  • Transformer un fichier SKOS/RDF-XML en un fichier PDF correspondant à la version anglaise de la ressource

Plusieurs sections sont produites en fonction du contenu et de la structuration du fichier :

  • Index alphabétique.
  • Les entrées terminologiques détaillées (en français ou en anglais) avec :
    • les termes, définitions, notes
    • les relations (termes génériques, associés et spécifiques)
    • les termes préférentiels dans les autres langues
    • les groupes éventuels d’appartenance
    • les alignements
    • les références bibliographiques éventuelles
    • la (les) source(s) du concept
  • La liste des entrées avec :
    • le préférentiel français
    • le préférentiel anglais
    • la page
  • L’arborescence si la ressource est structurée.
  • Les collections si la ressource contient des groupes.

Des pages additionnelles sont insérées :

  • page de couverture simple avec le titre de la ressource (français ou anglais)
  • page de garde avec :
    • titre (français ou anglais) de la ressource
    • version
    • dernière date de mise à jour
    • description (français ou anglais)
    • légende pour les entrées détaillées
    • licence CC-BY 4.0 plus logo
  • 4ème de couverture avec :
    • titre (français ou anglais) de la ressource
    • description (français ou anglais)
    • licence CC-BY 4.0 plus logo

A noter que les pages de couverture peuvent être remplacées en éditant le fichier final avec un éditeur PDF comme PDF Sam Basic.