Aide sur l'utilisation applicative des données

Introduction

Les données RDF de l'Insee peuvent être utilisées dans le cadre d'applications extérieures. Pour une utilisation intensive, il est recommandé de télécharger les exports RDF/Turtle qui sont mis à disposition sur les différentes pages thématiques de ce site, et de les charger dans une base RDF locale comme OpenRDF Sesame ou Apache Jena TDB.

Pour une utilisation plus ponctuelle, il est possible d'utiliser directement les données mises en ligne par l'INSEE, au travers de requêtes HTTP. La plate-forme Datalift de publication des données prend en charge les mécanismes standard de négociation de contenu afin de servir les données au format attendu par le client HTTP. Outre les formats HTML requis par les navigateurs, de nombreux formats d'utilisation applicative plus aisée sont supportés, suivant les types de requêtes, notamment (entre parenthèses, des valeurs correspondantes de l'en-tête HTTP 'Accept') :

Si aucune négociation de contenu n'est effectuée (en-tête 'Accept' absent de la requête HTTP), le format RDF/XML est renvoyé par défaut.

Types de requêtes HTTP

On peut mentionner deux types de requêtes HTTP, la seconde étant en fait une forme simplifiée de la première :

Dans le premier cas, une requête SPARQL est passée comme valeur du paramètre 'query' dans une requête GET sur le point d'entrée SPARQL. La façon habituelle d'opérer est d'inclure le paramètre dans l'URI sur laquelle se fait la requête HTTP. Cet URI a donc pour forme :

http://rdf.insee.fr/sparql?query=[requête SPARQL URL-encodée]

Par exemple pour la requête SPARQL SELECT * WHERE { ?s ?p "42" } :

http://rdf.insee.fr/sparql?query=SELECT%20*%20WHERE%20%7B%20?s%20?p%20%2242%22%20%7D

Les résultats de la requête SPARQL sont retournés dans le contenu de la réponse HTTP.

Il est à noter que le point d'accès SPARQL supporte la syntaxe SPARQL 1.1, mais seulement en lecture : toute requête de mise à jour des données sera donc rejetée.

Dans le cas du déréférencement d'URI, la requête HTTP est faite directement sur l'URI de la ressource cherchée, par exemple :

http://id.insee.fr/geo/departement/42

La plate-forme Datalift renvoie dans ce cas une description générique de la ressource, c'est-à-dire la liste des triplets RDF dans lesquels elle intervient comme sujet ou objet : l'opération est en fait équivalente à la soumission d'une requête SPARQL de type DESCRIBE sur l'URI de la ressource. Là encore, la négociation de contenu peut être utilisée pour obtenir les triplets au format souhaité.

Exemples

Javascript

On trouvera ici un exemple très simple de page web permettant de rechercher un code dans la Nomenclature d'activités française (NAF) et d'obtenir le libellé correspondant. Le langage utilisé est dans ce cas Javascript, et le format de réponse demandé est donc JSON. Ce dernier permet une programmation extrêmement compacte ; les instructions essentielles sont :

var code = document.getElementById('code').value.trim().toUpperCase();
var query = "prefix skos: <http://www.w3.org/2004/02/skos/core#> select ?libelle from <http://rdf.insee.fr/graphes/codes/nafr2> ";
query += "where {?s skos:notation \"" + code + "\" . ?s skos:prefLabel ?libelle filter(lang(?libelle) = 'fr')}";

var url = "http://rdf.insee.fr/sparql?query=" + encodeURIComponent(query);
$.getJSON(url).success(function(data) {
   $('#resultat').html("<p>" + code + " - " + data.results.bindings[0].libelle.value + "</p>");
})

La structure JSON des résultats de requêtes SPARQL est spécifiée dans cette note du W3C.

Python

Ce script Python montre comment exécuter une requête SPARQL, en l'occurrence pour obtenir la liste des trois départements les moins peuplés en 2010. Là aussi, c'est le format JSON qui est utilisé pour la réponse. Ce script est disponible pour la version 2.7 et pour la version 3.3 de Python.

Vos contributions

Pour signaler vos applications utilisant les données RDF de l'Insee et contribuer à cette page d'exemples, envoyez un message à publication-rdf@insee.fr.