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'
) :
application/rdf+xml
, application/xml
,
text/xml
),
application/json
, application/sparql-results+json
),text/turtle
, application/x-turtle
),text/n3
, text/rdf+n3
, application/n3
),
text/csv
, application/csv
).
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.
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é.
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.
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.
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.