sp.Blog

le blog de Stéphane Pouyllau

Utiliser Isidore pour ses propres données (quand on est, par exemple, dans un labo)

Isidore peut être un moyen, pour un laboratoire ou une équipe de recherche, d’enrichir et de relier des métadonnées et donc, par cette voie, des données. Comment faire ? En premier lieu, il faut faire entrer ses données dans Isidore, je renvois le lecteur à la page « à propos » du site Isidore. Ensuite, via le triple-store (une grosse base d’information construite selon les principes du RDF et qui est au cœur d’Isidore), il est donc possible de récupérer des métadonnées dites « enrichies » : c’est à dire les métadonnées fournies par le producteur et les enrichissements sémantiques créés par Isidore.

Le triple-store est accessible en ligne, soit dans une interface pédagogique (qui donne les clés pour comprendre le triple-store) : http://www.rechercheisidore.fr/sqe soit dans l’interface de notre outil de triple-store Virtuoso (et plus familier pour les webmasters) : http://www.rechercheisidore.fr/sparql. L’interface d’interrogation d’un triple-store (ou encore 3store) est appelée aussi SPARQL endpoint (point d’accès en langage SPARQL d’un triple-store).

Une requête très simple pour débuter en reprenant un cas concret : je suis un webmaster d’un projet ANR et je souhaite récupérer les métadonnées enrichies des documents de mon projet, indexés par Isidore. La requête ci-dessous me permet de lister toutes les ressources de mon projet (identifiées par un identifiant pérenne handle, apposé gratuitement – et réutilisable librement – par Isidore) :

PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX dces: <http://purl.org/dc/elements/1.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT DISTINCT ?isidore_handle ?titre ?date WHERE {
<http://www.rechercheisidore.fr/resource/10670/2.3gmog5> ?p ?o.
?o dcterms:title ?titre.
?o dces:date ?date.
?o dcterms:identifier ?isidore_handle
FILTER (regex(?isidore_handle, "10670"))
}

Voir le résultat de la requête

En PREFIX, j’indique par leurs URI, les vocabulaires documentaires utilisés dans le triple-store d’Isidore pour décrire les informations (notez qu’il y en a plusieurs, nous y reviendrons). dcterms et dces (pour Dublin Core Element Set) pour les métadonnées documentaires, FOAF pour décrire les informations relatives aux personnes (ici, des auteurs).
Le SELECT, WHERE et FILTER vont me permettre d’exécuter ma requête et d’en filtrer les réponses : avec l’utilisation ici d’une expression régulière me permettant d’isoler les triplets et donc de dédoublonner ces derniers pour une meilleure lecture. En effet, SPARQL permet de rechercher des informations sous la forme de triplets RDF (sujet, prédicat, objet).

Isidore, vous le savez, enrichit les ressources qu’il moissonne (voir ici). Ainsi, il est aisé d’utiliser le triple-store d’Isidore pour récupérer des signalements de données enrichie sur un territoire (puisque Isidore relie le contenu des ressources moissonnées avec des concepts issus du référentiel géographique mondial GeoNames). Ici, une requête permettant de récupérer tous les articles (uri : http://www.rechercheisidore.fr/ontology/art) ressources ayant été relié au département de la Seine-Saint-Denis (les Séquano-Dionysiens seront content) par un filtrage sur ‘2975246’ de l’uri http://sws.geonames.org/2975246/ de GeoNames :

PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX dces: <http://purl.org/dc/elements/1.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX ore: <http://www.openarchives.org/ore/terms/>

SELECT ?resource ?title ?url ?source ?country WHERE {
?resource dcterms:type <http://www.rechercheisidore.fr/ontology/art>.
?resource dcterms:title ?title.
?resource ore:aggregates ?url.
?resource ore:isAggregatedBy ?source.
?resource dcterms:coverage ?country.
FILTER (regex(?resource, "10670", "i") && regex(?country, "2975246", "i"))
} GROUP BY ?resource

Voir le résultat de la requête

Le triple-store d’Isidore permet de « sortir » les données dans plusieurs format, CSV, RDF/XML, JSON suivant ce que l’on veut faire des informations (applications en ligne de visualisation de données par exemple) : très pratique justement pour les webmasters qui connaissaient bien ces formats.

La force d’Isidore est d’enrichir les ressources à l’aide de référentiels scientifiques, ainsi il est possible d’avoir la liste des ressources correspondant à l’une des catégories de Calenda venant des 2000 producteurs de données présents dans Isidore. En effet, l’ontologie d’ISIDORE aligne ensemble plusieurs URIs venant de plusieurs référentiels disciplinaires de SHS (HAL-SHS, Calenda, Thésaurus W du ministère de la Culture et de la Communication, dbpedia, etc.), exemple avec cette requête :

SELECT ?predicat ?objet {
<http://www.rechercheisidore.fr/subject/SHS:HIST> ?predicat ?objet
}

Voir le résultat de la requête

qui donne :

predicat objet
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2004/02/skos/core#Concept
http://www.w3.org/2004/02/skos/core#inScheme http://www.rechercheisidore.fr/categorie
http://www.w3.org/2004/02/skos/core#prefLabel « Histoire »
http://www.w3.org/2004/02/skos/core#prefLabel « History »@en
http://www.w3.org/2004/02/skos/core#prefLabel « Història »
http://www.w3.org/2004/02/skos/core#broader http://www.rechercheisidore.fr/subject/SHS
http://www.w3.org/2004/02/skos/core#exactMatch http://calenda.revues.org/categories.rdf#categorie20
http://www.w3.org/2004/02/skos/core#exactMatch http://dbpedia.org/resource/History

On voit bien qu’il est facile d’utiliser l’alignement proposé par l’ontologie d’Isidore entre Dbpedia, Calenda, HAL-SHS pour la discipline ‘Histoire’. Ainsi, il est possible de demander à Isidore toutes les ressources qui sont tagguées avec l’URI <http://www.rechercheisidore.fr/subject/SHS:HIST> (ici limité à 100 ressources) :

PREFIX sioc: <http://rdfs.org/sioc/ns#>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX dces: <http://purl.org/dc/elements/1.1/>

SELECT ?resource ?title WHERE {
?resource sioc:topic <http://www.rechercheisidore.fr/subject/SHS:HIST>.
?resource dcterms:title ?title
FILTER (regex(?resource, "10670", "i"))
} LIMIT 100

Voir le résultat de la requête

Aller, maintenant à vous ! Proposez-moi vos requêtes dans les commentaires ! L’auteur de la plus originale gagnera une carte postale d’Isidore dédicacée par l’équipe !

Bon SPARQL sur Isidore !

Stéphane.

Précédent

Le libre accès privatisé ?

Suivant

Parution « Le temps des humanités digitales »

1 Commentaire

  1. Bonjour,
    Pour faire suite à l’échange sur twitter, je me permets de préciser pour ton dernier exemple, qu’il est nécessaire aujourd’hui d’utiliser pour la propriété sioc:topic, l’URI du domaine à partir d’aurehal et non celle d’isidore.

    Voici un exemple:

    PREFIX sioc:
    PREFIX dcterms:
    PREFIX dces:

    SELECT ?resource ?title ?source WHERE {
    ?resource sioc:topic .
    ?resource dcterms:title ?title.
    ?resource dc:source ?source
    } LIMIT 100

Les commentaires sont fermés

Fièrement propulsé par WordPress & Thème par Anders Norén