Étiquette : isidore

Exprimer simplement les métadonnées d’une page web avec RDFa

Comment exprimer des métadonnées d’une page web très simplement en utilisant la syntaxe RDFa ? Prenons exemple un billet de blog « propulsé » par WordPress. S’il existe des plugins pour cela, l’obsolescence de ces derniers peut rendre difficile leur maintien dans le temps. Autre solution, implémenter RDFa dans le code HTML du thème WordPress que l’on aura choisi. Pour ce que cela soit facile et « gérable » dans le temps, le plus simple et d’utiliser l’entête HTML <head> afin d’y placer des balises <meta> qui contiendront les métadonnées. Exprimer des métadonnées selon le modèle RDF via la syntaxe RDFa permet à des machines (principalement des moteurs de recherche) de mieux traiter l’information car elle devient plus explicite : pour une machine, une chaine de caractère peut être un titre ou un résumé, si vous ne lui dites pas que c’est un titre ou que c’est un résumé elle ne le devinera pas. A minima, il est donc possible d’utiliser les balises <meta> pour définir une structure RDF offrant la possibilité de structurer les métadonnées minimales par exemple avec le vocabulaire documentaire Dublin Core Element Set (plus connu en France sous appellation « Dublin Core simple »).

Comment faire ?

En premier, il faut indiquer dans le DOCTYPE de la page web, qu’elle va contenir des informations qui vont utiliser le modèle RDF, ainsi, le DOCTYPE sera :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

Dans la balise <html>, nous allons indiquer les adresses des vocabulaires documentaires – par l’intermédiaire de namespace XML – qui vont nous servir à typer les informations, dans notre exemple, nous allons utiliser le Dublin Core simple et le Dublin Core Terms (DC Terms) :

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
xmlns:dc="http://purl.org/dc/elements/1.1/" 
xmlns:dcterms="http://purl.org/dc/terms/">

Il serait possible, pour encoder plus d’information, d’utiliser plus de vocabulaires documentaires :

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:dc="http://purl.org/dc/elements/1.1/" 
xmlns:dcterms="http://purl.org/dc/terms/" 
xmlns:skos="http://www.w3.org/2004/02/skos/core#" 
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
xmlns:foaf="http://xmlns.com/foaf/0.1/" 
xmlns:cc="http://creativecommons.org/ns#">

Ici, foaf nous servirait à encoder des informations relatives à une personne ou un objet décrit par les métadonnées, cc nous permettrait de signaler quelle licence creative commons s’appliquerait à ce contenu. Après avoir déclaré des les vocabulaires documentaires que nous allons utiliser, nous allons ajouter la structure RDFa au travers de balises <meta> dans l’entête <head> de la page HTML.

Dans un premier temps, à l’aide d’une balise <link>, nous allons définir l’objet numérique auquel les informations encodées en RDF seront rattachées :

<link rel="dc:identifier" href="http://monblog.com/monbillet.html" />

Cette balise définie donc un « conteneur » pour les informations que nous allons indiquer à l’aide des balises <meta>. Ce conteneur est identifié par une URI qui se trouve être là une URL, c’est à dire l’adresse de la page dans le web.

Maintenant, nous enchainons les balises <meta> qui définissent donc un ensemble de métadonnées, c’est à dire dans notre cas, des informations descriptives de la page web :

<meta property="dc:title" content="Le titre de mon billet" />
<meta property="dc:creator" content="Stéphane Pouyllau" />
<meta property="dcterms:created" content="2011-01-27" /> 
<meta property="dcterms:abstract" content="Un résumé descriptif du contenu de ma page" xml:lang="fr" /> 
<meta property="dc:subject" content="mot-clé 3" /> 
<meta property="dc:subject" content="mot-clé 2" /> 
<meta property="dc:type" content="billet" />
<meta property="dc:format" content="text/html" />
<meta property="dc:relation" content="Un lien vers une page web complémentaire" />

Il s’agit là d’un exemple minimal : un billet de blog utilisant le Dublin Core simple et peu descriptif sur le plan documentaire. Suivant la nature du contenu de la page web, il sera bien sur possible d’être plus précis, plus fin et plus complet dans les informations encodées. Le DC Terms permettra avec :

<meta property="dcterms:bibliographicCitation" content="Mettre ici une référence bibliographique" />

de proposer une forme pour une référence bibliographique dans le cas d’une page web décrivant un ouvrage par exemple. Il serait possible de passer l’ensemble du texte d’une page web à l’aide du vocabulaire SIOC en utilisant la propriété sioc:content. Il est possible également de relier des pages web entre elles (pour définir un corpus d’auteurs par exemple) en utilisant dans le vocabulaire DC Terms la propriété dcterms:isPartOf.

Il s’agit là d’un court billet présentant une façon très simple d’implémenter des métadonnées descriptives utilisant le formalisme RDF via une implémentation directe dans le code HTML, ce que l’on appelle le RDFa (« a » pour « in attributes« ). Cette implémentation, même minimale, permet d’être indexé par Isidore par exemple et d’indiquer des informations qui seront utilisées pour une meilleure indexation des données et qui pourront être ré-exposées dans la base de données RDF de ce dernier. La plateforme hypotheses.org (éditée par Open Edition) utilise cette implémentation d’RDFa. Pour cela, il faut simplement construire un sitemap (carte des liens du site web) au format xml pointant toutes les adresses URL des pages contenant du RDFa et que l’on souhaite voir indexer par Isidore.

Stéphane.

Explorons les données d’ISIDORE avec SPARQL #1

Depuis quelques semaines, j’ai pris la direction d’une unité mixte de service qui anime la très grande infrastructure de recherche Corpus-IR. Après Adonis et tout en poursuivant un peu l’animation d’Isidore, je reviens avec plaisir dans les corpus de données en SHS. Cela dit, l’avenir d’un projet tel qu’Isidore est très directement lié aux corpus et bases de données qui pourraient être indexés et annotés par Isidore. Les consortiums de Corpus-IR sont déjà au travail et proposeront des corpus de données prochainement. J’espère qu’ils seront structurés avec du RDF et voir même, pour les corpus diffusés sur le web, avec du RDFa.

Ayant donc un peu moins de temps pour écrire dans ce blog, je profite tout de même de quelques minutes pour vous inviter à explorer les possibilités du SPARQL endpoint d’Isidore en lançant ici une petite série de billets. Pour ouvrir la série, une requête permettant de lister les métadonnées des photos et images de MédiHAL géolocalisées sur territoire (je prends ici quelques photos de Djibouti) appartenant au référentiel géographique utilisé dans Isidore, Geonames.org :

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 ?id ?titre ?uri_pays 
?nom_auteur ?prenom_auteur ?coord_geo where { 
<http://www.rechercheisidore.fr/resource/10670/2.hlil75> ?p ?o. 
?o dcterms:identifier ?id. 
?o dcterms:title ?titre. 
?o dcterms:creator ?creator. 
?creator foaf:familyName ?nom_auteur. 
?creator foaf:givenName ?prenom_auteur. 
?o dcterms:coverage ?uri_pays. 
?o dces:coverage ?coord_geo 
FILTER (regex(?id, "10670") 
&& regex(?uri_pays, "223816") 
&& regex(?coord_geo, "[0-9]")) 
} LIMIT 500

En posant cette requête SPARQL dans l’interface d’interrogation SPARQL d’Isidore, il est possible de récupérer les métadonnées, en fait les informations contenues dans les métadonnées, sous la forme de triplets RDF. Ces triplets RDF, base du web de données, peuvent donc être redondant si l’information fait appel aux même étiquettes d’un même vocabulaire (cf ex. ci-dessous). Le résultat de la requête est présenté dans différents formats (RDF/XML ; HTML ; json…).

A partir de là, de nombreuses petites applications web sont possibles, elle sont souvent nommées « mashup » car elles marient, grâce au liant que permet l’utilisation d’URIs à base d’http, plusieurs informations présentes dans le web de données.

Variantes… avec les enrichissements proposés par Isidore et issus des différents traitements effectués :

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 ?id ?titre ?uri_pays ?uri_enrichissements_ISIDORE 
?nom_auteur ?prenom_auteur ?coord_geo where { 
<http://www.rechercheisidore.fr/resource/10670/2.hlil75> ?p ?o. 
?o dcterms:identifier ?id. 
?o dcterms:title ?titre.
?o dcterms:subject ?uri_enrichissements_ISIDORE.
?o dcterms:creator ?creator. 
?creator foaf:familyName ?nom_auteur. 
?creator foaf:givenName ?prenom_auteur. 
?o dcterms:coverage ?uri_pays. 
?o dces:coverage ?coord_geo 
FILTER (regex(?id, "10670") 
&& regex(?uri_pays, "223816") 
&& regex(?coord_geo, "[0-9]")) 
} LIMIT 500

Ou encore avec les mots-clés d’origine et les enrichissements :

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 ?id ?titre ?uri_pays ?mots_cles ?uri_enrichissements_ISIDORE 
?nom_auteur ?prenom_auteur ?coord_geo where { 
<http://www.rechercheisidore.fr/resource/10670/2.hlil75> ?p ?o. 
?o dcterms:identifier ?id. 
?o dcterms:title ?titre.
?o dces:subject ?mots_cles.
?o dcterms:subject ?uri_enrichissements_ISIDORE.
?o dcterms:creator ?creator. 
?creator foaf:familyName ?nom_auteur. 
?creator foaf:givenName ?prenom_auteur. 
?o dcterms:coverage ?uri_pays. 
?o dces:coverage ?coord_geo 
FILTER (regex(?id, "10670") 
&& regex(?uri_pays, "223816") 
&& regex(?coord_geo, "[0-9]")) 
} LIMIT 500

La « vue » des triplets RDF d’une ressource est bien sur directement possible :

SELECT ?graph ?predicat ?object WHERE { 
GRAPH ?graph { <http://www.rechercheisidore.fr/resource/10670/1.f2v6vz> ?predicat ?object. } 
}

Bon, je m’arrête là pour ce premier petit billet qui n’a pas d’autre vocation que de présenter des exemples de requêtes SPARQL sur des données SHS afin de mettre un peu l’eau à la bouche aux développeurs web du domaine qui pourraient ainsi avoir des idées de mashup pour leurs productions. La prochaine fois, je présenterai comment est formé de la requête.

Stéphane.

ISIDORE : valorisons les données des sciences humaines et sociales

Aujourd’hui, j’ai le plaisir de participer au lancement officiel d’ISIDORE, la plateforme de recherche dans les données numériques de la recherche en sciences humaines et sociales. Réalisée par le très grand équipement Adonis du CNRS, ISIDORE est une production collective qui a associé depuis plus de deux ans des acteurs publics et des acteurs privés au sein d’un marché de réalisation. Public tout d’abord : ISIDORE est un projet qui est la matérialisation concrète du projet fondateur du TGE Adonis : donner accès à de l’information, ouvrir des données, rendre visible la production des chercheurs et les données qu’ils utilisent pour travailler. Au sein du TGE Adonis un grand nombre de collègues ont travaillé pour ce projet, ils ont défini le projet, l’ont argumenté, le réalise aujourd’hui : c’est un travail d’équipe, long, complexe, parfois périlleux car il faut faire acte de pédagogie et de pragmatisme technique. Je vous invite à consulter ISIDORE, à le critiquer pour le faire évoluer car un outil tel que celui-ci doit évoluer en permanence. Je veux simplement souligner le très grand professionnalisme des collègues, partenaires industriels, qui ont partagé avec moi l’ensemble de la conception/réalisation de ce projet depuis mon arrivée au TGE en avril 2009 : Yannick, Benoit, Ariane, Nadine, Jean-Luc, puis Richard et Jean-Luc, Sophie, Shadia, L’équipe de la maitrise d’œuvre avec un immense respect pour Laurent tout d’abord, puis Daniel, Loic, Philippe, enfin tous les collègues du CNRS qui ont participé, soutenu, critiqué, aidé. Coté prestataires, je souligne le très grand professionnalisme des équipes ont travaillé avec nous et bien sur merci à Bruno, Jean-Louis, Fabrice et Gautier sans qui ISIDORE ne serait pas ISIDORE. Merci à tous !!

Stéphane.

Les données numériques des SHS entrent dans le web de données

Avec l’ouverture d’isidore (réalisée par le très grand équipement Adonis du CNRS) les données numériques des sciences humaines et sociales entre dans le web de données et vont bientôt rejoindre le linking open data cloud diagram ou « Lod » maintenu par Richard Cyganiak (DERI, NUI Galway) and Anja Jentzsch (Freie Universität Berlin), en tous cas, je l’espère.

Isidore est une plateforme de recherche permettant la recherche d’information dans les données numériques des SHS, quelles soient sources pour faire de la recherche ou bien publications des résultats de la recherche. J’ai le plaisir de co-diriger ce projet avec Jean-Luc Minel dans le cadre de l’équipe du Adonis, le très grand équipement du Centre national de la recherche scientifique.

Je profite de ce petit billet « auto-promotionnel » pour remercier Gautier Poupeau (alias Got) sans qui ce projet n’aurait pas pu être conçu et réalisé ainsi que toute l’équipe du centre pour la communication scientifique directe (Laurent Capelli, Philippe Correia, Loic Comparet, Yannick Barborini et Daniel Charnay) qui participe à ce beau projet.

Isidore moissonne des métadonnées et des données selon les protocoles OAI-PMH, des signalements d’actualités via RSS et Atom, des données structurées selon RDFa et peut se connecter à des catalogues de bibliothèques SRU/SRW (z3950). Isidore enrichit ces données en les croisant, en les qualifiant avec des thésaurii, des référentiels, des listes d’auteurs et les ré-exposent selon les principes du linked data. Pour utiliser ces données, un site web a été créé : www.rechercheisidore.fr. Vous pouvez donc interroger les articles de Revues.org, Cairn, Persée, les ouvrages, textes, images de Gallica, HALSHS, MédiHAL avec un seul formulaire et avec des liens entre toutes ces données.

Dans isidore, les métadonnées sont transformées en RDF, ainsi les données des shs entrent dans le web de données.

Mais nous sommes en version béta, alors le travail continu.

Stéphane.

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