code4lib 2011 : choses vues et entendues par l'ABES

36
Code{4}lib 2011 Bloomington, IN Du 7 au 10 février 2011

Transcript of code4lib 2011 : choses vues et entendues par l'ABES

Page 1: code4lib 2011 : choses vues et entendues par l'ABES

Code{4}lib 2011

Bloomington, IN

Du 7 au 10 février 2011

Page 2: code4lib 2011 : choses vues et entendues par l'ABES
Page 3: code4lib 2011 : choses vues et entendues par l'ABES

code{4}lib ?

• Communauté de développeurs et de bibliothécaires « techniques » (technologists), qui travaillent pour la plupart dans des bibliothèques

• A commencé par une mailing list en 2003, puis par IRC #code4lib sur freenode

• 1ère conférence en février 2006, dans l’Oregon : 80 participants. Puis 150 en 2007…

Page 4: code4lib 2011 : choses vues et entendues par l'ABES
Page 5: code4lib 2011 : choses vues et entendues par l'ABES

Apache Solr

• Apache Solr : plateforme de recherche opensource, basée sur le projet Apache Lucene

• Fonctions principales :• Recherche plein texte• Highlighting (surlignage)• Facettes• Support de différent type de document (word, pdf…)• Recherche distribuée• Réplication d’index automatique

Page 6: code4lib 2011 : choses vues et entendues par l'ABES

Apache Solr

• Se lance comme un serveur indépendant de recherche (dans un conteneur de servlet, comme Apache Tomcat).

• Ecrit en Java, utilise Lucene comme moteur de recherche.• APIs (interfaces) de type REST (HTTP/XML) et JSON, ce qui le rend

facile à utiliser avec n’importe quel langage de programmation.

• Est utilisé à l’ABES par les applications et projets :• IdRef, Star et API Sudoc (« Solr total », SudocAD), Step, Portail des

thèses.

• Dans le monde des bibliothèques, est de plus en plus utilisé par les catalogues de nouvelle génération : Blacklight, VuFind, etc.

Page 7: code4lib 2011 : choses vues et entendues par l'ABES
Page 8: code4lib 2011 : choses vues et entendues par l'ABES

Les nouveautés de Solr

• Amélioration du support Unicode• Indexation et recherche de plus en plus rapide• Nouvelles fonctionnalités pour l’indexation et la recherche• Accélération du surlignage• Support spatial : fonctions sur les distances, facettes sur la géolocalisation• Possibilité de grouper les résultats• Nouvelle fonction de pondération : « edismax » (supporte la syntaxe complète de

Lucene)• Fonction pivot sur les facettes : facettes à 2 niveaux• Autosuggestion : à partir des données indexées• Possibilité de modifier les données par JSON et CSV

• Solr CLOUD• Solr UIMA : http://uima.apache.org/• En cours : amélioration des performances, XMLQueryParser (indexer directement

de l’XML)

Page 9: code4lib 2011 : choses vues et entendues par l'ABES
Page 10: code4lib 2011 : choses vues et entendues par l'ABES

Islandora repository

• Framework opensource basé sur Drupal et Fedora. Commencé en 2008.

LDAP / Groups / Forms Drupal FCK / Hooks / ModulesOpen Layers ABBYY / Blast

Filters / Rule Engine / PHP Islandora Java / XML / Drupal ModulesSolR / Lucene Djatoka / Gate

Fedora : Policies / Folders

• Solution clé en main• Adaptable : configuration du workflow, accepte beaucoup (+ de 20)

de formats de métadonnées : METS / MIX / MODS / TEI…• 120 VREs : environnements de recherche virtuels http://islandora.ca/

Page 11: code4lib 2011 : choses vues et entendues par l'ABES

1152 disques dur247 Petabytes+ de 1000 machines virtuelles

Page 12: code4lib 2011 : choses vues et entendues par l'ABES

- réseau social sémantique pour les chercheurs

- collaborations: ORCID, ELSEVIER…

- données : système locaux (appli RH et appli ES), agrégateurs de données, dépôts institutionnels, individus et leurs relations

- données stockées en RDF => représentation sémantique des données

- interconnectables (linked data cloud)

C’est quoi

Page 13: code4lib 2011 : choses vues et entendues par l'ABES

- modélisation sémantique des chercheurs

- coller de manière significative des silos de données entre eux

- interopéralibilité : construit avec (sur) les autres (DC, FOAF, SKOS, BIBO)

- compatible SPARQL

- utilise le RDF Rank types : pour filtrer les plus fiables

Ontologie vivo:

Page 14: code4lib 2011 : choses vues et entendues par l'ABES

- Développement OPENSOURCE

- Java, Apache Tomcat, MySQL, RDB ou SDBpour (stockage de triplets RDF)

- 2 millions de triplets += 12 Gb de mémoire

- Import/saisie de données → moissonage →VIVO RDF → RDF (linked data)

- Visualisation & viusels: (Flare, adobe flex) + html, Google visualization API (sparkline), jquery

Technique (1)

Page 16: code4lib 2011 : choses vues et entendues par l'ABES
Page 17: code4lib 2011 : choses vues et entendues par l'ABES

Programmation fonctionnelle(1)ou programmation lambda

« Un langage qui n’affecte pas comment vous pensez la programmation ne vaut pas la peine d’être appris » Alan Perlis (le 1er prix nobel de l’informatique)

- très en vogue, de plus en plus utilisé

- difficile à s’approprier, très académique : s’appuie sur des notions mathématiques, la récursivité

- basé sur l'évaluation d'expression et non sur l'exécution d'instruction

- utilisation de fonctions comme boîtes noires emboitées les unes aux autres

Page 18: code4lib 2011 : choses vues et entendues par l'ABES

Programmation fonctionnelle(2)

- avantages : pas d'effets de bord, permet de factoriser le code (code plus lisible)

- concepts majeures : first-class functions, lambda functions, higher order functions, closures, et function currying

- Langages : haskell, javascript, ocaml, F# (MS), erlang (ericsson), utilisé dans les secteurs industriels, informatique embarqué

ex: qualcomm, at&t, facebook, twiter, credit suisse, yahoo, ericsson, citrix- Framework javascript : prototype, Jquery …

Page 19: code4lib 2011 : choses vues et entendues par l'ABES

Programmation fonctionnelle(3)

var maFonction = function (func) {return(

function(x,y){func(y,x);

});

};

Page 20: code4lib 2011 : choses vues et entendues par l'ABES
Page 21: code4lib 2011 : choses vues et entendues par l'ABES

au-delà de MARC

Un OPAC 2.0 en OPENSOURCE (LAMP + énergie SolR)

Projet de l’Université Villanova (PA, USA)

1ère version en 2007, version 2.0 pour septembre 2011

Avant:

- Notices MARC chargées dans SolR (XSLT)

- SolR utilisé pour récupérer les notices

- Code PHP pour visualiser

Page 22: code4lib 2011 : choses vues et entendues par l'ABES

au-delà de MARC

Problèmes:

- Toutes les notices ne sont pas en MARC

- Le code pour extraire les données de MARC est moche

« Il faut se débarrasser de MARC »

« MARC must DIE » (sic)Demian Katz membre actif vufind

Page 23: code4lib 2011 : choses vues et entendues par l'ABES

au-delà de MARC

Solution: Record Driver

- Une interface d’affichage des notices récupérer de SolR

- Pour chaque notice, identifier dans SolR le Record Driver à instancier

(marc, ead, autorité)

- Créer un Record Driver par défaut à partir des champs stockés dans SolR

Page 24: code4lib 2011 : choses vues et entendues par l'ABES

au-delà de MARC

RecordDriver {}

- Des méthodes orientées données : getTitre(), getAuteur, getDate(), …

- Des méthodes orientées affichage : getResultatDeRecherche(), getVue(),…

Page 25: code4lib 2011 : choses vues et entendues par l'ABES

au-delà de MARC

interface RecordInterface

public getSearchResult()public getStaffView()… class IndexRecord

implements RecordInterface

protected getAuthor()protected getTitle()… class MarcRecord extends

IndexRecord

protected getAuthor()protected getTitle()…

Page 26: code4lib 2011 : choses vues et entendues par l'ABES

au-delà de MARC

Avantages:

- Moins rigide, plus évolutif

- Maintenance aisée

- Personnalisation plus facile

- Gérer rapidement d’autre format que le MARC (c’est le but)

- Avantages de la POO

Demo

Page 27: code4lib 2011 : choses vues et entendues par l'ABES

Divers projets

- Opiniated Metadata (usa) : on ne démarre pas du schéma XML des données mais du vocabulaire des utilisateurs, basé sur nokogiri:vocabulaire XML orienté objet (japon)

- The Pode project : FRBRisation et linked data (norvège)

- lucidimagination.com => SOLR

Page 28: code4lib 2011 : choses vues et entendues par l'ABES
Page 29: code4lib 2011 : choses vues et entendues par l'ABES

Sessions plénières

• Critical collaborations : Catalogueurs / developpeurs

– Comment je peux changer ça? / J’ai 1 idée!

– Départs modestes / grands objectifs. Quellespriorités ? Priorités communes ?

– Est-ce qu’on apprend de l’autre ce dont on a besoin de savoir ?

Page 30: code4lib 2011 : choses vues et entendues par l'ABES

Sessions plénières

• OCLC

– Il n’y a pas que le texte pour trouver 1 document : différents prototypes présentés :

– Google maps / Code barre / timeLine / Nuage de mots / nuage de mots avec géolocalisation / autorités sous forme d’arbre (relations) / Google Chart API (diagrammes)

– Pour savoir où se trouve un utilisateur : Google location JS : latitude/longitude

Page 31: code4lib 2011 : choses vues et entendues par l'ABES

Sessions plénières

• KUALI : open library environment– Utilisé par :

• Universitiés américaines : Duke, Florida, Chicago

• Utilisé au Canada, en Australie etc.

• OpenSource pour l’enseignement supérieur

• DRUPAL 7 as a RAD Tool– RAD : Rapid Application Development

– Out of the box : blog / website / CMS

– Plus compliqué (que wordpress) mais bcp de modules/API

Page 32: code4lib 2011 : choses vues et entendues par l'ABES

Sessions plénières

• Utilisation de CouchApp

• CouchDB est une base de données orientées document qui peutêtre interrogée et indexée avec une manière de “MapReduce”, en utilisant JavaScript. CouchDB offre aussi la réplication incrémentale avec détection et résolution de conflit bidirectionnel. ‘

• CouchDB propose une API JSON (REST) qui peut être interrogée par n’importe quel environnement qui accepte les requêtes HTTP. Il y a un nombre considérable de librairies clientes qui rendent facile la programmation avec le langage que l’on veut.

• CouchApp : sont des applications JavaScript et HTML5 serviesdirectement depuis CouchDB. Si vous pouvez tailler votreapplication avec ces contraintes, alors vous gagnez la “scalability” et la flexibiltié de CouchDB, sans rien faire.

Page 33: code4lib 2011 : choses vues et entendues par l'ABES

Sessions plénières

– Avant, utilisation de : Client -> Node.js (programmation Javascript I/O serveur)-> CouchDB

Mais avec couchApp, on peut se passer de Node.js

– HTTP API interface / easy replication / attach objects / document versioning by attaching earlier records

– Define data models in one place : models can be modified on the fly

– Forms, validation, and display extend from models

– Search : couchdb-lucene / solr / b-trees

Page 34: code4lib 2011 : choses vues et entendues par l'ABES

Sessions plénières• MCROSERVICES

– Des « blocs » de programmes– Merritt : service individuel pour chaque fonction du dépôt– Pas de base de données mais des fichiers “plats” (JSON)– Mustache : librairie de template (disponible pour une 20aine de langage de programmation)– Compass-style.org : CSS ++

Les fichiers Compass sont compilés en CSS qui fonctionnent sur tous les navigateurs-> Possible d’inclure un style dans un autre etc. border en 1 ligne etc.

– JQuery UI – JQuery BBQ : gère le bouton “back” du navigateur : librairie Javascript qui gère les états– Git ++ : contrôle de version– Bonsai : tinytree.info : crée automatiquement les répertoires pour faire un site web– YUI compressor : permet de compresser les fichiers pour économiser la bande passante– CSS sprites : généré par « lemonade » : permet de ne charger qu’une seule image contenant

toutes les images : 1 seule requête et 1 seule image en cache– Custom Sitemap generator : pour envoyer à google toutes les urls dynamiques

(référencement)

• Avantages : plus riche en fonctionnalités, plus petit et plus facile à maintenir / à adapter

• 1 service pour plusieurs sites : comme ça on met à jour à un seul endroit.

Page 35: code4lib 2011 : choses vues et entendues par l'ABES

Sessions plénières• Un système fait maison de bibliothèque

“digitale”

– XForms (Orbeon) / XPF = XML pipeline

– Workflow

– services images (imageMagick)

– Edition de DC, mais voudrait l’étendre à d’autres standards

– Soucis de performance (éditeur Orbeon) et notamment à cause de la flexibilité du METS

– Flash pour la visionneuse

Page 36: code4lib 2011 : choses vues et entendues par l'ABES

Sessions éclairs (lightning talks)

• ??– 45% : des recherches– Il faut que l’information soit en haut de l’écran, sinon elle n’est

pas lu– Le ranking est très important

• Social network in archives (EAD)– Utilise des données de plusieurs sites/bases dans une interface. – Ressemble à Calames + services « sociaux » :

commentaires/images

• JQuery widget– ajout de fonctionnalité (popup) en 5 minutes

• NDL Search (Japan) : portail • FRBR structure / web APIs (RSS/Atom/SRU) / smartphone

• ABES : * STAR *