ENS-LYON juin 2013 Evolution des catalogues : Métadonnées, Interopérabilité, web sémantique, FRBR et RDA Participer au Web de données … en utilisant les technologies du web sémantique. Focus sur RDF, OWL, SKOS, SPARQL
Problème :Le contenu du web est fait pour être lu par des humains, pas par des ordinateurs. Problème? : avec laccroissement du nombre de pages web, les recherches deviennent de moins en moins efficaces. on arrive aujourdhui à la limite de lefficacité des metatags. (crawlés par moteurs de recherche). Une éventuelle solution ? Consisterait rendre ces contenus compréhensibles par des machines, que les machines puissent identifier leur nature sans ambiguïté. >> dune certaine façon, donner du sens au contenu (doù « sémantique »). Mise en œuvre : il faut mettre à disposition un langage pour décrire des ressources de façon intelligibles (RDF) qui va permettre de définir des structures. RDF est plus mode de stockage des définitions, un modèle, donc Une remarque :il faut distinguer cette entreprise de lIA qui centralise les données dans une base de données, alors quavec RDF, elles peuvent être nimporte où, sans quon ait besoin de les stocker : chaque élément RDF peut être appelé par un URI. Pour éviter que les « agents » ou programmes rencontrent des situations ambiguës, (homonymies ou synonymies), il faut introduire des ontologies, qui reposent sur des classes (OWL) Des promesses : les applications reposant sur ces structures de données vont pouvoir traiter et manipuler des données sans les humains Des projets ? Pour linstant le web sémantique est mis en application dans le domaine du commerce électronique, mais cela peu à peu sétend à dautres types de données (dans le cadre de louverture des données publiques, BSN, etc.) et dautres biens de consommation (domotique par exemple). Du boulot : il faut que les documents soient décrits comme lattend le web sémantique…
événement lévénement ou comporte des propriétés qui peuvent être supportées par des web services :,,, Ces propriétés ou « sèmes » sont reliées entre elles. on pourrait ajouter et proposer un, suivi dune la aurait elle-même comme propriété obligatoire :,,,, etc.
Son outil de recherche : SPARQL Les requêtes SPARQL sinspirent de SQL (modèle simple). On peut ajouter une clause DISTINCT après SELECT ou LIMIT, OFFSET, et ORDER après WHERE des clauses : OPTIONAL UNION FILTER Ex: rapatrier le nom dune personne et éventuellement son pict Ex. Trouver les personnes qui ont un et celles qui ont un pict Impose des contraintes sur les variables (Ex. on veut trouver toutes les auteurs des publications du mois de septembre 2009) Dans la documentation SPARQL, il est fait mention dune autre syntaxe un peu différente : Turtle (pour « Terse RDF Triple Language ») Soit lensemble de données ns:. :book1 dc:title "SPARQL Tutorial". :book1 ns:price 42. :book2 dc:title "The Semantic Web". :book2 ns:price 23. Soit la requête : PREFIX dc: PREFIX ns: SELECT ?title ?price FROM WHERE { ?x dc:title ?title. OPTIONAL { ?x ns:price ?price. FILTER (?price < 30) } } Résultat :| title | price | ============================== | "The Semantic Web" | 23 | | "SPARQL Tutorial" | |
RDF-S (RDF-Schema) Permet de définir un modèle ou schéma dans un domaine dexpertise : - définition de hiérarchies de classes et de propriétés - formulation de contraintes. Comment déclarer une classe de ressource : 2 moyens 1. utiliser lattribut rdf:type en se référant au type Class <rdf:Description rdf:about=" Class"/> 2. utiliser lespace de nom rdfs à laide dune déclaration xmlns:rdfs= #Artist Dans un éditeur de graphe, la fonction AddSubclassOf permet dajouter une sous-classe #Painter à la Classe #Artist #Painter
Pourquoi passer de RDF-S à OWL ? RDF-S apparaît vite comme insuffisant, en empruntant des éléments de la logique formelle : rdfs:range définit le domaine de valeurs dune propriété quelle que soit la classe concernée Ex. ne permet pas dexprimer que les vaches ne mangent que de lherbe, alors que dautres sortes danimaux mangent aussi de la viande Pas de possibilité dexprimer que deux classes sont disjointes Ex. La classe des hommes et des femmes sont disjointes Ne permet pas de créer des classes par combinaison ensembliste dautres classes (inter, union, complément) Ex. Si lon veut construire la classe Personne comme lunion disjointe des classes Hommes et Femmes Ne permet pas de définir de restriction sur le nombre doccurrences de valeurs que peut prendre une propriété. Ex. On ne peut pas dire quune personne a exactement deux parents ne permet pas de définir certaines caractéristiques des propriétés: transitivité (ex: estPlusGrand- Que), unicité (ex: estLePèreDe), inverse (ex: mange est la propriété inverse de estMangéPar). [Paul] – a_pour_sœur [Virginie] Si les contraintes dexpressivité sont trop grandes, il faut passer à des définitions ontologiques « déportées », extérieures au schéma, qui vont uniquement gérer la complexité des relations logiques entre classes, doù OWL
Ontologies ?
Et pour les bibliothèques ?
[A propos du web sémantique] Parmi les changements que les bibliothèques vont avoir besoin de mettre en oeuvre pour y pourvoir, doit figurer la migration du catalogue public dune base de données de notices bibliographiques, autonome et isolée, vers un ensemble de données hyperliées qui peut interagir avec les ressources informationnelles du web. On pourra alors intégrer les données documentaires aux environnements numériques de travail des utilisateurs, auxquels les bibliothèques apporteront leur service. ALAs Library Technology Reports is publishing Understanding the Semantic Web: Bibliographic Data and Metadata by Karen CoyleUnderstanding the Semantic Web: Bibliographic Data and MetadataKaren Coyle
examen programme document diplôme préparé droits de prêt situation localisation droits daccès heures douverture
examen programme document diplôme préparé droits de prêt situation localisation droits daccès heures douverture
examen programme document diplôme préparé droits de prêt situation localisation droits daccès heures douverture
programme document droits daccès auteur titre éditeur mots-clés niveau « événement » niveau bibliographique œuvre manifestation
« Pourquoi sinquiéter ? » Pour quoi
##$a $bbr. 073 #0$a programming$bTexte imprimé$eWeb applications and Web services with JSP and ASP$fAlexander Nakhimovsky, Tom Myers 210 ##$aBerkeley, Calif.$cApress$dcop ##$a1 vol. (XVIII-555 p.)$cill., couv. ill. en coul.$d24 cm 225 voice$ebooks for professionals by professionals 300 ##$aLa couv. porte en plus : "Learn practical and up-to-date information on XML specifications and related technologies, including XLink, XPointer, XML Schema, RELAX NG, SOAP, WSDL, UDDI; "Find substantial examples in Java and VB/VB Script that are written to be understandable by any programmer, whatever his or her language background"; "Create Web applications and Web services that use DOM, SAX, and XSLT to process XML data, both virtual (generated in memory) and persistent (stored in files or databases) 320 ##$aIndex 410 for professionals by professionals 605 server pages$2lc 606 ##$aXML (Document markup language)$2lc 606 ##$aMicrosoft Visual BASIC$2lc 606 ##$aJavaServer pages$2lc 606 ##$aWeb sites$xDesign$2lc 606 ##$aWeb site development$2lc 606 ##$aJava (Computer program language)$2lc 606 ##$ XML (langage de balisage)$2rameau 606 ##$ JavaServer pages (logiciel)$2rameau 606 ##$ Sites Web -- Développement$2rameau 606 ##$ Fournisseurs de services applicatifs$2rameau 680 ##$aQA76.76.H94$bN355x #1$ Nakhimovsky, Alexander D.$ #1$ Myers, Thomas J. ( )$ #0 $bPPT$gAACR2 801 #1 $bPPT$gAACR2
##$a $bbr. 073 #0$a programming$bTexte imprimé$eWeb applications and Web services with JSP and ASP$fAlexander Nakhimovsky, Tom Myers 210 ##$aBerkeley, Calif.$cApress$dcop ##$a1 vol. (XVIII-555 p.)$cill., couv. ill. en coul.$d24 cm 225 voice$ebooks for professionals by professionals 300 ##$aLa couv. porte en plus : "Learn practical and up-to-date information on XML specifications and related technologies, including XLink, XPointer, XML Schema, RELAX NG, SOAP, WSDL, UDDI; "Find substantial examples in Java and VB/VB Script that are written to be understandable by any programmer, whatever his or her language background"; "Create Web applications and Web services that use DOM, SAX, and XSLT to process XML data, both virtual (generated in memory) and persistent (stored in files or databases) 320 ##$aIndex 410 for professionals by professionals 605 server pages$2lc 606 ##$aXML (Document markup language)$2lc 606 ##$aMicrosoft Visual BASIC$2lc 606 ##$aJavaServer pages$2lc 606 ##$aWeb sites$xDesign$2lc 606 ##$aWeb site development$2lc 606 ##$aJava (Computer program language)$2lc 606 ##$ XML (langage de balisage)$2rameau 606 ##$ JavaServer pages (logiciel)$2rameau 606 ##$ Sites Web -- Développement$2rameau 606 ##$ Fournisseurs de services applicatifs$2rameau 680 ##$aQA76.76.H94$bN355x #1$ Nakhimovsky, Alexander D.$ #1$ Myers, Thomas J. ( )$ #0 $bPPT$gAACR2 801 #1 $bPPT$gAACR2
RDF et SPARQL RDF est un modèle, plus quun format : il permet une description « étoilée » dun objet ou dune ressource et ménage une relation privilégiée entre des sous-éléments. Un document structuré en RDF est un « triplet », une association de 3 éléments : - sujet = représente la ressource décrite (URI) - prédicat = une propriété applicable à la ressource (URI) - objet = la valeur du prédicat (URI) -On parle aussi de représentation par graphe (ou graphe RDF) Pour décrire un site web, par exemple « European Society for Oceanists », il faut isoler : - le sujet (la ressource) : - le prédicat (propriété) : - lobjet : « European Society for Oceanists » Ce triplet permet didentifier le sème suivant : (voici) un site web dont la localisation est et dont le titre est ; « European Society for Oceanists » RDF peut être exprimé avec la théorie des ensemble ou la théorie des modèles (formation darcs) et ne gère pas forcément du XML, mais W3C la orienté comme tel dans son exploitation pour le web.
Les requêtes SPARQL sinspirent de SQL (modèle simple). On peut ajouter une clause DISTINCT après SELECT ou LIMIT, OFFSET, et ORDER après WHERE des clauses : OPTIONAL UNION FILTER Ex: rapatrier le nom dune personne et éventuellement son pict Ex. Trouver les personnes qui ont un et celles qui ont un pict Impose des contraintes sur les variables (Ex. on veut trouver toutes les auteurs des publications du mois de septembre 2009) Dans la documentation SPARQL, il est fait mention dune autre syntaxe un peu différente : Turtle (pour « Terse RDF Triple Language) Soit lensemble de données ns:. :book1 dc:title "SPARQL Tutorial". :book1 ns:price 42. :book2 dc:title "The Semantic Web". :book2 ns:price 23. Soit la requête : PREFIX dc: PREFIX ns: SELECT ?title ?price FROM WHERE { ?x dc:title ?title. OPTIONAL { ?x ns:price ?price. FILTER (?price < 30) } } Résultat :| title | price | ============================== | "The Semantic Web" | 23 | | "SPARQL Tutorial" | |
European Society for Oceanists ESfO Directory Membership Oceanography Oceans Digital humanities Liste des assertions utilisées dans ce cas : TITRE European Society for Oceanists AUTEUR = ESfO D.M. MOT SUJET = Oceanography MOT SUJET = Oceans « Notice » RDF :
Requêtes sur des personnes Pour définir des personnes, on peut utiliser plusieurs balises : title, nickname, gender, etc. Une personne est identifiée par un fichier FOAF, qui peut être placé nimporte où sur le Web, et qui contient, dans des champs normés et en XML, des informations la décrivant. Chacun peut choisir le nombre et la profondeur des informations le concernant, parmi : le nom, ladresse , ladresse du site Web et/ou du blog, les adresses des photos, les études suivies, les centres dintérêt, les, etc. (plusieurs dizaines de champs possibles, répartis en cinq grandes catégories : - les données de base (nom, prénom, etc.), - les informations personnelles (centres dintérêt, connaissances...), - les comptes en lignes ( , messageries instantanées...), - les documents et images (textes produits par la personne, photos personnelles...), - les groupes et projets. Pour la dernière il est possible dexprimer le rattachement dune personne à une organisation (association, entreprise) mais surtout, plus généralement, à un groupe quelconque. Il peut sagir dun groupe structuré (parti politique), informel, ou simplement dune communauté en ligne. Les champs FOAF sont conçus pour exprimer de façon détaillée les caractéristiques dun individu et « ses liens » avec dautres éléments ou entités du réseau (documents, images, ou dautres individus. Présente un intérêt pour le web sémantique et permet de répondre à des questions complexes du type : y-a-t- il quelquun qui travaille dans un BU, qui catalogue des ouvrages anciens, qui a des connaissances expertes en paléographie et qui fasse partie dun groupe de normalisation ?
FOAF permet la fusion et le rebond sur une base de connaissance qui peut senrichir très aisément et rapidement. (« cit. F. Lapique) : « Supposons que Pierre crée son fichier FOAF, et quil ne dispose pas de photos de lui-même. Lun de ses amis, Paul, a lui aussi un fichier FOAF, dans lequel il indique ladresse dune photo le montrant en compagnie de Pierre. Il est alors très facile, de façon automatisée, de fusionner les deux fichiers FOAF pour que la question « Où peut-on consulter une photo de Pierre ? » fournisse une réponse, en renvoyant sur la photo présentant Pierre et Paul ». Même si lon ne dispose pas dun annuaire centralisé ou dun fichier complet dautorités, il est possible de lier des personnes, de lier leurs attributs, comme si toutes ces entrées figuraient dans une même base de données.
Dave Beckett Journalblog by Dave Beckett Soit une notice RDF pour le graphe foaf:blogger Je cherche lURL du Blog de Dave Beckett PREFIX foaf: SELECT ?url FROM WHERE { ?contributor foaf:name "Dave Beckett". ?contributor foaf:weblog ?url. } | url | ============================= |
Je veux un service qui mindique les 10 derniers articles des personnes que Pierre Gille connaît : PREFIX foaf: PREFIX rss: PREFIX dc: SELECT ?title ?known_name ?link FROM FROM NAMED WHERE { GRAPH { ?me foaf:name "Pierre Gille". ?me foaf:knows ?known_person. ?known_person foaf:name ?known_name. }. ?item dc:creator ?known_name. ?item rss:title ?title. ?item rss:link ?link. ?item dc:date ?date. } ORDER BY DESC(?date) LIMIT on cherche dans le dataset les contributions de ses connaissances (on précise que lon veut un résultat au format XML) 1. On cherche dans le graphe profil.rdf, : 3. On classe les résultats par date pour avoir les derniers, que lon limite à 10 Si les personnes trouvées ont indiqué leur localisation (eg: ), on peut imaginer des possibilités encore plus étendues avec lintégration de lAPI Google Maps ! Et répondre à des questions encore plus complexes sous forme de service : Je cherche la localisation sur une carte des bibliothèques dépositaires des 3 derniers articles produits par les contributeurs de tel colloque auquel a participé telle personne…
SPARQL : les formes de recherche SELECT Retourne toutes ou une partie des informations qui correspondent à une requête formulée CONSTRUCT Retourne un graphe RDFconstruit par substitution de variables dans un modèles à trois dimensions (triplet) : _:a foaf:name Alice _:a foaf:mbox CONSTRUCT { vcard:FN ?name } WHERE { ?x foaf:name ?name } Crée des propriétés vcard à partir des informations FOAF: => vcard FN Alice ASK Retourne un indicateur booléen quune requête ait des réponses ou pas ASK { ?x foaf:name Alice} Sil en existe une, la réponse sera yes La réponse est enveloppée dans le code : DESCRIBE Retourne un graphe RDF qui décrit la ressource trouvée : fonction informative <?xml version=1.0 true
Le requêtage SPARQL sinspire de SQL (modèle simple). On peut ajouter une clause DISTINCT après SELECT ou LIMIT, OFFSET, et ORDER après WHERE Clauses : OPTIONAL UNION FILTER Ex: rapatrier le nom dune personne et éventuellement son pict Ex. Trouver les personnes qui ont un et celles qui ont un pict Impose des contraintes sur les variables (Ex. on veut trouver toutes les auteurs des publications du mois de septembre 2009) Dans la documentation SPARQL, il est fait mention dune autre syntaxe un peu différente : Turtle (pour « Terse RDF Triple Language) Soit lensemble de données ns:. :book1 dc:title "SPARQL Tutorial". :book1 ns:price 42. :book2 dc:title "The Semantic Web". :book2 ns:price 23. Soit la requête : PREFIX dc: PREFIX ns: SELECT ?title ?price FROM WHERE { ?x dc:title ?title. OPTIONAL { ?x ns:price ?price. FILTER (?price < 30) } } Résultat : | title | price | ============================== | "The Semantic Web" | 23 | | "SPARQL Tutorial" | |
Types dapplications concrètes Informations issues de DBPedia.org Récemment j'ai déménagé à Tours et… (Code source) By Thomas Francart Voir aussi :
Dbpedia.org Propriétés (interrogeables en SPARQL) Données liées : valeurs Se présente comme Une base de données Encyclopédique (mise à jour par les collectivités)
ISIDORE => Isidore propose un éditeur de requêtes SPARQL qui pointe vers son entrepôt RDF. Ici, une requête qui donne un aperçu des concepts disponibles.
Avec Twinkle : a sources:Endpoint ; sources:defaultGraph " ; rdfs:label "DBpedia.org". a sources:Endpoint ; rdfs:label "GovTrack.us". a sources:Endpoint ; rdfs:label "Reyvu.com". a sources:Endpoint ; rdfs:label "Isidore.fr". Définition des Endpoint dans $/etc/config.n3
Les collections disidore : (classées par ordre alphabétique de description et limitées à 300)
Données gouvernementales Données culturelles Données scientifiques Données environnementales & économiques Langage d'interrogation SPARQL pour RDF Format XML des résultats d'interrogation SPARQL Protocole SPARQL pour RDF Format JSON (Java Script Object Notation) des résultats d'interrogation SPARQL ( ) Nouveau mode… … de curation de contenu. La recherche sur le web se fait comme dans une application, dont les données sont contenus dans dimmenses réservoirs liés, comme dans une base de données locale SPARQL devient un point dentrée vers un niveau encyclopédique qui fournirt des possibilités de nvaigation entre l Les ources et à linterrieur des sources, entre les notions (découverte, sérendipité) Plan douverture des données publiques … de représentation du web : le rapport à linformation se trouve profondément modifié. Elle est structurée, intelligente et tournée vers les usagers (compréhension des modèles cognitifs et des modèles de recherche dinformation (RI) SPARQL EndPoint (« extrémité » ou handler), à la jonction entre linterface dinterrogation et la base de connaissance, permet dappliquer des requêtes.
Des applications au domaine universitaire exemple darticulation de données bibliographiques avec des données Pédagogique ou encyclopédiques
Des outils Léditeur oxygen permet une représentation « hr » des données Virtuoso (SPARQL), e.g. : un éditeur de requêtes accessiblehttp://dbpedia.org/sparql sur le web, plus léger à utiliser que twinkle, mais qui limite lexploitation des données. Version « Sindice » de Virtuoso : (cité sur Puktokomo) : un testeur dentrepôts RDF qui fournit des données sur Les Endpoint, les conditions dutilisations, les indices de qualité, etc. De nombreux tutoriels sur le web, comme la présentation de Gautier Poupeau (Cf. INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE, Le document numérique à lheure du web de données: séminaire INRIA Carnac, 1er - 5 octobre 2012, Paris, ADBS éditions, 2012.) pour aller plus loin : ZOTERO : gestionnaire de références bibliographiques (ex. diapo suivante) qui permet la constitution de réservoirs locaux en rdf. Twinkle peut ensuite faire pointer les recherches SPARQL sur un fichier structuré Des perspective avec la présentation des données du SUDOC en RDF
Des outils : export dune notices en RDF à partir de zotero