La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cycle T. – 19-23 avril 2010. – ENSSIB, Villeurbanne Gestion informatisée des bibliothèques La recherche fédérée et les.

Présentations similaires


Présentation au sujet: "Cycle T. – 19-23 avril 2010. – ENSSIB, Villeurbanne Gestion informatisée des bibliothèques La recherche fédérée et les."— Transcription de la présentation:

1 Cycle T. – avril – ENSSIB, Villeurbanne Gestion informatisée des bibliothèques La recherche fédérée et les protocoles en usage dans les bibliothèques pour un dialogue entre applications

2 Une nouvelle donne technologique

3 Problèmes dintégration des outils de référencement dans les systèmes dinformation Catalogue Catalogue collectif Périodiques en ligne Thèses en ligne e-books Ressources pédagogiques Ressources multimédias Bases de signets Enregistrements sonores Catalogues de bibliothèques associées ou partenaires Archives ouvertes

4 Sources hétérogènes Imprimés : appareil de description bibliographique évolué (+) Documents électroniques : contrainte éditoriale forte Appareil de description bibliographique faible (-) Cédéroms : type hybride (« semi-dématérialisé ») car il reste un objet de prêt ou de circulation E-books Thèses en ligne (pdf, html, xml, …) Ressources pédagogiques ou informationnelles produites par une institution Périodiques en ligne Images fixes/images animées Documents sonores (musicaux/non musicaux) Ces ressources électroniques sont prisonnières de plates-formes ce qui les range aussi, dune certaine façon dans le web invisible, mais qui ne communique pas pour autant avec les OPAC…

5 Passage dans la dénomination des bibliothécaires, du terme de « LECTEUR » au terme d « USAGER » Marginalisation de limprimé avec les collections numériques ; ce qui peut-être vécu comme un paradoxe par la profession car limprimé mobilise la plus grande partie du temps/homme disponible alors que le volume des collections numériques est bien supérieur : Exemple dun bibliothèques de recherche : 700 titres de périodiques papier conservés sur une période de 5 ans. Service de 4 personnes titres de périodiques électroniques dont des archives supérieures à 20 ans. Service de 0.5 personne Soit : 5% du nombre de titres pour limprimé - LOPAC reste un réservoir dinformations sur limprimé - Le « système dinformation » ne permet pas toujours de naviguer dune source à lautre… Problématiques émergentes Ces ressources restent invisibles quand elles sont fournies sous forme de flux, prisonnières de bouquets qui ne se manifestent pas dans un OPAC

6 Sur le parcours de lusager… rq1rq2rq3rq4rq5rq6rq7rq8rq9 OPAC Catalogue local Catalogue collectif Ressource électroniques Cédéroms Thèses en ligne Z39-50 Périodiques en ligne Ressource pédagogiques Ori-OAI Images Documents sonores Bouquet 1Bouquet 2Bouquet 3 E-books

7 Alors que lon aimerait avoir : OPAC Catalogue local Catalogue collectif Ressource électroniques Cédéroms Thèses en ligne Z39-50 E-books Périodiques en ligne Ressource pédagogiques Images Documents sonores Bouquet 1Bouquet 2Bouquet 3 Point dentrée unique

8 Alors que lon aimerait avoir : OPAC Catalogue local Catalogue collectif Ressource électroniques Cédéroms Thèses en ligne Z39-50 Périodiques en ligne Ressource pédagogiques Images Documents sonores Bouquet 1Bouquet 2Bouquet 3 Point dentrée unique E-books

9 Résolveurs de liens Base de données bibliographiques Résolveur de liens SID Déclaration des bouquets par un tiers Affichage dicones SFX, EBSCO,…

10 Schémas de mise en œuvre de linteropérabilité (1) Avec une bibliothèque JAVA ou php, il est possible de générer un fichier iso 2709 à partir dun fichier.csv Import de notices UNM Via iso 2709 (SUDOC, Moccam,BnF, Zebris…) OPAC Import de notices dautorité iso2709 Imports de notices de documents électroniques Iso 2709 Problème : les états de collections : leur mise à jour est difficile grande mouvance dans les titres. peu de visibilité sur les titres, pour une institution : il est difficile dobtenir une liste précise et à jour. BDD Un exemple à ne pas suivre !

11 IGP Catalogue dimprimés (oracle/Mysql) Exemple : lutilisateur peut choisir ses sources à laide de cases à cocher : cest une recherche fédérée OPAC Catalogue de périodiques en ligne (Mysql) Catalogue de- books (Mysql) connecteurs Ori-OAI Ressources pédagogiques Thèses électroniques Interopérabilité de niveau 1 Interopérabilité de niveau 2 Recherche frédérée Schémas de mise en œuvre de linteropérabilité (2)

12 Pour conclure… Leffort de construction de linteropérabilité est indispensable, sinon nous « perdons » lusager… = nous légarons un peu plus = nous le voyons préférer des moteurs commerciaux Il est possible de se positionner sur le marché en tant quinstitution (=source fiable ) grâce à des WebServices qui « déportent » nos bases de données dans dautres environnements (une occasion à saisir ?)

13 Systèmes documentaires classiquesInternet Taille de la base limitée – croissance linéaire avec le temps Milliers de Go - croissance exponentielle Informations secondairesBases externes sur lesquelles aucune action nest possible, en particulier pour lindexation Bases internes : responsabilité de constitution, de mise à jour et dindexation de la base Bases externes sur lesquelles aucune action nest possible, en particulier pour lindexation Homogénéité des sources et des informations : la base recouvre un ou plusieurs domaines bien circonscrits avec une approche précise (commerciale, scientifique ou autre) Hétérogénéité des sources et des informations : on trouve tout sur les réseaux – plus de domaines restreints, toutes les approches (scientifique, commerciale, vulgarisation, etc.) Tableau comparatif des caractéristiques des systèmes documentaires « classiques » et des plates-formes disponibles sur Internet Pour les professionnels de linfo-doc, en particuliers pour les administrateurs de systèmes, ces oppositions peuvent être résumées ainsi :

14 Systèmes documentaires classiquesInternet Format unique de présentation des donnéesFormats multiples en évolution incessante Bases structurées (champ de catalogage renseigné) Sites web non structurés – utilisation minimale des balises méta Existence dun langage dindexation (thésaurus) adapté au domaine et à la base Pas de langage dindexation : pas de thésaurus couvrant lensemble des domaines de connaissance – trop dacteurs différents interviennent Indexation avec un thésaurus adaptéIndexation des moteurs de recherche sur le web de très bas niveau (0 ou 0+ selon les sites) Indexation de la totalité des corpusIndexation dune partie. Il existe 2 formes de sites : web accessible (visible) et web invisible (pages générées par une requête, pages dont on a refusé quelles soient référencées, pages intranet protégées par un firewall) Informations vérifiées (sources connues)Informations non validées Monolinguisme, au moins des index ou descriptions Multilinguismes Outils dinterrogation unique, adapté à la base et au langage utilisé Mélange des modes de recherche : répertoires, mots, navigation Souci de la cohérence des informations (travail de documentaliste/bibliothécaire) Alimentation réalisée par un webmaster, pas forcément les mêmes problématiques (souci de présentation, de diffusion, dimpact des informations (1)Abderrazak Mkadmi, Imad Saleh, Bibliothèque numérique et recherche dinformations

15 Problème majeur : chacune des sources qui gravitent autour du catalogue disposent de leurs propres outils de recherche, de leurs propres index, de leur propre appareil de description Exemples de recherche dans des sources hétérogènes : Je cherche des articles sur les langages de programmation informatique à lusage des linguistes, en français ou en anglais (les deux langues que je parle), publiés ces 10 dernières années FRANCIS : linguistique.df. or linguistique.pb. or linguistique.cf. or linguistique.hw. or linguistique.in. or linguistique.ti. or linguistique.ca. or linguistique.tt. or linguistique.if. or linguistique.ar. or linguistique.da. or linguistique.ab. or linguistique.ts. or linguistique.jx. or linguistique.de.} & {programmation.df. or programmation.ti. or programmation.cf. or programmation.hw. or programmation.jx. or programmation.tt. or programmation.ca. or programmation.in. or programmation.ar. or programmation.da. or programmation.ab. or programmation.pb. or programmation.de.}&{ article.pt.}&{ (french or english).lg.}&{ ("1999" or "2004" or "2006" or "2003" or "2000" or "2001" or "2008" or "2007" or "2002" or "2009" or "2005").yr.} Je cherche lensemble des thèses soutenues devant lUniversité du Maine en 2008 et disponibles sous format électronique SUDOC : 1/CMD?FRM=&ACT=SRCHM&Recherche=Recherche&MATCFILTER=Y&MATCSET=Y&NOSCAN=Y&PARSE_MNEMO NICS=N&PARSE_OPWORDS=N&PARSE_OLDSETS=N&ACT0=SRCH&IKT0=63&TRM0=mans+2008&ACT1=*&IKT1= 4&TRM1=&ACT2=*&IKT2=1016&TRM2=&ACT3=*&IKT3=1016&TRM3=&SRT=RLV&ADI_JVU=&ADI_TAA=&ADI_LND= &ADI_MAT=O&ILN_DEP_BIB=DEP&ADI_BIB=&NOT_USED_ADI_BIB=&NOT_USED_ADI_ILN=

16 Le « web invisible » Le Web invisible ou Web caché est la partie du Web correspondant à l'ensemble des documents qui ne sont pas indexés par les outils de recherche traditionnels. « Les ressources du Web invisible comprennent, entre autres, les sites Web construits autour d'une base de données (interrogeable uniquement par un moteur de recherche interne), les pages accessibles par un formulaire de recherche, les pages protégées par un mot de passe, les pages interdites aux robots d'indexation, les pages écrites dans des formats propriétaires, les intranets et les extranets. » Inconvénient majeur des systèmes interopérables : on reste tout de même dans le « web invisible » Site institutionnel Bases de données OPACsOPACs Ressources électroniques Éditeurs

17 Les bases de données Un ensemble structuré d'informations, regroupées sous la forme d'enregistrements stockés sur un système de fichiers logique ou physique, conçu pour permettre une consultation et une modification aisée de son contenu. On la gère avec un SGBD (Système de gestion de bases de données). Les informations sont stockées dans des tables. Chaque table a un nom unique. Il n'y a pas de vide : toutes les cases ont une valeur, qui par défaut est "null" (!). Les champs (attributs) sont disposés en colonne. Une ligne, l'ensemble des valeurs contenues dans un enregistrement, est appelée "tuple" ou "n_uplet". Chaque tuple a un identifiant, ou "clé primaire". Chaque clé primaire répond à 3 grands principes : - minimalité (inutile d'avoir plusieurs clés) - unicité - valeur obligatoire (= non "null") Il peut y avoir des relations entre les tables (!). Une table peut gérer des clés étrangères : c'est l'expression du lien. La clé étrangère est la clé primaire d'une autre table, par convention identifiée par un #. Tout clé étrangère est caractérisée par une règle ; elle a le même domaine que les clés primaires des attributs référencés.

18 L'atomicité (Première fonction) Chaque attribut d'une relation (paradigmatique) appartient à un seul domaine de valeur, qui est défini par : - un type (intervalle de valeurs) - une longueur (pour les valeurs caractères) - un format La donnée de l'attribut (ou champ) doit être élémentaire : elle ne prend qu'une valeur dans l'intervalle de donnée autorisé. Ex. domaine={bleu;rouge;vert;jaune} L'attribut COULEUR est défini sur ce domaine Un MCD (modèle conceptuel de données) est un schéma de structure des tables et des relations :

19 Dans les bibliothèques, comme dans la plupart des systèmes qui gèrent un volume important, on parle de SGBDr pour des "bases de données relationnelles". Ne pas confondre "relation entre les tables" et "relationnel" qui fait référence à la théorie relationnelle ! Les Langages SQL (structured query language) Il a 4 formes : LDD, langage de définition des données : create, alter, drop LMD, langage de manipulation des données : insert, update, delete LID, langage d'interrogation des données : select [< algèbre relationnelle - théorie ensembliste / langage des prédicats : "tout", "il existe", "appartient", "and", "or", "not", "P(x)", "P(x,y)"] LCD, langage de contrôle des données : grant revoke CREATE TABLE COMMANDE ( no_commande char (3) date_commande date montant numeric (9,2) ); montant numeric (9,2) 9 caractères en tout dont 2 décimales

20 Le produit cartésien sert à gérer des jointures. Une jointure est un produit cartésien + un select où clé étrangère = clé primaire Le résultat d'un select d'une jointure est le nombre de tuples qui correspond au nombre de clés étrangères non nulles Ex. Les titres de notices bibliographiques d'exemplaires prêtés à un moment donné avec une table UNIMARC qui gère les notices bibliographiques et une table EXEMPLAIRE qui gère les exemplaires : select distinct TITRE from from UNIMARC U,EXEMPLAIRE E where U.UNIQUE_KEY=E.UNIMARC_KEY and ETAT='2'; Des opérations comme l'UNION (union all- union - distinct) et la DIFFERENCE (MINUS) sont possibles Les données sont prisonnières de bases de données qui imposent leur propre schéma de fonctionnement ; elles sont insérées dans des tables. Les relations vont être gérées par un outil spécifique. Pour manifester ces données, on a besoin dun moteur et dun modèle de sortie (output).

21 Linteropérabilité des systèmes

22 La coopération entre les bibliothèques : une vieille histoire. Linteropérabilité des catalogues vise dabord léchange de données. - facilite la production des informations - facilite léchange dinformations - facilite la circulation des documents eux-mêmes On discerne déjà la nécessité de pratiques harmonisées entre les bibliothèques avec lutilisation de - normes - formats - protocoles Tous très richement documentés ! Motivée par des nécessités économiques (baisse des coûts de production). Les nombreux efforts de normalisation en sont la conséquence.

23 Normes en vigueur dans les bibliothèques pour la description bibliographique : Z Catalogage des monographies - texte imprimé Z Catalogage des ressources continues Z Catalogage des monographies anciennes Z Catalogage des vidéogrammes Z Catalogage des enregistrements sonores Z Catalogage des documents cartographique Z Catalogage de la musique imprimée Z Catalogage des images fixes Z Catalogage des parties composantes Z Catalogage des ressources électroniques Z Catalogage des monographies - texte imprimé (description allégée ) Z Catalogage - Choix des accès à la description bibliographique Z Catalogage dauteurs et danonymes : forme et structure des vedettes de collectivités auteurs Z Catalogage dauteurs et danonymes : Forme et structure des vedettes noms de personne, des vedettes titres, des rubriques de classement et des titres forgés Z Catalogage - Forme et structure des vedettes titres musicaux Z Z Catalogage - Forme et structure des vedettes : Noms géographiques Z Documentation - Indexation analytique par matières Z Documentation - Références bibliographiques : contenu, forme et structure

24 Formats utilisés en bibliothèque MARC (MARC 21, UNIMARC) DublinCore (format normalisé!), XML Protocoles utilisés en bibliothèque : Par exemple pour léchange de données : Z39-50, SRU/SRW ; WAIS(Wide area information service), FTP (File transfert protocol); HTTP

25 Linteropérabilité, quest-ce que cest ? « L interopérabilité est la capacité que possède un produit ou un système, dont les interfaces sont intégralement connues, à fonctionner avec d'autres produits ou systèmes existants ou futurs et ce sans restriction d'accès ou de mise en œuvre. » (AFUL) vs compatibilitéinteropérabilité Cela nécessite une grande transparence sur les mécanismes ou les formats employés…

26 Lintéropérabilité en trois mouvements Elle met en jeu trois niveaux techniques complémentaires (1) : 1. Une description des ressources avec des sémantiques communes 2. Un contexte générique dimplémentation des descriptions dans des langages structurés standardisés, interprétables par des machines 3. Un ou plusieurs protocoles informatiques déchange de ces données normalisées (1)Abderrazak Mkadmi, Imad Saleh, Bibliothèque numérique et recherche dinformations

27 MARC (< Z44-050) ISO 2709 WAIS, FTP, Z39.50 DublinCore, MODS EAD LOM (Learning Object Metadata) SCORM XML, MarcXchange URL RDF (Resource Description and Framework) http OAI-PMH SRU/SRW Standards traditionnels Standards plus récents

28 Dispositifs « synchrones » et dispositifs « asynchrones » Pour construire linteropérabilité entre les systèmes on peut mettre en œuvre des dispositifs : Synchrones : Z3950, SRU/SRW, OpenURL, API, Webservices,… Ces dispositifs permettent une interrogation « à chaud » des données. Des moteurs de recherche pointent vers des bases toujours à jour : le service distant peut remonter une information juste après sa création ou sa modification. Cette immédiateté est un avantage, mais la gestion des protocoles qui permettent cette interrogation est plus lourde. Asynchrones : les données sont recopiées (par exemple dans un entrepôt) et pour être interrogées doivent attendre un reversement, en général planifié : une fois par jour, une fois par semaine, une fois par mois. Cest le cas dun entrepôt OAI. On peut mesurer cette différence en se rappelant le schéma de signalisation des notices dans le SUDOC : les modifications ou créations sur les notices du réseau sont prises en compte après le transfert régulier dans le système local des membres du réseau : ce dispositif est asychnchrone. Mais si létablissement cible a monté un serveur Z39.50, les données, une fois insérées dans le système local sont interrogeables « à chaud », en temps réel par un système distant.

29 Dispositifs « synchrones » et dispositifs « asynchrones » On sera amené à choisir lun ou lautre mode pour construire linteropérabilité, en fonction de la nature des informations qui doivent être fournies, et de la variabilité de ces données. Document électronique Peu de clés étrangères Pas de transactions de prêt Données à faible variabilité Données pour une utilisation immédiate Périodicité de mise à jour >= 1 semaine Réindexation peu fréquente Protocole de grande fiabilité Imprimé Objets de prêt Données à grande variabilité Données normalisées de grande fiabilité Réindexations courantes

30 Schéma global dun SID (théorique) SIGB OPAC Fournisseurs de notices MARC BnF, ABES, Electre, Zebris, … Autres catalogues de bibliothèques import Z SRU Entrepôt OAI-PMH moissonnage « ingest » Sources « hétérogènes » connecteurs API

31 Les Bibliothèques nationales et laccès à linformation : le rôle de TEL et de MACS / Genevieve Clavel-Merrin Schéma global dun SID (existant)

32 Dispositifs SYNCHRONES

33 Z39.50

34 Protocole déchange pour une utilisation bibliographique qui régit le « dialogue » entre clients et serveurs, décrit et utilisé aux États-unis à partir de La norme date de 1988, provient du « New York Item » ; Elle est maintenue par la Bibliothèque du Congrès avec la « Z39.50 Maintenance Agency ». Le protocole Z39-50 Ce protocole permet linterrogation en temps réel de bases bibliographiques pour un usage de consultation et de récupération de notices, sans que lusager ne soit obligé de changer denvironnement.

35 Utilisateur / bibliothécaire Catalogue local (C/S ou émulation telnet) Base de données locale (MARC) Bibliothèque 1 SIGB 1 Rq 1

36 Utilisateur / bibliothécaire Catalogue local (C/S ou émulation telnet) Base de données locale (MARC) Bibliothèque 1 SIGB 1 Catalogue Z39.50 (port ) Base de données locale (MARC) Bibliothèque 2 SIGB 2 Rq 1 Règles de filtrage

37 Utilisateur / bibliothécaire Catalogue local (C/S ou émulation telnet) Base de données locale (MARC) Bibliothèque 1 SIGB 1 Catalogue Z39.50 (port ) Base de données locale (MARC) Bibliothèque 2 SIGB 2 Rq 1 Rs 2

38 Utilisateur / bibliothécaire Catalogue local (C/S ou émulation telnet) Base de données locale (MARC) Bibliothèque 1 SIGB 1 Catalogue Z39.50 (port ) Base de données locale (MARC) Bibliothèque 2 SIGB 2 Rq 1 Rs 2 Rs 1

39 Utilisateur / bibliothécaire Catalogue local (C/S ou émulation telnet) Base de données locale (xMARC) Bibliothèque 1 SIGB 1 Catalogue Z39.50 (port ) Base de données locale (xMARC) Bibliothèque 2 SIGB 2 Rq 1 Rs 2 Rs 1 ?

40 Z39.50 utilise à lorigine le modèle OSI (Open Systems Interconnection) qui regroupe 7 couches : -7 Application -6 Présentation -5 Session -4 Transport -3 Réseau -2 Liaison de données -1 Physique TCP/IP (Unix) Port 210 : le client ouvre directement une connexion TCP avec le serveur Z39.50 Croît avec Internet !

41 Ici, la « sémantique commune » est déjà presque acquise : Avec Z39-50, on a deux systèmes qui dialoguent facilement car ils manipulent des valeurs communes… Système A TITRE T Unimarc.200a Index: TitreM Système B TITRE T Unimarc.200a Index: MTitre Interpréteur : TitreM.A=Mtitre.B La liaison fonctionne avec un simple interprète. Le protocole déchange est solide comme il repose sur des données normalisées (qui sont la garantie de linteropérabilité).

42 Utilisateur / bibliothécaire Catalogue local (C/S ou émulation telnet) Base de données locale (MARC) Bibliothèque 1 SIGB 1 Catalogue Z39.50 (port ) Base de données locale (MARC) Bibliothèque 2 SIGB 2 Rq 1 Rs 2 Rs 1 Un protocole de liaison : Search/Retrieve Protocol

43 Utilisateur / bibliothécaire Catalogue local (C/S ou émulation telnet) Base de données locale (xMARC) Bibliothèque 1 SIGB 1 Rq 1 Rs 2 Rs 1 BASE DINFORMATION Le protocole Z39.50 ne soccupe pas du fonctionnement interne de la plate-forme distante…

44 Lutilisateur na pas à se soucier des différences entre les systèmes : sa requête sera traduite avec précision grâce à la définition booléenne « embarquée » par le protocole. La norme fait état de : ANS1 : Abstract Notation Syntax 1 (ISO 8824) Un langage de description de données indépendant des matériels et logiciels permettant de décoder des messages entre clients et serveurs BER : Basic Encoding Rules (ISO 8825) Des règles de conversion de syntaxes abstraites en une syntaxe spécifique de transfert de données

45 Systèmes de requêtes HTTP RFC MIME-SMTP HTTP 1.0 (Memo)./ correspond au dossier actuel ;../ correspond au dossier parent ; / correspond au dossier racine RFC 1945 : Hyper text Transfer Protocol – HTTP/1.0 (Specifications) RFC 1808 : pour les URL relatives RFC 1738 : Adresses universelles (URL, Uniform Resource Locators) La RFC qui a longtemps servi de base à la définition des URL et des URI. Elle définissait le format des URL pour différents protocoles, comme Gopher, Mailto, etc. Le format des URL pour les requêtes de ces différents protocoles, sont maintenant traités à part des dans documents propres à chacun. Obsolète, remplacée par la RFC 3986 : Identifiant de Ressource Uniforme (URI) : Syntaxe générique Les requests for comments (RFC), littéralement « demande de commentaires », sont une série numérotée de documents officiels décrivant les aspects techniques d'Internet. Peu de RFC sont des standards, mais tous les standards d'Internet sont des RFC.

46 RFC 1945 : Hyper text Transfer Protocol – HTTP/1.0 (Specifications) Terminologie Connexion Un circuit virtuel s'appuyant sur une couche de transport pour la communication d'information entre deux applications. Message L'unité de base d'une communication HTTP, consistant en une séquence structurée d'octets transmis via la connexion. Requête Un message de requête HTTP Réponse Un message de réponse HTTP Ressource Un service ou objet du réseau pouvant être identifié par une URI Entité Une représentation particulière de données, ou la réponse d'une ressource de type service, incluse dans une requête ou une réponse. Une entité représente une métainformation sous la forme d'un en- tête et d'un contenu (corps, ou « body » ). Client Un programme applicatif dont la fonction principale est d'émettre des requêtes. Utilisateur Le client qui a émis la requête. Celui-ci peut être un navigateur, un éditeur, un "spider" (robot d'exploration), ou autre utilitaire.

47 Utilisateur final L'utilisateur humain pilotant le programme utilisateur. Serveur Un programme applicatif acceptant des connexions dans le but de traiter des requêtes des délivrer des réponses Serveur dorigine Le serveur dans lequel se situe physiquement une ressource. Proxy Un programme intermédiaire qui cumule les fonctions de serveur et de client. Les requêtes sont soit traitées en interne ou répercutées, éventuellement converties, sur d'autres serveurs. Un proxy doit interpréter, puis reconstituer un message avant de le réemettre. Les proxies sont souvent utilisés comme portes d'accès côté utilisateur à des réseaux protégés par un "firewall" ou comme intermédiaire pour convertir des protocoles non supportés du côté utilisateur. Gateway ou routeur Un serveur jouant le rôle d'intermédiaire pour d'autres serveurs. Contrairement à un Proxy, un routeur reçoit les requêtes comme s'il était le serveur dorigine pour la ressource ; le client nest pas nécessairement conscient de "communiquer" avec un routeur. Les routeurs sont souvent utilisés comme porte d'accès, côté serveur,d'un réseau protégé par "firewall" et comme convertisseur de protocole pour accéder à des ressources hébergées sur des systèmes non-HTTP. Tunnel Programme applicatif servant de relais "transparent" entre deux connexions. Une fois actif, cet élément n'est plus considéré comme faisant partie de la connexion HTTP, bien qu'il soit issu d'une requête HTTP. Le tunnel cesse d'exister lorsque les deux sens de la connexion ont été fermés. Les tunnels sont utilisés lorsqu'une "porte" est nécessaire et que l'intermédiaire ne peut, ou ne doit pouvoir interpréter la communication.

48 Cache Espace de stockage local destiné à enregistrer les réponses ; sous-système contrôlant ces enregistrements, leur relecture et leur effacement. Un cache enregistre des réponses dans le but de diminuer le temps d'accès et la charge si déventuelles requêtes identiques se présentent ultérieurement. HTTP et MIME (Multipurpose Internet Mail Extensions) standard internet qui étend le format de données des courriels pour supporter des textes en différents codage de caractères autres que l'ASCII, des contenus non textuels, des contenus multiples, et des informations d'en-tête en d'autres codages que l'ASCII. Les courriels étant généralement envoyés via le protocole SMTP au format MIME, ces courriels sont souvent appelés courriels SMTP/MIME. Les types de contenus définis par le standard MIME peuvent être utilisés à d'autres fins que l'envoi de courriels, dans les protocoles de communication comme le HTTP pour le World Wide Web. MIME a inspiré WWW pour standardiser le flux dinformation émises via HTTP, et rend interopérables les différents encodages. charset = "US-ASCII" | "ISO " | "ISO " | "ISO " | "ISO " | "ISO " | "ISO " | "ISO " | "ISO " | "ISO " | "ISO-2022-JP" | "ISO-2022-JP-2" | "ISO-2022-KR" | "UNICODE-1-1" | "UNICODE-1-1-UTF-7" | "UNICODE-1-1-UTF-8" | autre_nom

49 Utilisation de BNF étendue BNF est une description normalisée des expressions rationnelles. Il provient du langage formel (met en œuvre une notation qui crée du sens) Ex. a* = répétion [éventuellement nulle] de a jusquà + a+= au moins 1a Instructions de bas niveau CR LF = marqueur de fin de ligne (Carriage Returne Line Feed) LWS = en-tête TEXT = utilisée pour décrire des informations descriptives. ISO implicite HEX = "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT

50 url = httpurl | ftpurl | newsurl | nntpurl | telneturl | gopherurl | waisurl | mailtourl | fileurl | prosperourl | otherurl = 1*[ lowalpha | digit | "+" | "-" | "." ] schemepart = *xchar | ip-schemepart ; schemeparts dURL pour protocoles fondés sur ip: ip-schemepart = "//" login [ "/" urlpath ] login = [ user [ ":" password ] ] hostport hostport = host [ ":" port ] host = hostname | hostnumber hostname = *[ domainlabel "." ] toplabel domainlabel = alphadigit | alphadigit *[ alphadigit | "-" ] alphadigit toplabe = alpha | alpha *[ alphadigit | "-" ] alphadigit alphadigit = alpha | digit hostnumber = digits "." digits "." digits "." digits port = digits user = *[ uchar | ";" | "?" | "&" | "=" ] password = *[ uchar | ";" | "?" | "&" | "=" ] urlpath = *xchar ; dépend du protocole, voir le paragraphe 3.1 ; Les schémas prédéfinis : ; FTP (voir aussi la RFC 959) ftpurl = "ftp://" login [ "/" fpath [ ";type=" ftptype ]] fpath = fsegment *[ "/" fsegment ] fsegmen = *[ uchar | "?" | ":" | | "&" | "=" ] ftptype = "A" | "I" | "D" | "a" | "i" | "d" ; FILE fileurl = "file://" [ host | "localhost" ] "/" fpath ; HTTP httpurl = "http://" hostport [ "/" hpath [ "?" search ]] hpath = hsegment *[ "/" hsegment ] hsegment = *[ uchar | ";" | ":" | | "&" | "=" ] search = *[ uchar | ";" | ":" | | "&" | "=" ] HTTP

51 ; GOPHER (voir aussi la RFC 1436) gopherurl = "gopher://" hostport [ / [ gtype [ selector [ "%09" search [ "%09" gopher+_string ] ] ] ] ] gtype = xchar selector = *xchar gopher+_string = *xchar ; MAILTO (voir aussi la RFC 822) mailtourl = "mailto:" encoded822addr encoded822addr = 1*xchar ; mieux défini dans la RFC 822 ; NEWS (voir aussi la RFC 1036) newsurl = "news:" grouppart grouppart = "*" | group | article group = alpha *[ alpha | digit | "-" | "." | "+" | "_" ] article = 1*[ uchar | ";" | "/" | "?" | ":" | "&" | "=" ] host ; NNTP (voir aussi la RFC 977) nntpurl = "nntp://" hostport "/" group [ "/" digits ] ; TELNET telneturl = "telnet://" login [ "/" ] ; WAIS waisurl = waisdatabase | waisindex | waisdoc waisdatabase = "wais://" hostport "/" database waisindex = "wais://" hostport "/" database "?" search waisdoc = "wais://" hostport "/" database "/" wtype "/" wpath database = *uchar wtype = *uchar wpath = *uchar WAIS : Wide Area Information Servers, ou Service, ou System ou Searching, aussi connu sous l'acronyme WAIS, est un système informatique client-serveur permettant à un logiciel client WAIS de se connecter à un serveur répertoriant des bases de données documentaires distribuées sur un réseau informatique et de lancer une recherche dans le texte des documents. Les recherches peuvent s'effectuer par mots clés ou en langage courant. La réponse est donnée sous la forme d'une liste de documents consultables triés par ordre de pertinence. WAIS utilise une extension du protocole de communication ANSI Z39.50.

52 […] ; Définitions diverses lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" hialpha "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" alpha = lowalpha | hialpha digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" safe = "$" | "-" | "_" | "." | "+" extra = "!" | "*" | "'" | "(" | ")" | "," national = "{" | "}" | "|" | "\" | "^" | "~" | "[" | "]" | "`" punctuation = " " | "#" | "%" | reserved = ";" | "/" | "?" | ":" | | "&" | "=" hex = digit | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f" escape = "%" hex hex unreserved = alpha | digit | safe | extra ucha = unreserved | escape xchar = unreserved | reserved | escape digits = 1*digit

53 Mémo ?Introduit un paramètre =attribue une valeur à un paramètre &enchaîne deux les données didentification /déplace dans larborescence //introduit un protocole :introduit un mot de passe +opérateur booléen introduit une chaîne #introduit une ancre % HEX HEX introduit un caractère codé

54 ?halsid=0s9v93i6o5altejbh58n9j2845 &view_this_doc=tel &version=1 &CRIT1=VICTOR%20HUGO&OPER1=and &CRIT1=VICTOR%20HUGO&OPER1=and ?query=EXPERT &INDEX_LIV1=DLIV_MOTSUJ &CRIT1=VICTOR%20HUGO &OPER1=and Ouvrages disponibles sur Victor Hugo

55 GET C'est la méthode la plus courante pour demander une ressource. Une requête GET est sans effet sur la ressource, il doit être possible de répéter la requête sans effet. HEAD Cette méthode ne demande que des informations sur la ressource, sans demander la ressource elle- même. POST Cette méthode doit être utilisée lorsqu'une requête modifie la ressource. OPTIONS Cette méthode permet d'obtenir les options de communication d'une ressource ou du serveur en général. CONNECT Cette méthode permet d'utiliser un proxy comme un tunnel de communication. TRACE Cette méthode demande au serveur de retourner ce qu'il a reçu, dans le but de tester et d'effectuer un diagnostic sur la connexion. PUT Cette méthode permet d'ajouter une ressource sur le serveur. DELETE Cette méthode permet de supprimer une ressource du serveur. Requêtes HTTP

56 SRU

57 Contexte SRU peut être présenté comme une extension de Z39.50, mais qui ne sort pas de la couche web. Z39.50 est lourd à maintenir et à implémenter. Il nécessite une entente stricte entre le client et le serveur. SRU répond à un besoin dinterroger des sources distantes et hétérogènes sans se plier à un environnement technique défini, et offre plus de souplesse en exploitant des données étrangères. Sappuie sur un ensemble de formats pivots universels : DC, MODS, MarcXML, … Sinscrit dans un cadre universel : XML Appelle un protocole de transfert largement répandu : HTTP Utilise un langage de requête simple et intuitif : CQL Son application permet denvisager une recherche fédérée

58 SRU (Search/Retrieve via URL) et SRW (Search/Retrieve Web service) Encode une requête au sein dune URL ReST = Representational State Transfer Encode une requête au sein dune URL SOAP = Simple Object Access Protocol Base au format hétérogène Base de nature hétérogène : Tout objet (msg, archive,…) Renvoie un fichier XML (entre autres formats) au navigateur

59 SRU et SRW utilisent le protocole HTTP pour léchange de requêtes. Plus spécifiquement, SRU permet de faire circuler des requêtes à lintérieur des URLs en utilisant larchitecture REST (Representational State Transfer) là où SRW, variante de SRU, fait transiter les requêtes sous SOAP (Simple Object Access Protocol). Pour ce qui concerne REST et SOAP, le premier permet de spécifier lencodage dune requête au sein même dune URL, alors que le second encapsule la requête sous XML. REST ne fonctionne quavec le protocole HTTP, là où SOAP autorise en plus lusage de nombre dautres protocoles ( , SSH, telnet). SRU/SRW utilisent tous les deux les mêmes instructions, qui permettent lexpression de la requête et de la réponse à cette requête. Les trois opérations principales sont « explain », « scan », et « searchRetrieve »

60 REST SOAP Rest est un style darchitecture, pas un standard, mais décrit des principes fondamentaux qui permettent de bien former une application. Il repose sur des standards : URI, syntaxe universelle pour « adresser » les ressources, HTTP un protocole sans état (stateless) avec un nombre très limité d'opérations, Des liens hypermedia dans des documents (X)HTML et XML pour représenter à la fois le contenu des informations et la transition entre états de l'application, Les types MIME comme text/xml, text/html, image/jpeg, application/pdf, video/mpeg pour la représentation des ressources Il permet la transmission de messages entre objets distants, et autorise un objet à invoquer des méthodes d'objets physiquement situés sur un autre serveur. Le transfert se fait le plus souvent à l'aide du protocole HTTP, mais peut également se faire par un autre protocole, comme SMTP. Le protocole SOAP est composé de deux parties : une enveloppe, contenant des informations sur le message lui-même afin de permettre son acheminement et son traitement, un modèle de données, définissant le format du message, c'est-à-dire les informations à transmettre. Avantages de SOAP : assez ouvert pour s'adapter à différents protocoles de transport. indépendant de la plate-forme. indépendant du langage. simple et extensible.

61 SRU (et SRW) Utilisent tous deux le protocole HTTP pour léchange de requêtes SRU propose une interface pour linteraction avec des bases de données distantes, sans quil y ait besoin de connaître la logique interne de la base de donnée consultée pour trouver des résultats Sappuie sur un langage de requêtes CQL (Contextual Query Language, anciennement Common Query Language). Les requêtes sont acheminées via le protocole HTTP Les résultats sont transmis en XML SRU gère des paramètres, au nombre de 12 NomObligatoire/facultatifDescription operationObligatoireLa chaîne : SearchRetrieve versionObligatoireLa version de la requête. Si le serveur ne peut pas fournir une réponse dans la version spécifiée ou une version inférieure, il doit retourner un diagnostique

62 NomObligatoire/facultatifDescription requestObligatoireContient une requête exprimée en CQL, qui demande à être traitée par le serveur. Une requête CQL peut contenir une ou plusieurs clauses reliée par des opérateurs booléens startRecordFacultatif*Spécifie la position du premier enregistrement visé. Doit être > 0. La valeur par défaut 1 est attribuée par le serveur si elle n est pas spécifiée dans la requête. maximumRecordFacultatif*Le nombre maximum de notices à être retourné. La valeur doit être 0 ou plus. Une valeur par défaut est attribuée par le serveur si elle nest pas définie dans la requête. La valeur retournée peut être inférieure à celle qui est tolérée, mais ne doit pas être supérieure. recordPackinqFacultatifSpécifie la façon dont les notices doivent être empaquetées : chaîne de caractère simple(string) ou XML (xml). recordSchemaFacultatifSchéma dans lequel la notice doit être fournie. La valeur est lURI du schéma ou son affichage abrégé défini par le serveur (*) [voir tableau] recordXPath (V1.1)FacultatifUne expression Xpath (chemin XML) peut être appliquée aux notices avant quelles soient retournées, relativement au schéma spécifié dans le paramètre recordSchema. Sert à préparer la conversion XSL.

63 NomObligatoire/facultatifDescription resultSetTTLFacultatifNombre de secondes pendant lesquelles la requête du client doit être maintenue. Le serveur peut être programmé pour ignorer ce paramètre et offrir un temps de réponse qui ne correspond pas à celui spécifié. sortKeys (V1.1)FacultatifContient une séquence de clés de classement appliquée au résultat. StylesheetFacultatifSpécifie une URL pour appliquer une feuille de styles. extraRequestDataFacultatifEmplacement prévu pour des informations supplémentaires … Exemple de requête Paramètres : obligatoiresfacultatifs version=1.1 operation=searchRetrieve query=balzac maximumRecords=3000 recordSchema=dc y=balzac+and+literature&maximumRecords=3000&recordSchema=dc

64 Réponse pour y=balzac&maximumRecords=2000&recordSchema=dc

65 Réponse pour y=title=balzac&maximumRecords=2000&recordSchema=dc […]

66 Réponse pour y=balzac+and+literature&maximumRecords=2000&recordSchema=dc […]

67 Schema (and link/reference)Short NameIdentifier Dublin Core Record Schema (.xsd.html )dcinfo:srw/schema/1/dc-v1.1 SRU Diagnostic Schemadiaginfo:srw/schema/1/diagnostic-v1.1 Explain Schemazeerexhttp://explain.z3950.org/dtd/2.0/ MODS Schema Version > Version 3.3modsinfo:srw/schema/1/mods-v3.x ONIX DTD Version 2.0onixinfo:srw/schema/1/onix-v2.0 MARCXML: The MARC 21 XML Schemamarcxmlinfo:srw/schema/1/marcxml-v1.1 EAD DTD Version 2002eadinfo:srw/schema/1/ead-2002 Zthes DTD, version 0.5Ztheshttp://zthes.z3950.org/xml/0.5/ UNIMARC XML Schemaunimarcxmlinfo:srw/schema/8/unimarcxml-v0.1 The Bibliographic Class DTDdlxs-bibinfo:/srw/schema/10/dlxs-bib-v1.0 Dublin Core Extended (DCX)dcxinfo:/srw/schema/1/dcx-v1.0 PICA XML Version 1.0 pica-xml-v1-0.xsd)pica-XMLinfo:srw/schema/5/picaXML-v1.0 MADS Schema Version 1.0 reference | schema madsinfo:srw/schema/1/mads-v1.0 Zthes Schema Version 1.0 reference | schemaztheshttp://zthes.z3950.org/xml/1.0/ ISO Schema for holdings reference | schemaisoholdinfo:srw/schema/5/iso20775-v1.0 PRISM Aggregator Message Record Schema Version 2.0paminfo:srw/schema/11/pam-v2.0 Document Availability Information API (DAIA/XML) reference | schema PRISM Aggregator Message Record Schema Version 2.1 paminfo:srw/schema/11/pam-v2.1 Paramètre de contrôle du schéma

68 info:srw/schema/1/marcxml-v1.1 xml #Début de la notice 01100nam a a s1993 quca b fre (DLC) […] Les Accros du langage / sous la direction de Michèle Nevert. La 1ère notice du même lot avec le paramètre &recordSchema=marcxml : Il existe aussi une « classe » unimarcxml…

69 Le paramètres pour la réponse Le réponses SRU sont fournies au format XML NomTypeObligatoire / Facultatif Description versionxsd:stringObligatoireLa version de la réponse. Doit être égale à la version demandée par le client. numberOfRecordsxsd:integerObligatoireLe nombre de notices correspondant à la requête. Valeur= 0 en cas déchec de la requête resultSetIdxsd:stringFacultatifLidentificateur de lensemble des résultats créé par lexécution de la requête. resultSetIdleTimexsd:integerFacultatifLe nombre de secondes entre la création et la suppression dun résultat. Après ce délai, le résultat ne sera plus disponible. recordsSéquence de FacultatifSérie de notices qui correspondent à la requête. nextRecordPositionXsd:integerFacultatifLa position qui suit le résultat final. Sil ny a pas de « reste », ce paramètre doit être fixé à 0. XSD = XML Schema Document = fichier de description de structure

70 NomTypeObligatoire / Facultatif Description diagnosticsSéquence de FacultatifSi les choses tournent mal, le serveur doit signaler ce qui na pas fonctionné, expliquer ce qui sest passé. Les diagnostiques sont retournés dans un schéma très simple, qui ne dispose que de 3 éléments: « URI », « details » et « message ». extraReponseData FacultatifInformation supplémentaire retournée par le serveur. echoedSearchRetrie veRequest FacultatifLes paramètres de la requête sont renvoyés au client dans un simple formulaire. Exemple :requête SRU qui renvoie des métadonnées dun document dont la mention de responsabilité somprend la chaîne de cactères « spurr » /index.php/sru?version=1.1&operation=searchRetrieve&query=creator= spurr

71 1.1 1 info:srw/schema/1/dcv1.1 xml Introduction to the study of literature Spurr David Faculté des lettres cours audio AN3-SPUR mp3 AN3-SPUR Spurr David 1 Réponse :

72 info:srw/diagnostic/1/10 Query syntax error Exemples derreurs :

73 info:srw/diagnostic/1/8 Unsupported parameter maximumRecords2000&recordSchema info:srw/diagnostic/1/28 Masking character not supported

74 SRU Termes de recherche : Ok Bibliothèque du Congrès JSTOR

75 SRU balzac literature | Termes de recherche : Ok v Bibliothèque du Congrès JSTOR

76 SRU balzac literature | Termes de recherche : Ok Construction dune requête type SRU à partir des termes saisis : v Bibliothèque du Congrès ?version=1.1 &operation=searchRetrieve &query=balzac+and+literature &maximumRecords=2000 &recordSchema=marcxml = URL de base = version de la requête = opération demandée = paramètres de la requête = nb. max. de rép. souhaitées = format de réponse souhaité NB : ici, le format souhaité est le paramètre « marcxml ». Schéma dans lequel la notice doit être fournie. La valeur est lURI du schéma ou son affichage abrégé défini par le serveur. JSTOR

77 CQL Langage formel qui permet de présenter des requêtes à des systèmes de recherche comme des catalogues bibliographiques, des collections de musées ou des index web. Langage intuitif, aisé à composer et lisible par les humains (HR) Définition formelle : CQL BNF (Backus-Naur Form)

78 Recherches simples: dinosaur "complete dinosaur" title = "complete dinosaur" title exact "the complete dinosaur" Requêtes utilisant des opérateurs booléens: dinosaur or bird dinosaur and "ice age" dinosaur not reptile dinosaur and bird or dinobird (bird or dinosaur) and (feathers or scales) "feathered dinosaur" and (yixian or jehol) Recherches visant des critères de publication: publicationYear 2.4 bioMass >= 100 Recherches de proximité de termes: ribs prox/distance 0/unit=paragraph chevrons Recherches à plusieurs dimensions: date within " " dateRange encloses 2003 Recherches basées sur la pertinence: subject any/relevant "fish frog" subject any/rel.lr "fish frog"

79 En France ABES Ailleurs en Europe Finlande : NELLI Dutch union Catalog Espagne : Biblioteca Virtual del Patrimonio Bibliográfico Au niveau européen projet TEL, la Bibliothèque européenne Aux Etats-Unis J-STOR ARTstor Worldcat Beta Library of Congress Quelques plates-formes SRU disponibles…

80 Les « grammaires » de linteropérabilité (synthèse) API : Application Programming Interface Une API est un outil utile au programmeur qui va y trouver une description du comportement dun programme informatique. Elle définit des méthodes et des fonctions (onparle aussi de « signature ». Elle décrit les paramètres attendus pour lancer une méthode et le résultat produit, le plus souvent : sa forme son type son « sens » On peut aussi y trouver les conditions que lutilisation du programme impose et des indications sur lenvironnement requis. Exemple : On trouve des indications sur le connecteur SQL

81 Les « grammaires » de linteropérabilité (synthèse) Jeu de métadonnéesCadre générique dimplémentation protocolesLangage(s) de requêtes DiversJ2EE – PHP – Html…APISQL – SQL + - MySQL MARC < Z … ISO 2709Z39.50Internes aux applications LOM – DC – TEF – MarcXml… XMLOAI-PMHHTTP - index RDFXMLSPARQL for RDFSPARQL Query for RDF DC – MarcXml …XMLSRU/SRW SOAP/REST CQL DC – XML -URLWebServices SOAP/REST Divers langages possibles

82 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 »http://joensuu/fi/esfo/ 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.

83 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 :

84 Son langage dédié : SPARQL Recommandation W3C (qui tente de déboucher rapidement sur une normalisation) Principales spécifications: SPARQL protocol for RDF Décrit le protocole daccès distant pour créer des requêtes et recevoir des réponses SPARQL Query Results XML Format Définit le format de document XML pour représenter les résultats des requêtes SELECT et ASK. Introduction de requêtes simples Soit la donnée : 1http://exemple.org/ouvrages/ouvrage 1 Titre de mon ouvrage.http://base1.org/dc/elements/1.1/titre Requête : SELECT ?title WHERE { 1http://exemple.org/ouvrages/ouvrage 1 ?titlehttp://base1.org/dc/elements/1.1/titre } Réponse : title Titre de mon ouvrage

85 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 ?

86 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 un même base de données.

87 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 | ============================= |

88 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" | |

89 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 auteurs de tel séminaire…

90 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

91 OpenURL Propose une syntaxe pour exprimer une référence au sein dune URL Le but dopenURL est de créer un lien entre une référence et une ressource plein-texte présente dans un bouquet auquel une bibliothèque est abonnée ou dans une archive ouverte. Une base bibliographique doit être capable de produire une URL qui ne point pas vers une ressource donnée, mais qui la décrive dun point de vue purement bibliographique. Construction dune URL avec un vocabulaire de requête normalisé: ?genre=article&aulast=lecomte&aufirst= Sébastien&title=XML et lexpression de la temporalité&isbn= xxxx-xxxx auteur nom=Lecomte prénom=Sébastien isbn= xxxx-xxxx titre= XML et lexpression de la temporalité Réunit une ensemble de métadonnées qui décrivent une ressource. Ces métadonnées véhiculées par une requête HTTP peuvent être interprétées par le fournisseur de contenu.

92 openURL Service lié aux extensions des « OPAC de nouvelle génération », OpenURL permet à un catalogue de manifester lexistence dun ressource accessible pour un utilisateur donné Requête dutilisateur (web) Base de références Résolveur openURL Signale lexistence de la ressource si elle est accessible Base de contenus: - Bouquet de périodiques électroniques - Archive ouverte Crée un lien vers la ressource

93 WebServices Un serveur propose des fonctions qui peuvent être invoquées à distance via le web. Méthode héritée de RPC (Remote Procedure Call), famille UNIX. Sappuient sur HTTP et ne nécessitent pas douverture de ports particuliers sur les firewalls. Protocoles utilisés : SOAP, XML-RPC Offrent la possibilité de manifester des fonctions agrégées dans une page web, et dembarquer un contexte (par exemple un ticket dauthentification). Les bibliothèques pourraient par exemple proposer une consultation de leur catalogue à travers un environnement particulier ou un ENT, via WebService.

94 Pratiques des usagers : émergence de nouveaux besoins Exemple avec iGoogle

95 Exemple avec NetVibes

96 Dispositifs ASYNCHRONES

97 La récupération de données

98 Léchange de données en iso2709 Une notice enregistrée au format ISO 2709 présente le schéma suivant : Voir aussi :

99 XML par la pratique [Texte imprimé] : bases indispensables, concepts et cas pratiques / [Sébastien Lecomte]. - Nantes : Éd. ENI, cop vol. (353 p.) : ill., couv. ill. ; 21 cm. - (Ressources informatiques, ISSN ). Index ISBN (br.) : 27,14 EUR. - EAN Exemple de notice : de lisbd à iso nam i ­a ­bBr.­d27.14 EUR- ­a d2008 m |0fre|01 ||||ba-0 ­afre- ­aFR- ­aa 0||y|-1 ­aXML par la pratique­ebases indispensables, concepts et cas pratiques­fSÂebastien Lecomte- ­a2e Âed.- ­aNantes­cENI­ d2008- ­a ­a353 p.­cillustrations en noir et blanc­d22 x 18 cm-2 ­aRessources informatiques­x ­aPrÂesentation des concepts fondamentaux de XML au travers de cas pratiques Áa implÂementer. Aborde notamment la syntaxe du langage XML, montre comment concevoir des documents et des grammaires XML simples, comment lier des documents XML entre eux, et comment mettre en forme des documents XML.- ­aTous niveaux- ­b ­ ­tRessources informatiques­x ­aXML (langage de balisage)-0 ­aInternet­alangage de programmation­astructure de donnÂees ­adocument multimÂedia- ­a005.3­v99- ­a004­v99a- 1­ ­aLecomte­bSÂebastien­ ­aFR­bElectre­c ­gAFNOR- ­ ­aExtendible markup language­ ­aExtensible markup language- ­aTous niveaux- ­aTechniques Informatique- ­ aLivres pratiques Autoformation- ­c Label Répertoire Zones Séparateur de notices (invisible)

100 le LABEL (taille fixe : 24 octets) Si on décompose le label de la notice de la façon indiquée, on a 8 "groupes" d'information nam1· i·450· Ce qui nous donne : namam i·450· nombre doctets!

101 le répertoire (taille variable) Le répertoire comprend les éléments suivants : a/ une étiquette (=3 octets) b/ une longueur de zone qui correspond à la position 20 du label (=4 octets) c/ la position du premier caractère qui correspond à la position 21 du label (=5 octets) d/ longueur de la partie relative à l'application qui correspond à la position 22 du label (=0 octet) b+c+d= « 450 » du label UNIMARC Si on lit le répertoire de notre notice en suivant la fréquence de 3/4/5/0 octets :

102 … on obtient :

103 XML par la pratique [Texte imprimé] : bases indispensables, concepts et cas pratiques / [Sébastien Lecomte]. - Nantes : Éd. ENI, cop vol. (353 p.) : ill., couv. ill. ; 21 cm. - (Ressources informatiques, ISSN ). Index ISBN (br.) : 27,14 EUR. - EAN

104 01510nam i ­a ­bBr.­d27.14 EUR- ­a d2008 m |0fre|01 ||||ba-0 ­afre- ­aFR- ­aa 0||y|-1 ­aXML par la pratique­ebases indispensables, concepts et cas pratiques­fSÂebastien Lecomte- ­a2e Âed.- ­aNantes­cENI­ d2008- ­a ­a353 p.­cillustrations en noir et blanc­d22 x 18 cm-2 ­aRessources informatiques­x ­aPrÂesentation des concepts fondamentaux de XML au travers de cas pratiques Áa implÂementer. Aborde notamment la syntaxe du langage XML, montre comment concevoir des documents et des grammaires XML simples, comment lier des documents XML entre eux, et comment mettre en forme des documents XML.- ­aTous niveaux- ­b ­ ­tRessources informatiques­x ­aXML (langage de balisage)-0 ­aInternet­alangage de programmation­astructure de donnÂees ­adocument multimÂedia- ­a005.3­v99- ­a004­v99a- 1­ ­aLecomte­bSÂebastien­ ­aFR­bElectre­c ­gAFNOR- ­ ­aExtendible markup language­ ­aExtensible markup language- ­aTous niveaux- ­aTechniques Informatique- ­ aLivres pratiques Autoformation- ­c27.14-

105 |-1 ­aXML par la pratique­ebases indispensables, concepts et cas pratiques­ fSÂebastien Lecomte- Etiquette 200 La zone comporte (00)93 octets Elle commence à la position (00)

106 Le précédent contrôle appliqué par le répertoire ISO 2709 nexiste pas avec MarcXchange (absent du format), il faut le créer via lapplicatif, et le recalculer à chaque conversion vers ISO 2709… MarcXchange : exemple 01510nam i 450 […] XML par la pratique bases indispensables, concepts et cas pratiques SÂebastien Lecomte […] Le label des notices est traité comme un simple chaîne

107 MarcXchange : structure du schéma collection record subfield datafieldcontrolfieldleader id id, format, type id tag id, ind1,… ind8 tag id code Élément de plus haut niveau Élément racine : début de la notice Label de la notice de lISO 2709 (24 octets) Elément de contrôle Zone de lidentifiant De lISO 2709 Déclaration des zones Structure hiérarchique attribut obligatoire attribut facultatif Déclaration des Sous-zones

108 MarcXchange Cadre délaboration général pour des schémas « locaux » MARC 21 et UNIMARC sont reconnus comme des schémas locaux, mais nécessitent tout de même des adaptations locales pour la mise en œuvre de MarcXchange. Assure la compatibilité de schémas locaux simples, sans perte dinformations (ou un minimum de pertes qui peuvent être répertoriées). Schéma conçu de façon à contenir des données MARC Peut servir à léchange de notices MARC ou de « moyen de transport » pour faire migrer des notices au format natif MARC vers DublinCore.

109 MarcXchange Usages majeurs Représenter une notice MARC en XML Décrire une ressource en XML Échanger des notices MARC en XML Transférer des notices MARC via des services en ligne (par exemple SRU) Transmettre des données à un éditeur Utiliser un format temporaire qui permet toute forme de transformation : conversion, publication, édition, validation Par exemple, une notice peut entrer dans un « Workflow » (cycle de vie du document) au format XML, dans une application de gestion, puis être « verrouillée » et stockée à nouveau dans un format MARC.

110 OAI

111 Contexte OAI-PMH répond au besoin dinterroger plusieurs bases en exprimant la description des ressources dans un langage uniforme et commun. Les données sont reproduites et stockées dans un entrepôt qui permet de les embrasser toutes à la fois. Cette fourniture est construites en deux temps : une reproduction, puis une agrégation. Les données sont dabord modelées sur un format commun : XML DC (mais dautres formats sont possibles) Elles sont ensuite stockées dans une nouvelle base. Le protocole déchange utilisé est HTTP Il faut ensuite construire un moteur de recherche pour ménager des points dentrée, des outils de référencement, de classement, etc. (Le moteur de recherche nest pas fourni par le modèle OAI). De nombreux produits open source sont actuellement disponibles pour mettre en œuvre un modèle OAI

112 OAI-PMH Définition : OAI - PMH Open Archive Initiative Protocol for Metadata Harvesting Mvt 1 de linteropérabiblité : aspect « normatif » : empilement structuré des données Mvt 3 de linteropérabilité : le protocole déchange Mvt 2 de linteropérabiblité : XML DublinCore

113 Origine du schéma : François Nawrocki : Le protocole OAI et ses usages en bibliothèque. (http://www.culture.gouv.fr/culture/dll/OAI-PMH.htm)

114 Un peu de vocabulaire… Ressource (resource) : cest le document qui est décrit par un appareil bibliographique (la réalité à laquelle la description renvoie, une monographie imprimée, un document électronique…) Item : cest la notice informatique qui contient la description. Cette notice se voit attribuer un identifiant unique supplémentaire, totalement indépendant de celui du système local. Enregistrement (record): ce sont une partie des métadonnées de litem qui sont choisies et « poussées » dans un fichier XML qui deviennent un enregistrement. OAI-PMH ne travaille pas avec la totalité des données, mais un jeu allégé. Lot (set) : cest un possibilité dOAI-PMH pour constituer des ensembles thématiques ou autres (par exemple ; les thèses dun établissent dans un format donné et pour une période donnée).

115 ##$a $bBr.$d27, #1$a par la pratique$bTexte imprimé$ebases indispensables, concepts et cas pratiques$f[Sébastien Lecomte] 210 ##$aNantes$cÉd. ENI$dcop ##$a1 vol. (353 p.)$cill., couv. ill. en coul.$d22 cm 225 informatiques$fJoe ̈ lle Musset$x ##$aIndex 410 ##$aRessources informatiques (Nantes), ISSN ##$aXML (langage de balisage)$2 rameau 606 ##$aEchange électronique d'information$2rameau 676 ##$a006.74$v22$zeng 700 #1$aLecomte, Sébastien ( ; informaticien)$4070 item Xml par la pratique : bases indispensables, concepts et cas pratiques Sébastien Lecomte Monographie imprimée … oai:1380 record Métadonnées sur la ressource : le travail du fournisseur dentrepôt

116 Principe général Base 1 (spécificités internes) Base 2 (spécificités internes) Base 3 (spécificités internes) Base 4 (spécificités internes) Entrepôt à sémantique commune Création denregistreme nts en DC Pour lusager : ?query=… Spécificité commune : formulation dune requête unique !

117 Mise en œuvre

118 Institution A Entrepôt A : dc SET 1 SET 2 SET 3 Institution B Système local Éditeur (=fournisseur) Harvester Base de donnée locale « moissonnage » périodique et planifié Base de donnée « OAI » Base de donnée locale Transformation XSL Client « Ingest »

119 Linterrogation dun entrepôt OAI : Méthodes et arguments VerbeRôleArgumentsExemples IdentityDonne des informations sur lentrepôt de données - ListSetsDemande la liste des lots disponibles sur un entrepôt. resumptionTokengallica:afri que ListMetadataFormatsDemande la liste des formats de métadonnées disponibles. Sans paramètre introduit, tous les formats disponibles pour au moins un item sont retournés. Avec le paramètre identifier, seul les formats disponibles pour un item donné sont retournés. identifieroai-dc lom marcXml ListRecordsRetourne une liste denregistrements correspondant aux différents paramètres (dates, lots demandés). from until metadataPrefix set resumptionToken ListIdentifiersRécupère la liste des identifiants disponibles. from until metadataPrefix set resumptionToken GetRecordPermet la récupération dun enregistrment donné, à partir dun argument identifier metadataPrefix

120 1. Identify >> Exemple avec 2. ListSets >> Cest la balise quil faut rechercher pour trouver un set 3. ListMetadataFormats >> NB et 3. répondent à la méthode verb= demandent plus de précisions >> 4. ListRecords demande obligatoirement au moins un argument : &metadataPrefix (et non pas *MetadaPrefix) : Attend un format de données, par exemple oai_dc Autres arguments attendus : &set= …voir &ListSets &from : date denregistrement (type : AAAA-MM-JJ%) &until : date denregistrement (type : AAAA-MM-JJ%) (obligatoire) Utilisation dun handler

121 >> &until= ListIdentifiers demande obligatoirement au moins un argument : >> &metadataPrefix (et non pas *MetadaPrefix) : Attend un format de données, ici, didl ou oai_dc Autres arguments attendus : &set= …voir &ListSets &from : date denregistrement (type : AAAA-MM-JJ%) &until : date denregistrement (type : AAAA-MM-JJ%) (obligatoire) oai:bnf.fr:gallica/ark:/12148/bpt6k gallica:6:61 gallica:monographies

122 6. GetRecords demande obligatoirement au moins un argument : &GetRecord &identifier (obligatoire) >> a/ark:/12148/bpt6k &metadataPrefix (comme précédemment) (obligatoire) NB Il sagit de lidentifier du nœud header/identifier et non pas de celui de dc:identifier Explication : lidentifier du header est un enregistrement (une clé primaire ou unique, tandis que le dc:identifier est une information de lenregistrement, cest une donnée. On aurait pu avoir à traduire la requête GET avec une URL encodée pour lidentifier, pour tout ce qui suit &identifier= car ce nest pas lidentifier que lon demande, mais sa « représentation » dans le langage http (cf tableau URL encoding), ce qui aurait donné : &identifier=oai%3abnf%2efr%3agallica%2fark%3a%2f12148%2fbpt6k852111

123 Liste : badArgument badResumptionToken badVerb cannotDisseminateFormat idDoesNotExist idDoesNotMatch noMetadataFormats noSearchHierarch Messages derreur possibles T15:48:40Z Value of the "verb" argument is not a legal OAI-PMH verb, the verb argument is missing, or the verb argument is repeated. Query string : verb=Record&metadataPrefix=oai_dc. Detailed description : incorrect verb = Record. TAR_Real_Web/OAIHandler?verb=Rec ord&metadataPrefix=oai_dc

124 Le harvesting Etape 1 : interroger un entrepôt et cibler un SET Etape 2 : ingest initial La réponse (POST) est un ensemble de notices XML, décliné dans plusieurs formats, normalisés le plus souvent : DC, LOM, MarcXML, TEF, … Les données recueillies doivent être insérées dans une base locale On peut utiliser un programme pour le faire, mais dans la plupart des SIGB de nouvelle génération, on a besoin dune étape intermédiaire de transformation XSL Etape 3 : planification dun update Si lon veut récupérer des notices de thèses du SUDOC, on peut utiliser une plateforme OAI (du site officiel) qui va nous aider à nous y retrouver : Le handler du SUDOC est Comparaison de et de : avec le lien ListSetshttp://re.cs.uct.ac.za/

125 Interrogation dune thèse qui porte lidentifiant 2007NAN &metadataPrefix=oai_dc&identifier=2007NAN21013 Il va falloir utiliser une feuille de transformation TEF (exemple : ) xsl:for-each xsl:if (test=) xsl:when xsl:choose xsl:otherwise xsl value-of Xsl:template select=*

126 Application pkpHarvester (public knowledge project) : manipulations

127 Cas particulier dORI-OAI

128 Conclusion

129 LOPAC … vs IGP LOPAC de SIGB ne remplit plus son rôle de signalement auprès des usagers On préfère parler de SID (ou dIGP dans certains cas) pour baliser laccès à des sources hétérogènes. De même, on parlera plutôt dutilisateur, voire dusager que de lecteur, et de données plutôt que de notices. Leffort de normalisation est capital pour : - lhomogénéité des données - la qualité des données Avec lémergence de nouveaux protocoles, les données sont transportées par la couche web et souvrent à dautres niveaux dexploitation. Avec linteropérabilité, les professionnels de linfo-doc pensent leur repositionnement dans le monde de linformation…

130 ENSSIB – 21 avril 2010 Merci de votre attention !


Télécharger ppt "Cycle T. – 19-23 avril 2010. – ENSSIB, Villeurbanne Gestion informatisée des bibliothèques La recherche fédérée et les."

Présentations similaires


Annonces Google