# Administrer le Thésaurus INRAE avec VocBench 3

Sonia Bravo, Thomas Francart, Colette Cadiou, Sophie Aubin

► To cite this version:

Sonia Bravo, Thomas Francart, Colette Cadiou, Sophie Aubin. Administrer le Thésaurus INRAE avec VocBench 3. 2020, 10.15454/1f4w-xv21. hal-03031348

HAL Id: hal-03031348

https://hal.inrae.fr/hal-03031348v1

Submitted on 16 Mar 2021

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
# ADMINISTRER LE THESAURUS INRAE
AVEC VOCBENCH 3

Version 1 - Novembre 2020

Document d'appui destiné en premier lieu au comité éditorial du **thésaurus Inrae**. Les procédures spécifiées ont étés choisies au regard des besoins spécifiques de l'institut. Pour plus d'informations concernant l'utilisation de l'outil VocBench 3 nous vous invitons à aller sur la documentation officielle http://vocbench.uniroma2.it/doc/.

Citer ce document : Sonia Bravo, Thomas Francart, Colette Cadiou, Sophie Aubin. Administrer le Thésaurus INRAE avec VocBench 3. 2020, (10.15454/1f4w-xv21). (hal-03031348)

## Table des matières

<table><tr><td>À savoir avant de commencer</td><td>3</td></tr><tr><td>Point thésaurus</td><td>3</td></tr><tr><td>Point SKOS</td><td>3</td></tr><tr><td>Les concepts</td><td>4</td></tr><tr><td>Les schémas de concept</td><td>4</td></tr><tr><td>Les labels</td><td>4</td></tr><tr><td>Les notations</td><td>5</td></tr><tr><td>Les relations</td><td>6</td></tr><tr><td>Les alignements</td><td>6</td></tr><tr><td>Présentation de l'interface</td><td>7</td></tr><tr><td>La fenêtre Project List</td><td>7</td></tr><tr><td>La barre de navigation et les pages associées</td><td>7</td></tr><tr><td>focus sur la page Data</td><td>8</td></tr><tr><td>The Data Structure View</td><td>8</td></tr><tr><td>The Ressource View</td><td>9</td></tr><tr><td>Procédures</td><td>11</td></tr><tr><td>quelques points importants</td><td>11</td></tr></table>
<table><tr><td>Paramétrer son compte</td><td>11</td></tr><tr><td>Modifier les langues d'affichage des concepts</td><td>11</td></tr><tr><td>Modifier la structure de la vue ressource</td><td>11</td></tr><tr><td>Créer un concept</td><td>12</td></tr><tr><td>Valider une proposition de modification</td><td>13</td></tr><tr><td>Aligner un concept avec une ressource externe</td><td>15</td></tr><tr><td>Déprécier un concept</td><td>15</td></tr><tr><td>Procédures administrateurs</td><td>17</td></tr><tr><td>Créer un compte utilisateur</td><td>17</td></tr><tr><td>Donner des droits sur un projet à un utilisateur</td><td>17</td></tr><tr><td>Créer un nouveau projet</td><td>18</td></tr><tr><td>Exporter le thésaurus</td><td>18</td></tr><tr><td>Requêtes SPARQL utiles</td><td>19</td></tr><tr><td>Concepts qui ont à la fois un lien hiérarchique et associatif</td><td>19</td></tr><tr><td>En SKOS-XL</td><td>19</td></tr><tr><td>En SKOS</td><td>19</td></tr><tr><td>Récupérer les liens d'alignement</td><td>19</td></tr><tr><td>En SKOS-XL</td><td>19</td></tr><tr><td>En SKOS</td><td>20</td></tr><tr><td>Les concepts dépréciés qui ont encore des relations avec d'autres concepts</td><td>20</td></tr><tr><td>En SKOS-XL</td><td>20</td></tr><tr><td>En SKOS</td><td>21</td></tr><tr><td>Les concepts qui sont dans un seul scheme</td><td>21</td></tr><tr><td>En SKOS-XL</td><td>21</td></tr><tr><td>En SKOS</td><td>22</td></tr><tr><td>Exports des traductions anglaises de tous les concepts par MT</td><td>22</td></tr><tr><td>En SKOS-XL</td><td>22</td></tr><tr><td>En SKOS</td><td>23</td></tr><tr><td>Exports des définitions de tous les concepts par MT</td><td>23</td></tr><tr><td>En SKOS-XL</td><td>23</td></tr><tr><td>En SKOS</td><td>24</td></tr></table>
# À savoir avant de commencer

## POINT THESAURUS

Un thésaurus est un ensemble de concepts normalisés et hiérarchisés. Chaque concept est représenté linguistiquement par des termes, formant ainsi un langage contrôlé et multilingue utilisé en tant que système d'indexation. Il permet d'éviter les difficultés liées à l'usage des différents vocabulaires utilisés par les utilisateurs, auteurs des documents, interrogateurs ou indexeurs, à travers le temps.

Des relations hiérarchiques ou d'association peuvent être mises en place entre concepts. Un thésaurus permet ainsi l'interrogation simultanée de plusieurs bases (Exemple : [Le portail Isidore](https://www.inrae.fr/en/research-and-education/research-and-education/research-and-education-2019/le-portail-isidore) et/ou une navigation thématique à partir du thésaurus lui-même.

### Pourquoi un thésaurus INRAE ?

* Parce que nous cherchons de plus en plus à interconnecter les données issues de multiples systèmes d'information (IST, RH, Partenariat, Communication...) et que c'est impossible si chacun a son propre langage documentaire

* Parce qu'il permet de produire des indicateurs thématiques scientifiquement parlants

* Parce qu'en fournissant une représentation synthétique de nos domaines d'expertise, il est un outil de communication efficace

* Parce qu'il n'existe aucun thésaurus couvrant tous les domaines de l'institut et il fournit des termes en français et en anglais sur un grand nombre de sujets

* Il peut être aligné autant que possible avec d'autres vocabulaires du web sémantique, comme AgroVoc, Gemet... et garantir une interopérabilité avec d'autres systèmes

## POINT SKOS

VocBench est un outil de gestion collaborative de référentiels développé par l'université de Tor Vergata à Rome. L'outil s'appuie sur GraphDB et le modèle RDF qui fonctionne sous une forme de triplets : sujet, prédicat, objet. Le sujet est la ressource à décrire, le prédicat est la propriété appliquée au sujet et l'objet est la valeur de cette propriété.
Parmi les langages s'appuyant sur ce modèle, existe le SKOS (Simple Knowledge Organisation System). Celui-ci permet une représentation standard des thésaurus ainsi que de tout autre type de vocabulaire contrôlé et structuré.

## Les concepts

Les concepts sont des notions abstraites, représentées par un terme préférentiel entouré d'autres termes (ex synonymes). Ils sont identifiés en tant que tel par le triplet composé du **prédicat** : **rdf:type** et de l'**objet** : **skos:Concept**. Chaque concept est identifiable par un identifiant unique : un URI (Uniform Resource identifier) qui reste inchangé même si le concept est modifié ou déplacé dans la hiérarchie.

<figure><img src="image_2.png" /></figure>

## Les schémas de concept

Il s'agit d'agrégations d'un ou plusieurs concepts SKOS. Un schéma de concepts, ou scheme, peut ainsi représenter le thésaurus en lui-même et les micro-thésaurus. Il est identifié par le triplet composé du **prédicat** : **rdf:type** et de l'**objet** : **skos:ConceptScheme**.

<figure><img src="image_3.png" /></figure>

## Les labels

Les labels sont les libellés qui permettent de représenter le concept. Ils peuvent être déclinés en plusieurs langues.

* **skos:prefLabel** identifie le libellé préférentiel, un par langue. Il s'agira du descripteur utilisé dans le cas des indexations.

* **skos:altLabel** identifie des libellés alternatifs et donc majoritairement des synonymes ou des sigles. Leur recherche renvoie automatiquement vers le libellé préférentiel. Ils sont donc non-descripteurs.

* **skos:hiddenLabel** identifie des libellés « cachés » pouvant reprendre les autres libellés mais sous d'autres orthographes, erronés par exemple.

<URI.A> rdf:type skos:Concept ;
skos:prefLabel «œil»@fr;

skos:prefLabel «eye»@en;

skos:altLabel «pupille»@fr;

skos:hiddenLabel «oeil»@fr;

<figure><img src="image_4.png" /></figure>

Pour le thesaurus INRAE, nous avons choisi d'utiliser l'extension SKOS-XL qui permet d'ajouter aux labels des descriptions et des relations. Les labels sont identifiés en tant que tel par le triplet composé du *prédicat* : **rdf:type** et de l'**objet** : **skosxl:Label**. Chaque concept est identifiable par un identifiant unique : un URI (Uniform Resource identifier) qui reste inchangé même si le label est déplacé. Les labels sont rattachés au concept par les relations **skosxl:prefLabel** et **skos-xl:altLabel**. La propriété **skosxl:literalForm** indique la forme du label.

<figure><img src="image_5.png" /></figure>

## Les notations

Les notations peuvent être utilisées afin de contextualiser le concept et son utilisation.
* skos:scopeNote utilisé afin de transmettre des recommandations d'usage pour l'indexation.

* skos:definition utilisé pour donner une définition du concept afin d'éviter une mauvaise utilisation, notamment dans le cadre d'une expression/terme polysémique.

## Les relations

Les relations entre concepts sont multiples et permettent des liens hiérarchiques et associatifs.

* skos:inScheme indique que le concept appartient à un ConceptScheme.

* skos:topConceptOf indique que le concept est un concept de premier niveau d'un ConceptScheme

* skos:broader indique un concept plus générique

* skos:narrower indique un concept plus spécifique

* skos:related marque un lien d'association avec un autre concept

Attention : deux concepts ne peuvent pas être liés de manière hiérarchique et associative en même temps.

## Les alignements

Les alignements permettent de mettre en lien des concepts issus de vocabulaires différents.

* skos:exactmatch Indique que les deux concepts sont identiques

* skos:closeMatch Indique sur les deux concepts sont proches sémantiquement
# Présentation de l'interface

## LA FENETRE PROJECT LIST

<figure><img src="image_6.png" /></figure>

La « Projects list » présente les différents projets ayant été ouverts au préalable par un administrateur et auxquels on vous a donné accès par le biais d'un rôle.

Chaque session débute par l'apparition de cette fenêtre et vous demande de sélectionner le projet sur lequel vous voulez travailler en cliquant dessus et en appuyant sur le bouton Access.

## LA BARRE DE NAVIGATION ET LES PAGES ASSOCIEES

Une fois le projet sélectionné vous pourrez accéder à la page d'accueil et donc à la barre de navigation. Les éléments qui y sont affichés sont fixes mais peuvent être grisés selon votre rôle et les permissions qui y sont associées. En exemple ci-dessous « Validation » qui n'est pas cliquable par l'utilisateur

<figure><img src="image_7.png" /></figure>

* VocBench : Renvoie à la page d'accueil

* Project : Page visible uniquement pour l'administrateur. Elle permet d'avoir une visibilité sur les différents projets et de gérer leur accès global.

* Data : Renvoie à un ensemble de pages de données depuis lesquelles peuvent se faire les modifications.

* Metadata : Ouvre un menu déroulant redirigeant vers trois différentes pages

* Namespaces and Imports : axé sur les ontologies

* Metadata Vocabularies : permet de spécifier des métadonnées en fonction de différents vocabulaires existants, tels que VOID, LIME, DCAT, ADMS, etc.

* Metadata Registry

* SPARQL : éditeur SPARQL

* History : Historique regroupant l'ensemble des actions et modifications passées.
* Validation : Liste des modifications du thésaurus en attente de validation.

* Tools :

* Integrity Constraint Validation (ICV) : Un outil proposant différentes procédures de vérifications sur la structure du thésaurus, les libellés etc. Cela afin de détecter et réparer les anomalies.

* Alignment Validation : Un outil d'alignement d'ontologies.

* Sheet2RDF : Outil d'acquisition et transformation de tableur au format RDF

* Collaboration System : Permet de lier n'importe quelle ressource RDF provenant d'un projet VocBench dans une plateforme collaborative.

* Custom Form Management : Permet de créer des formulaires à façon pour faciliter la saisie et la visualisation de propriétés complexes ou ad hoc.

## FOCUS SUR LA PAGE DATA

La page Data est la page permettant la navigation parmi les ressources et leur modification. Elle se compose de deux espaces délimités verticalement.

<figure><img src="image_8.png" /></figure>

Deux boutons sont présents dans les deux espaces :

A

Activé il permet de visualiser les prefLabel. Autrement ce sont les URI qui s'affichent.

<figure><img src="image_9.png" /></figure>

Permet de rafraîchir la page. Il est conseillé de le faire à la suite d'une validation.

## The Data Structure View

Située à gauche, elle permet la navigation parmi différents éléments divisés en plusieurs pages :

* Class : Regroupe les classes, par exemple : skos:concept ; skos:conceptScheme etc.

* Concept : Donne accès à l'arborescence des concepts issus des conceptScheme sélectionnés depuis l'onglet Scheme.
* **Scheme** : Rassemble l'ensemble des conceptScheme. Ils correspondent aux microthésaurus et l'un d'eux au thesaurus entire.

* **Collection** : Les collections sont des regroupements de sous-ensembles de concepts.

* **Property** : Cette page permet de voir l'ensemble des propriétés possibles. On y retrouve aussi bien du skos que du owl ou du rdfs.

## The Ressource View

Elle permet de voir les détails des différents éléments sélectionnés depuis la Data Structure View. Leur nature est rendue visible par un symbole :

<figure><img src="image_10.png" /></figure>

ConceptScheme

<figure><img src="image_11.png" /></figure>

Class

<figure><img src="image_12.png" /></figure>

Concept

<figure><img src="image_13.png" /></figure>

Les propriétés sont présentées structurées en trois niveaux :

* Les partitions : *Types* ; *Lexicalizations*

* Les propriétés uniques affichées dans chaque division : *rdf:type* ; *skosxl:prefLabel*

* Les valeurs/objets des propriétés : *skos:hasTopConcept* ; *ablation de neige*

C'est sur cette page qu'auront lieu les modifications internes d'un concept. En appuyant sur les flèches pointant vers le bas sur la droite on peut accéder aux différentes modifications possibles, dont la suppression. Les ajouts se font par le biais des boutons « + » : [+] ; [x]

<figure><img src="image_14.png" /></figure>

Le bouton [?], une fois activé, permet de rendre visible les propriétés qui ont été ajoutées automatiquement par un processus de raisonnement suite à une modification/ajout etc.
Par exemple, si l'on crée un lien d'association sur le concept A vers le concept B, le lien d'association sera rajouté comme propriété inférée sur la page du concept B.

De même si on précise que le concept C a pour skos:broader le concept D : sur la page de ce dernier apparaitra en information inférée qu'il a comme skos:narrower le concept C

<figure><img src="image_15.png" /></figure>
# Procédures

## QUELQUES POINTS IMPORTANTS

* Pour pouvoir parcourir les concepts et les modifier depuis l'onglet « Class », il est nécessaire de se rendre sur l'onglet « Scheme » et de sélectionner les microthésaurus concernés. Afin de ne pas surcharger le serveur, **il est important de ne pas tous les sélectionner en même temps**. Il faut donc prendre l'habitude de désélectionner au fur et à mesure les microthésaurus dont vous n'avez plus l'utilité.

<figure><img src="image_16.png" /></figure>

* Tant qu'une modification n'est pas validée, elle ne sera pas prise en compte. Par exemple, si on souhaite mettre en altLabel un prefLabel qu'on vient de supprimer, on risque d'être bloqué car pour le logiciel le terme est encore utilisé.

* Une fois des validations effectuées il est conseillé de rafraîchir les différentes pages.

## PARAMETRER SON COMPTE

1. Cliquer sur l'icône renvoyant au menu utilisateur, en haut à droite de l'écran

2. Dans le menu sélectionner « Préférences »

## Modifier les langues d'affichage des concepts

3. Dans l'écran de préférences sélectionner les « rendering languages » à utiliser pour l'affichage des données ;

a. si aucune langue n'est sélectionnée cela indique que toutes les langues sont affichées ;

b. si on choisit plusieurs langues, il faut ajuster leur ordre d'affichage ;

4. Retourner dans la partie « Data » de VocBench et rafraîchissez la vue en cliquant sur l'icône de « refresh » avec les 2 flèches qui tournent ;

## Modifier la structure de la vue ressource

3. Sélectionner dans « Resource view mode » une des deux possibilités

a. Splitted : divise la « RessourceView » en deux parties. La deuxième s'ouvrant en faisant un double clic sur l'élément concerné.

b. Tabbed : permet d'ouvrir un onglet par élément sélectionné.
<figure><img src="image_17.png" /></figure>

a.

<figure><img src="image_18.png" /></figure>

b.

## CREER UN CONCEPT

Il faut toujours s'assurer que les concepts que l'on crée soient dans 2 ConceptSchemes : le ConceptScheme qui correspond au thesaurus en entier, et le ConceptScheme du microthésaurus auquel appartient le Concept.

On peut utiliser la requête SPARQL décrite plus bas pour vérifier s'il existe des Concepts qui n'appartiennent qu'à un seul ConceptScheme.

Pour créer un Concept :

1. D'abord sélectionner le MT sur lequel on travaille dans l'onglet « Scheme », puis rebasculer dans l'onglet « Concept » ;

2. Pour créer un concept, utiliser un des 2 boutons au-dessus de l'arbre des concepts : soit « créer au premier niveau », soit « créer en-dessous d'un concept existant » :

a. Si on « crée en-dessous d'un concept existant », vérifier dans le dialogue de création que les 2 ConceptSchemes du concept parent sont sélectionnés ; normalement il n'y a rien à modifier ;

b. Si on « crée au premier niveau », il faut ajouter le nouveau concept dans le ConceptScheme du thesaurus principal :

<figure><img src="image_19.png" /></figure>

c. Cliquer sur « + » à droite de « schemes » pour ajouter le nouveau scheme

d. Puis choisir le ConceptScheme du thesaurus principal
<figure><img src="image_20.png" /></figure>

e. Et s'assurer que le nouveau concept appartient aux 2 schemes :

<figure><img src="image_21.png" /></figure>

## VALIDER UNE PROPOSITION DE MODIFICATION

Les éditeurs du thésaurus font des propositions de modification (correction, ajout, suppression) qui doivent être validées par une personne avec le rôle « validator ».

Les propositions sont visibles tant qu'elles n'ont pas été validées.
<figure><img src="image_22.png" /></figure>

Sur les concepts : a) Création (« concept à valider »), b) Dépréciation (« donnée agronomique », c) Déplacement (« écloserie »)

<figure><img src="image_23.png" /></figure>

Sur les libellés : modification d'un libellé. Dans la « Data Structure View » (gauche), l'ancienne et la nouvelle valeur apparaissent.

Le validateur accède à la liste des propositions via l'onglet « Validation ». Il est possible d'accepter ou refuser les propositions une par une ou toutes en même temps (Accept/Reject all).

<figure><img src="image_24.png" /></figure>

Certaines actions ne peuvent pas être faites tant que la proposition n'a pas été validée. Dans l'exemple de « monetarisation », il ne sera possible d'ajouter la valeur « monetarisation » comme libellé alternatif qu'une fois que « monetarization » aura été acceptée (on ne peut pas avoir la même valeur pour le préférentiel et l'alternatif).

<figure><img src="image_25.png" /></figure>
Note : il est possible pour un éditeur de rejeter sa propre proposition dans le cas où il aurait fait une erreur ou ait changé d'avis. Dans ce cas uniquement, le rôle validator n'est pas requis.

## ALIGNER UN CONCEPT AVEC UNE RESSOURCE EXTERNE

1. Depuis la fiche d'un concept, cliquer sur la petite flèche vers le bas en haut à droite de la notice, et sélectionner « Align with external resource » dans le menu déroulant ;

2. Dans la boite de dialogue, sélectionner la propriété d'alignement (typiquement skos:exactMatch) ;

3. Cliquer sur le crayon à droite de la zone « Target resource », puis choisir « Enter value manually » ;

4. Copier-coller l'URI du Concept externe dans le champs, et sauvegarder ;

<figure><img src="image_26.png" /></figure>

## DEPRECIER UN CONCEPT

1. Sélectionner le concept à déprécier

2. Supprimer tous les liens du concept

a. Supprimer les liens skos:broader

b. Supprimer les liens skos:related si présents

c. Cliquer sur l'icône d'œil, si ce n'est pas déjà fait, pour afficher les données inférées. Si un autre concept a un lien skos:related vers le concept à déprécier il deviendra visible.

d. Si c'est le cas : aller sur la fiche de ces concepts et supprimer le lien skos:related concerné.

3. Cliquer sur « Set as deprecated »
<figure><img src="image_27.png" /></figure>
# Procédures administrateurs

## CREER UN COMPTE UTILISATEUR

1. Cliquer sur l'icône renvoyant au menu utilisateur, en haut à droite de l'écran

2. Sélectionner « Administration »

3. Ouvrir l'onglet « Users »

4. Cliquer sur le « + » situé à côté des filtres « Active / Inactive / New »

5. Compléter la fenêtre qui s'ouvre avec les informations nécessaires

6. Une fois le compte créer, cliquer sur le nom en question puis sur « Active » en haut à droite de la fenêtre « User Details »

Autrement, un compte tout juste crée est inactif (une icône rouge apparaît à côté du nom) et l'utilisateur ne peut pas se connecter.

<figure><img src="image_28.png" /></figure>

## DONNER DES DROITS SUR UN PROJET A UN UTILISATEUR

1. Dans l'écran d'administration des utilisateurs, cliquer sur le bouton « Projects » en haut à gauche de l'écran ;

2. Cliquer sur le nom du projet pour lequel vous voulez donner un droit dans la liste de gauche ;

3. Sur la droite de l'écran, cliquer sur « + » pour ajouter un droit utilisateur ;

4. Dans le dialogue qui s'affiche, sélectionner un compte utilisateur et son rôle ; typiquement :

a. « thesaurus-editor » a tous les droits pour modifier les données d'un thesaurus, mais ne peut pas valider, ni modifier le modèle des classes ou des propriétés ; correspond typiquement a un profil « contributeur » ;

b. « rdfgeek » : a tous les droits sur toutes les données (y compris validation et modification du modèle), mais ne peut pas modifier le paramétrage du projet (droits d'accès, visibilité, etc.) ;

c. « project-manager » a tous les droits sur les données, et peut en plus modifier le paramétrage du projet (droits d'accès, comptes utilisateurs, etc.) ;
# Requêtes SPARQL utiles

## CONCEPTS QUI ONT A LA FOIS UN LIEN HIERARCHIQUE ET ASSOCIATIF

### En SKOS-XL

```sql
PREFIX skosx1: <http://www.w3.org/2008/05/skos-x1#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX xl: <http://www.w3.org/2008/05/skos-x1#>
SELECT ?cpt ?cptLabel ?relatedAndHierarchical ?relatedAndHierarchicalLabel
WHERE {
    ?cpt a skos:Concept .
    ?cpt skos:related ?relatedAndHierarchical .
    {
        { ?cpt (skos:broader|^skos:narrower)+ ?relatedAndHierarchical . }
        UNION
        { ?cpt (skos:narrower|^skos:broader)+ ?relatedAndHierarchical . }
    }
    OPTIONAL { ?cpt skosx1:prefLabel ?xcptLabel .
                ?xcptLabel skosx1:literalForm ?cptLabel .
                FILTER(lang(?cptLabel)='fr') }
    OPTIONAL { ?relatedAndHierarchical skosx1:prefLabel ?xrelatedAndHierarchicalLabel .
                ?xrelatedAndHierarchicalLabel skosx1:literalForm
                ?relatedAndHierarchicalLabel .
                FILTER(lang(?relatedAndHierarchicalLabel)='fr') }
}
```

### En SKOS

```sql
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX xl: <http://www.w3.org/2008/05/skos-x1#>
SELECT ?cpt ?cptLabel ?relatedAndHierarchical ?relatedAndHierarchicalLabel
WHERE {
    ?cpt a skos:Concept .
    ?cpt skos:related ?relatedAndHierarchical .
    {
        { ?cpt (skos:broader|^skos:narrower)+ ?relatedAndHierarchical . }
        UNION
        { ?cpt (skos:narrower|^skos:broader)+ ?relatedAndHierarchical . }
    }
    OPTIONAL { ?cpt skos:prefLabel ?cptLabel FILTER(lang(?cptLabel)='fr') }
    OPTIONAL { ?relatedAndHierarchical skos:prefLabel ?relatedAndHierarchicalLabel
                FILTER(lang(?relatedAndHierarchicalLabel)='fr') }
}
```

## RECUPERER LES LIENS D'ALIGNEMENT

### En SKOS-XL

```sql
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX skosx1:<http://www.w3.org/2008/05/skos-x1#>
```
```sql
PREFIX vb:<http://art.uniroma2.it/ontologies/vocbench#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
SELECT ?concept ?label ?alignementProperty ?other ?labelOther
WHERE {
    ?concept a skos:Concept .
    ?concept ?alignementProperty ?other .
    VALUES ?alignementProperty { skos:exactMatch skos:closeMatch skos:broadMatch skos:narrowMatch skos:relatedMatch }
    ?concept skosxl:prefLabel ?xlabel .
    ?xlabel skosxl:literalForm ?label .
    FILTER (lang(?label) = 'fr')
    OPTIONAL {
        ?other skosxl:prefLabel ?xlabelOther .
        ?xlabelOther skosxl:literalForm ?labelOther .
        FILTER (lang(?labelOther) = 'fr')
    }
}
```

## En SKOS

```sql
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl:<http://www.w3.org/2008/05/skos-xl#>
PREFIX vb:<http://art.uniroma2.it/ontologies/vocbench#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
SELECT ?concept ?label ?alignementProperty ?other ?labelOther
WHERE {
    ?concept a skos:Concept .
    ?concept ?alignementProperty ?other .
    VALUES ?alignementProperty { skos:exactMatch skos:closeMatch skos:broadMatch skos:narrowMatch skos:relatedMatch }
    ?concept skos:prefLabel ?label .
    FILTER (lang(?label) = 'fr')
    OPTIONAL {
        ?other skos:prefLabel ?labelOther .
        FILTER (lang(?labelOther) = 'fr')
    }
}
```

## LES CONCEPTS DEPRECIES QUI ONT ENCORE DES RELATIONS AVEC D'AUTRES CONCEPTS

### En SKOS-XL

```sql
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl:<http://www.w3.org/2008/05/skos-xl#>
PREFIX vb:<http://art.uniroma2.it/ontologies/vocbench#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?concept ?prefLabel ?another ?anotherLabel
WHERE {
    ?concept a skos:Concept .
```
```json
?concept owl:deprecated true .
{
    { ?concept ?semanticRelation ?another . VALUES ?semanticRelation
    {skos:broader skos:narrower skos:related} }
    UNION
    { ?another ?semanticRelation ?another . VALUES ?semanticRelation
    {skos:broader skos:narrower skos:related} }
}
OPTIONAL { ?concept skosxl:prefLabel ?xprefLabel .
           ?xprefLabel skosxl:literalForm ?prefLabel .
}
OPTIONAL { ?another skosxl:prefLabel ?xanotherLabel .
           ?xanotherLabel skosxl:literalForm ?anotherLabel .}
}
```

## En SKOS

```sql
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl:<http://www.w3.org/2008/05/skos-xl#>
PREFIX vb:<http://art.uniroma2.it/ontologies/vocbench#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?concept ?prefLabel ?another ?anotherLabel
WHERE {
    ?concept a skos:Concept .
    ?concept owl:deprecated true .
    {
        { ?concept ?semanticRelation ?another . VALUES ?semanticRelation
        {skos:broader skos:narrower skos:related} }
        UNION
        { ?another ?semanticRelation ?another . VALUES ?semanticRelation
        {skos:broader skos:narrower skos:related} }
    }
    OPTIONAL { ?concept skos:prefLabel ?prefLabel }
    OPTIONAL { ?another skos:prefLabel ?anotherLabel }
}
```

## LES CONCEPTS QUI SONT DANS UN SEUL SCHEME

### En SKOS-XL

```sql
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl:<http://www.w3.org/2008/05/skos-xl#>
PREFIX vb:<http://art.uniroma2.it/ontologies/vocbench#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?concept ?label (COUNT(?scheme) AS ?nbScheme)
WHERE {
    ?concept a skos:Concept .
    ?concept skos:inScheme ?scheme .
    ?concept skosxl:prefLabel ?xlabel .
    ?xlabel skosxl:literalForm ?label .
```
```sql
FILTER (lang(?label) = 'fr')
}
GROUP BY ?concept ?label
HAVING (?nbScheme = 1)
ORDER by ?concept
```

## En SKOS

```sql
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl:<http://www.w3.org/2008/05/skos-xl#>
PREFIX vb:<http://art.uniroma2.it/ontologies/vocbench#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?concept ?label (COUNT(?scheme) AS ?nbScheme)
WHERE {
    ?concept a skos:Concept .
    ?concept skos:inScheme ?scheme .
    ?concept skos:prefLabel ?label .
    FILTER (lang(?label) = 'fr')
}
GROUP BY ?concept ?label
HAVING (?nbScheme = 1)
ORDER by ?concept
```

# EXPORTS DES TRADUCTIONS ANGLAISES DE TOUS LES CONCEPTS PAR MT

## En SKOS-XL

```sql
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl:<http://www.w3.org/2008/05/skos-xl#>
PREFIX vb:<http://art.uniroma2.it/ontologies/vocbench#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?concept ?MT ?labelFr ?labelEn
WHERE {
    ?concept a skos:Concept .
    OPTIONAL {
        ?concept skos:inScheme ?scheme .
        FILTER (?scheme != <http://opendata.inrae.fr> && ?scheme != <http://opendata.inrae.fr/thesaurusINRAE/thesaurusINRAE>)
        ?scheme skosxl:prefLabel ?xMT .
        ?xMT skosxl:literalForm ?MT .
        FILTER (lang(?MT) = 'fr')
    }
    ?concept skosxl:prefLabel ?xlabelFr .
    ?xlabelFr skosxl:literalForm ?labelFr .
    FILTER (lang(?labelFr) = 'fr')
    OPTIONAL {
        ?concept skosxl:prefLabel ?xlabelEn .
        ?xlabelEn skosxl:literalForm ?labelEn .
    }
```
```sql
FILTER (lang(?labelEn) = 'en')
}
}
ORDER BY ?MT ?labelFr
```

## En SKOS

```sql
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl:<http://www.w3.org/2008/05/skos-xl#>
PREFIX vb:<http://art.uniroma2.it/ontologies/vocbench#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?concept ?MT ?labelFr ?labelEn
WHERE {
    ?concept a skos:Concept .
    OPTIONAL {
        ?concept skos:inScheme ?scheme .
        FILTER (?scheme != <http://opendata.inrae.fr> && ?scheme !=
                  <http://opendata.inrae.fr/thesaurusINRAE/thesaurusINRAE>)
        ?scheme skos:prefLabel ?MT .
        FILTER (lang(?MT) = 'fr')
    }
    ?concept skos:prefLabel ?labelFr .
    FILTER (lang(?labelFr) = 'fr')
    OPTIONAL {
        ?concept skos:prefLabel ?labelEn .
        FILTER (lang(?labelEn) = 'en')
    }
}
ORDER BY ?MT ?labelFr
```

## EXPORTS DES DEFINITIONS DE TOUS LES CONCEPTS PAR MT

### En SKOS-XL

```sql
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl:<http://www.w3.org/2008/05/skos-xl#>
PREFIX vb:<http://art.uniroma2.it/ontologies/vocbench#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
PREFIX owl:<http://www.w3.org/2002/07/owl#>
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?concept ?MT ?labelFr ?definition
WHERE {
    ?concept a skos:Concept .
    OPTIONAL {
        ?concept skos:inScheme ?scheme .
        FILTER (?scheme != <http://opendata.inrae.fr/thesaurusINRAE> &&
                      ?scheme != <http://opendata.inrae.fr/thesaurusINRAE/thesaurusINRAE>)
        ?scheme skosxl:prefLabel ?xMT .
    }
}
ORDER BY ?MT ?labelFr
```
```sql
?xMT skosxl:literalForm ?MT .
FILTER (lang(?MT) = 'fr')
}
?concept skosxl:prefLabel ?xlabelFr .
?xlabelFr skosxl:literalForm ?labelFr .
FILTER (lang(?labelFr) = 'fr')
OPTIONAL { ?concept skos:definition ?xdefinition .
?xdefinition rdf:value ?definition
}
}
ORDER BY ?MT ?labelFr
```

## En SKOS

```sql
PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
PREFIX skosxl:<http://www.w3.org/2008/05/skos-xl#>
PREFIX vb:<http://art.uniroma2.it/ontologies/vocbench#>
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?concept ?MT ?labelFr ?definition
WHERE {
    ?concept a skos:Concept .
    OPTIONAL {
        ?concept skos:inScheme ?scheme .
        FILTER (?scheme != <http://opendata.inrae.fr/thesaurusINRAE> &&
                      ?scheme != <http://opendata.inrae.fr/thesaurusINRAE/thesaurusINRAE>)
        ?scheme skos:prefLabel ?MT .
        FILTER (lang(?MT) = 'fr')
    }
    ?concept skos:prefLabel ?labelFr .
    FILTER (lang(?labelFr) = 'fr')
    OPTIONAL { ?concept skos:definition ?definition . }
}
ORDER BY ?MT ?labelFr
```