Webservices

Webservices REST

Opentheso à partir de la version 4.4.2 (Miled Rousset)

Pour télécharger la dernière version de la documentation de l’API REST, c’est sur GitHub.

PS : https://pactols.frantiq.fr/opentheso/    est l’exemple du thésaurus PACTOLS de Frantiq

Recherche par Identifiant (Ark) avec précision du format

https://pactols.frantiq.fr/opentheso/api/26678/pcrtkOgxvd4Ijy.rdf
https://pactols.frantiq.fr/opentheso/api/26678/pcrtkOgxvd4Ijy.json
https://pactols.frantiq.fr/opentheso/api/26678/pcrtkOgxvd4Ijy.jsonld
https://pactols.frantiq.fr/opentheso/api/26678/pcrtkOgxvd4Ijy.ttl

Recherche par Identifiant (Handle) avec précision du format

https://pactols.frantiq.fr/opentheso/api/20.500.11859/26678.pcrtkOgxvd4Ijy.rdf
https://pactols.frantiq.fr/opentheso/api/20.500.11859/26678.pcrtkOgxvd4Ijy.json
https://pactols.frantiq.fr/opentheso/api/20.500.11859/26678.pcrtkOgxvd4Ijy.jsonld
https://pactols.frantiq.fr/opentheso/api/20.500.11859/26678.pcrtkOgxvd4Ijy.ttl

Recherche par l’identifiant du concept avec précision du format

https://pactols.frantiq.fr/opentheso/api/TH_1.13175.rdf
uri REST = https://pactols.frantiq.fr/opentheso/api/
id du thesaurus = TH_1
id du concept =  13175
format = rdf
formats valides : (.rdf), (.json), (.jsonld), (.ttl).

Recherche avec Curl en choisissant le header :

curl -L –header “Accept: application/rdf+xml” https://pactols.frantiq.fr/opentheso/api/26678/pcrtkOgxvd4Ijy
curl -L –header “Accept: application/json” https://pactols.frantiq.fr/opentheso/api/26678/pcrtkOgxvd4Ijy
curl -L –header “Accept: application/ld+json” https://pactols.frantiq.fr/opentheso/api/26678/pcrtkOgxvd4Ijy
curl -L –header “Accept: text/turtle” https://pactols.frantiq.fr/opentheso/api/26678/pcrtkOgxvd4Ijy

valable aussi pour la recherche par l’identifiant du concept.

Récupération de la valeur prefLabel d’après un identifiant Ark

https://pactols.frantiq.fr/opentheso/api/preflabel.fr/20.500.11859/26678.pcrtkOgxvd4Ijy.json

preflabel.fr (.fr) désigne la langue à récupérer.

Recherche par valeur

curl -L –header “Accept: application/rdf+xml”
https://pactols.frantiq.fr/opentheso/api/search?q=amphore&lang=fr&theso=TH_1

Toutes ces commandes sont possibles pour le header
curl -L –header “Accept: application/rdf+xml »
curl -L –header “Accept: text/turtle »
curl -L –header “Accept: application/json »
curl -L –header “Accept: application/ld+json »

curl -L –header “Accept: application/json”
https://pactols.frantiq.fr/opentheso/api/search?q=amphore&lang=fr&theso=TH_1
curl -L –header “Accept: application/ld+json”
https://pactols.frantiq.fr/opentheso/api/search?q=archi&lang=fr&theso=TH_1

curl -L –header “Accept: text/turtle”  https://pactols.frantiq.fr/opentheso/api/search?q=archi&lang=fr&theso=TH_1

Recherche par notation

https://pactols.frantiq.fr/opentheso/api/search?q=notation:Guita1&theso=TH_1

On peut aussi obtenir les données dans un format spécifique en le précisant :
curl   https://pactols.frantiq.fr/opentheso/api/search?q=archi&lang=fr&theso=TH_1&format=jsonld
curl   https://pactols.frantiq.fr/opentheso/api/search?q=archi&lang=fr&theso=TH_1&format=json
curl  https://pactols.frantiq.fr/opentheso/api/search?q=archi&lang=fr&theso=TH_1&format=turtle
curl   https://pactols.frantiq.fr/opentheso/api/search?q=archi&lang=fr&theso=TH_1&format=rdf

on peut préciser la langue avec : &lang=fr
ou ne pas choisir de langue : On peut aussi obtenir les données dans un format spécifique en le précisant :
curl   https://pactols.frantiq.fr/opentheso/api/search?q=archi&lang=fr&theso=TH_1&format=jsonld
curl   https://pactols.frantiq.fr/opentheso/api/search?q=archi&lang=fr&theso=TH_1&format=json
curl  https://pactols.frantiq.fr/opentheso/api/search?q=archi&lang=fr&theso=TH_1&format=turtle
curl   https://pactols.frantiq.fr/opentheso/api/search?q=archi&lang=fr&theso=TH_1&format=rdf

curl   https://pactols.frantiq.fr/opentheso/api/search?q=archi&theso=TH_1&format=rdf

 on peut aussi filtrer par domaine/groupe/microthésaurus : &group=6
curl  https://pactols.frantiq.fr/opentheso/api/search?q=archi&theso=TH_1&lang=fr&group=6&format=rdf

Autocomplete

Permet de retourner les données sous forme de (id, valeur) en Json, ceci permet de faciliter la récupération des données pour des script d’indexation distant.

Requête avec précision de la langue
https://pactols.frantiq.fr/opentheso/api/autocomplete/arts?lang=fr&theso=TH_1

resultat =

0
uri “https://ark.mom.fr/Arkeo/26678/pcrtkOgxvd4Ijy”
label “arts décoratifs”
1
uri “https://ark.mom.fr/Arkeo/26678/pcrtGKMelLKwRd”
label “arts mineurs”
2
uri “https://ark.mom.fr/Arkeo/26678/pcrt6YAjOsQDeM”
label “arts textiles”
3
uri “https://ark.mom.fr/Arkeo/26678/pcrttq9gp2ZMuc”
label “Arts”
4
uri “https://ark.mom.fr/Arkeo/26678/pcrtcSQ6O32f6k”
label “Artsakh”

 

Requête en incluant toutes les langues

https://pactols.frantiq.fr/opentheso/api/autocomplete/arts?theso=TH_1

resultat =

0
uri “https://ark.mom.fr/Arkeo/26678/pcrtkOgxvd4Ijy”
label “arts décoratifs”
1
uri “https://ark.mom.fr/Arkeo/26678/pcrtGKMelLKwRd”
label “arts mineurs”
2
uri “https://ark.mom.fr/Arkeo/26678/pcrt6YAjOsQDeM”
label “arts textiles”
3
uri “https://ark.mom.fr/Arkeo/26678/pcrtkOgxvd4Ijy”
label “decorative arts”
4
uri “https://ark.mom.fr/Arkeo/26678/pcrtGKMelLKwRd”
label “minor arts”
5
uri “https://ark.mom.fr/Arkeo/26678/pcrt6YAjOsQDeM”
label “textile arts”
6
uri “https://ark.mom.fr/Arkeo/26678/pcrttq9gp2ZMuc”
label “Arts”
7
uri “https://ark.mom.fr/Arkeo/26678/pcrtcSQ6O32f6k”
label “Artsakh”

Requête en précisant en plus le domaine ou microthésaurus ou groupe
https://pactols.frantiq.fr/opentheso/api/autocomplete/arts?theso=TH_1&group=6

Le résultat est obtenu en filtrant les concepts qui appartiennent uniquement au domaine qui est donné en paramètre.

Recherche par Groupe ou Domaine / Microthésaurus …

On peut chercher un Groupe en précisant son Identifiant Ark :

https://pactols.frantiq.fr/opentheso/api/group/26678/pcrtnbDLi2FkAj
Toutes ces commandes sont possibles pour le header
curl -L –header “Accept: application/rdf+xml »
curl -L –header “Accept: text/turtle »
curl -L –header “Accept: application/json »
curl -L –header “Accept: application/ld+json »

On peut chercher un Groupe en précisant son Identifiant interne :

https://pactols.frantiq.fr/opentheso/api/group/?id=5&theso=TH_1

 Informations 

Pour connaître la dernière date de modification dans un thésaurus, on peut appeler l’URL suivante :
https://pactols.frantiq.fr/opentheso/api/info/lastupdate?theso=TH_1
resultat :
{“lastUpdate”: “2019-09-23”}

Pour avoir la liste des thésaurus publics, on peut appeler l’URL suivante :
https://pactols.frantiq.fr/opentheso/api/info/list?theso=all

Pour avoir la liste des langues d’un thésaurus, on peut appeler l’URL suivante :
https://pactols.frantiq.fr/opentheso/api/info/list?theso=TH_1&lang=all

 Fonctions avancées

 Comment retrouver une branche complète par autopostage en partant d’un concept vers le top terme (la racine) :
https://pactols.frantiq.fr/opentheso/api/expansion/concept?theso=TH_1&id=300&way=top

 Comment retrouver une branche complète par autopostage en partant d’un concept vers le dernier terme spécifique (vers le bas) :
https://pactols.frantiq.fr/opentheso/api/expansion/concept?theso=TH_1&id=300&way=down 

Requête en récupérer toute une branche d’un Groupe en particulier :
Ex : pour récupérer la branche complète du gorupe « 2 » du thésaurus « TH_1 »
https://pactols.frantiq.fr/opentheso/api/all/group?id=2&theso=TH_1
en spécifiant le format de données :
https://pactols.frantiq.fr/opentheso/api/all/group?id=2&theso=TH_1&format=rdf
https://pactols.frantiq.fr/opentheso/api/all/group?id=2&theso=TH_1&format=json
https://pactols.frantiq.fr/opentheso/api/all/group?id=2&theso=TH_1&format=turtle
https://pactols.frantiq.fr/opentheso/api/all/group?id=2&theso=TH_1&format=jsonld

Informations

Le Webservices envoie une information liée à la hiérarchie du concept dans le thésaurus, si le concept récupéré est poly-hiérarchique (se trouve dans plusieurs branches), l’information est alors dupliquée, exemple pour le concept « 14990 » du thésaurus PACTOLS :
https://pactols.frantiq.fr/opentheso/api/TH_1.14990.rdf
TH_1 = identifiant du thésaurus
14990 = identifiant du concept

donne le résultat :

<rdf:RDF>
<rdf:Description rdf:about=”https://ark.frantiq.fr/ark:/26678/pcrtbptj4SOA1W”>
<rdf:type rdf:resource=”http://www.w3.org/2004/02/skos/core#Concept”/>
<skos:prefLabel xml:lang=”it”>abitato</skos:prefLabel>
<skos:prefLabel xml:lang=”fr”>habitat</skos:prefLabel>
<skos:prefLabel xml:lang=”es”>hábitat</skos:prefLabel>
<skos:prefLabel xml:lang=”en”>settlement</skos:prefLabel>
<skos:prefLabel xml:lang=”de”>Siedlungswesen</skos:prefLabel>
<skos:prefLabel xml:lang=”nl”>woonplaats</skos:prefLabel>
<skos:prefLabel xml:lang=”ar”>سكن</skos:prefLabel>
<skos:altLabel xml:lang=”fr”>bâtiment domestique</skos:altLabel>
<skos:altLabel xml:lang=”it”>insediamento</skos:altLabel>
<skos:altLabel xml:lang=”fr”>structure d’habitat</skos:altLabel>
<skos:related rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtD2Eo6Sz7IY”/>
<skos:related rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtUu5zfknZ1x”/>
<skos:related rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrt9PJh9aTXv4″/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtsrlRWaly2K”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtqsNPWjGG9u”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtRFSvuXH6BD”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtERsRub9G3c”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtMVyOncjILc”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrthXosl9QxQ2″/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtSxe2PZMWR8″/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrterZpcqUSuG”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrt2f8QaSD6TS”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtaGBUR5Ekx1″/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtcnLd0ZlR3X”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtHe4IcZbXxI”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtQ9Tq9TeP3P”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtISZAuzsISK”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtT7xkUlGGbB”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtn0kjwckvyL”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtLEIWWX4Z3O”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/crtukWSYV7gtL”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtSmefwuwa97″/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrt5uHlswsQmN”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtVnWeKqGpcj”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtKfL11q1qOk”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrta8oqpcTSuo”/>
<skos:narrower rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtlEYVJzjAU6″/>
<skos:broader rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtWegewfItfX”/>
<skos:broader rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtDlzbGxWvTo”/>
<skos:inScheme rdf:resource=”https://pactols.frantiq.fr/opentheso/TH_1″/>
<opentheso:memberOf rdf:resource=”https://ark.frantiq.fr/ark:/26678/pcrtnbDLi2FkAj”/>
<dcterms:created rdf:datatype=”http://www.w3.org/2001/XMLSchema#date”>2007-02-08</dcterms:created>
<dcterms:modified rdf:datatype=”http://www.w3.org/2001/XMLSchema#date”>2014-06-25</dcterms:modified><dcterms:identifier>14990</dcterms:identifier><dcterms:description>13289##13290##13296##14990</dcterms:description><dcterms:description>13289##17634##14990</dcterms:description><skos:definition xml:lang=”fr”>Lieu d’habitation construit.</skos:definition></rdf:Description>
</rdf:RDF>

 

 


2 réflexions sur « Webservices »

  1. Thomas Francart

    Bonjour, quelle est l’API qui permet de télécharger le contenu d’un thesaurus en RDF/SKOS ?
    En fouillant j’ai trouvé dans https://github.com/miledrousset/Opentheso2/blob/master/src/main/resources/install/webservices.pdf un appel comme http://pactols.frantiq.fr/opentheso/api/all/theso?id=TH_1
    1. Pourquoi n’est-il pas documenté ici ?
    2. Pourquoi ne pas proposer un lien de téléchargement direct des données à l’utilisateur depuis l’interface à https://pactols.frantiq.fr/opentheso/ ? ca me semblerait bien FAIR.

    En l’occurrence pour le moment, http://pactols.frantiq.fr/opentheso/api/all/theso?id=TH_1 ne fonctionne pas et je suis incapable, en tant que réutilisateur potentiel, d’utiliser ces données dans mon système…

    Merci

    Répondre
    1. Miled Rousset

      Bonjour Thomas,
      Voici les réponses à tes questions :

      Bonjour, quelle est l’API qui permet de télécharger le contenu d’un thesaurus en RDF/SKOS ?
      En fouillant j’ai trouvé dans https://github.com/miledrousset/Opentheso2/blob/master/src/main/resources/install/webservices.pdf un appel comme http://pactols.frantiq.fr/opentheso/api/all/theso?id=TH_1
      1. Pourquoi n’est-il pas documenté ici ?

      Dans le paragraphe dédié à l’API sur le blog, la première ligne renvoie vers la dernière version qui est en ligne, sur le blog, on a mis que quelques fonctionnalités pour exemple.

      2. Pourquoi ne pas proposer un lien de téléchargement direct des données à l’utilisateur depuis l’interface à https://pactols.frantiq.fr/opentheso/ ? ca me semblerait bien FAIR.
      Les PACTOLS sont téléchargeables sur GitHub depuis plusieurs un moment déjà, voici le lien : https://github.com/frantiq/PACTOLS
      Je viens d’ajouter un lien sur l’interface de diffusion des PACTOLS, merci pour la suggestion.
      Le téléchargement direct et en temps réel est désactivé pour des rasions de protection du serveur, il ne faut pas que le serveur soit victime de téléchargement intempestifs …
      Les PACTOLS sont découpés par collection pour qu’ils soient facilement téléchargeables.

      En l’occurrence pour le moment, http://pactols.frantiq.fr/opentheso/api/all/theso?id=TH_1 ne fonctionne pas et je suis incapable, en tant que réutilisateur potentiel, d’utiliser ces données dans mon système…
      cette requête fonctionne bien sur des thésaurus de tailles normales, pour le cas des PACTOLS, c’est 60.000 concepts. l’appel de cette requête n’abouti pas parce que la session atteint le timeOut (qui est fixé pour la partie prod à 10 mn).

      N’hésites pas à m’écrire si tu as d’autres questions.
      Miled

      Répondre

Répondre à Thomas Francart Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.