Webservices
Webservices REST
Opentheso à partir de la version 4.4.2 (Miled Rousset)
PS : https://pactols.frantiq.fr/opentheso/ est l’exemple du thésaurus PACTOLS de Frantiq.
Opentheso intègre désormais l’OpenAPI, pour voir le fonctionnement de l’API, vous avez un exemple ici : https://pactols.frantiq.fr/opentheso/openapi/doc/
La documentation ci-dessous est obsolète, elle a été remplacée par l’OpenAPI ci-dessus.
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>
OpenEdition vous propose de citer ce billet de la manière suivante :
Emmanuelle Perrin (28 septembre 2020). Webservices. Opentheso. Consulté le 6 novembre 2024 à l’adresse https://doi.org/10.58079/sjjj
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
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