LibX

Da sia.
Vai alla navigazione Vai alla ricerca

Cos'è?

LibX è una toolbar per Internet Explorer 7 o successivi, Mozilla Firefox 1.5 o successivi. I sistemi operativi supportati sono Windows XP o successivi, Linux, Mac OS-X o successivi. Windows XP necessita dell'installazione di .NET Framework 2.0, mentre le successive incarnazioni di Windows sono già predisposte. Il software è rilasciato sotto la Mozilla Public Licence.
Sviluppato dalla Virginia Tech University, permette di integrare numerosi cataloghi nel browser sia come barra degli strumenti sia come funzionalità integrate nella navigazione. Dettagli tecnici, presentazioni, pubblicazioni qui: http://libx.org.
Si tratta di un elemento che verrà installato localmente sul PC che si sta utilizzando o sul profilo virtuale personale (nel caso di utilizzo di PC virtualizzati).

Come avere una versione personalizzata per la propria BU?

Al momento la realizzazione viene gestita da Michele Pola, BUST Enzo Ferrari. Contattelo e indicate i seguenti dettagli:

  • un logo/icona semplice e stilizzato, tenendo presente che verrà ridotto a circa a soli 25x25 pixel (per chi lo vuole quadrato) o 65x25 (per chi lo vuole rettangolare);
  • un elenco di link da mettere nel menu a discesa sulla sinistra di vostro gradimento/utili per i vostri studenti. Non c'è un numero minimo o massimo, ma ovviamente esagerare può creare solo confusione all'utente;

Formato: http://www.indirizzocompleto.it - Testo che apparirà nel menu (ad esempio: http://www.biblioingegneria.unimore.it/sebina.htm - Verifica la tua situazione lettore)

  • Un elenco di cataloghi (siti commerciali, motori di ricerca ecc.) in cui lanciare la ricerca con la barra; di default saranno sempre presenti: SBN, Sebina, ACNP, Riviste elettroniche SBA (poi SFX). Se qualcuno NON vuole uno dei 4 lo indichi esplicitamente.

Come metterlo sul proprio sito?

Proporre LibX agli utenti è molto facile: basta mettere due link nella pagina web con si intende mettere online la propria versione. Un link per la versione per Internet Explorer ed uno per quello per Firefox. Ogni BBUU troverà i dettagli cliccando sulla propria versione tra quelle elencate in seguito.

Versioni personalizzate disponibili

Statistiche

Su ogni pagina di questo wiki per le singole versioni trovate le statistiche di download per ogni BBUU.
Per chi volesse pubblicarle sul proprio sito in maniera automatica e autoaggiornante:

  • Copiare il codice Javascript di cui sotto (nella sezione <head> della pagina o richiamandolo da un file esterno con le modalità consuete)
  • Copiare il codice xhtml seguente nella posizione in cui si vuole che compaia il numero dei download; per personalizzare il codice inserire nel campo edition_id="" il numero identificativo della propria edizione. Per conoscerlo, leggete il link (es.: per Economia http://libx.org/editions/94/65/94656DE1/libx-94656DE1.exe il numero è 94656DE1), oppure andate nel Pannello di controllo del vostro LibX in "about" alla voce Version.
<span class="libxstats" edition_id="00000000" field="total_downloads"></span>

Codice Javascript

<!--statistiche automatiche di LibX -->
<script type="text/javascript">
//<![CDATA[
libxstats = (function () {

var url = "http://libx.org/stats/makejson.php";
var isReady = false;
var requests = 0;
var editionsCache = { };
var pending = [ ];

var userAgent = navigator.userAgent.toLowerCase();
browser = {
	version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
	safari:  /webkit/.test(userAgent),
	opera:   /opera/.test(userAgent),
	msie:    /msie/.test(userAgent) && !/opera/.test(userAgent),
	mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)
};

// check the cache to see if we've already requested data for this edition
function editionIsInCache (edition_id) {
    return (editionsCache[edition_id] !== undefined);
}
/*
 * find all div and span tags, and check each of them to see if they are in
 * the class "libxstats"
 */
function findAllLibXTags () {
    var span = document.getElementsByTagName("span");
    var div =  document.getElementsByTagName("div");
    var alltags = [ ];
    var libxtags = [ ];
    for (var i = 0; i < span.length; i++) {
        alltags.push(span[i]);
    }
    for (var i = 0; i < div.length; i++) {
        alltags.push(div[i]);
    }
    for (var i = alltags.length - 1; i >= 0; i--) {
        if (alltags[i].className == "libxstats" && alltags[i].hasAttribute("field")
            && alltags[i].hasAttribute("edition_id")) {
            libxtags.push(alltags[i]);
        }
    }
    return libxtags;
}
function processLibXTags (libxtags) {
    for (var i = 0; libxtags.length > 0; i++) {
        var elem = libxtags.pop();
        pending.push(elem);
        var edition_id = elem.getAttribute("edition_id");
        if (editionIsInCache(edition_id)) {
            libxstats.processResults(editionsCache[edition_id], false);
        }
        else {
            loadJSONFunction(edition_id);
            window.setTimeout(function () {
                processLibXTags(libxtags);
            }, 40);
            return;
        }
    }
}
function buildTable (elem, json) {
    var table = document.createElement("table");
    for (var i in json.descriptions) {
        var row = document.createElement("tr");
        var desc = document.createElement("td");
        desc.innerHTML = i;
        var data = document.createElement("td");
        data.innerHTML = json.statistics[json.descriptions[i]];
        row.appendChild(desc);
        row.appendChild(data);
        table.appendChild(row);
    }
    elem.appendChild(table)
}

function addEvent( obj, type, fn ) {
    if (obj.addEventListener) {
            obj.addEventListener( type, fn, false );
            EventCache.add(obj, type, fn);
    }
    else if (obj.attachEvent) {
            obj["e"+type+fn] = fn;
            obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
            obj.attachEvent( "on"+type, obj[type+fn] );
            EventCache.add(obj, type, fn);
    }
    else {
            obj["on"+type] = obj["e"+type+fn];
    }
}
var EventCache = function(){
    var listEvents = [];
    return {
        listEvents : listEvents,
        add : function(node, sEventName, fHandler){
            listEvents.push(arguments);
        },
        flush : function(){
            var item;
            for(var i = listEvents.length - 1; i >= 0; i--){
                item = listEvents[i];
                if(item[0].removeEventListener){
                    item[0].removeEventListener(item[1], item[2], item[3]);
                };
                if(item[1].substring(0, 2) != "on"){
                    item[1] = "on" + item[1];
                };
                if(item[0].detachEvent){
                    item[0].detachEvent(item[1], item[2]);
                };
                item[0][item[1]] = null;
            };
        }
    };
}();
addEvent(window,'unload',EventCache.flush);

function bindReady() {
	// Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
	if ( document.addEventListener && !browser.opera) {
		// Use the handy event callback
		document.addEventListener( "DOMContentLoaded", function () { ready(); }, false );
    }
	
	// If IE is used and is not in a frame
	// Continually check to see if the document is ready
	if ( browser.msie && window == top ) (function(){
		if (isReady) return;
		try {
			// If IE is used, use the trick by Diego Perini
			// http://javascript.nwbox.com/IEContentLoaded/
			document.documentElement.doScroll("left");
		} catch( error ) {
			setTimeout( arguments.callee, 0 );
			return;
		}
		// and execute any waiting functions
		ready();
	})();

	if ( browser.opera )
		document.addEventListener( "DOMContentLoaded", function () {
			if (isReady) return;
			for (var i = 0; i < document.styleSheets.length; i++)
				if (document.styleSheets[i].disabled) {
					setTimeout( arguments.callee, 0 );
					return;
				}
			// and execute any waiting functions
			ready();
		}, false);

	if ( browser.safari ) {
		//var numStyles;
		(function(){
			if (isReady) return;
			if ( document.readyState != "loaded" && document.readyState != "complete" ) {
				setTimeout( arguments.callee, 0 );
				return;
			}
			// and execute any waiting functions
			ready();
		})();
	}

	// A fallback to window.onload, that will always work
    addEvent(window, "load", function () { ready(); });
}
function loadJSONFunction (edition_id) {
    var s = document.createElement("script");
    s.setAttribute("type", "text/javascript");
    var src = url +"?id="+ edition_id;
    src +="&cb=libxstats.processResults";
    s.setAttribute("src", src);
    document.documentElement.firstChild.appendChild(s);
}
function ready() {
    if (isReady) {
        return;
    }
    isReady = true;
    var libxtags = findAllLibXTags();
    processLibXTags(libxtags);
}

// when the page is loaded, load the widget
bindReady();

return {
    processResults : function (json, miss, table) {
        if (miss == true) {
            editionsCache[json.edition_id] = json;
        }
        var i = pending.length - 1;
        for (; i >= 0; i--) {
            if (pending[i].getAttribute("edition_id") == json.edition_id) {
                break;
            }
        }
        var fieldName = pending[i].getAttribute("field");
        if (fieldName == "all") {
            buildTable(pending[i], json);
        }
        else {
            pending[i].innerHTML = json.statistics[fieldName];
        }
        pending.splice(i, 1);       
    },
}

}
)();
//]]>
</script>

  • Personalizzazioni:

è possibile vedere non solo i download totali, ma anche quelli parziali, utilizzando una, più o tutte delle seguenti variabili nel campo "field":

LibX è stato scaricato in totale <span class="libxstats" edition_id="00000000" field="total_downloads"></span> volte
LibX è stato aggiornato dai singoli utenti (per indirizzo IP) negli ultimi 7 giorni <span class="libxstats" edition_id="00000000" field="unique_updates"></span> volte
LibX è stato aggiornato in totale <span class="libxstats" edition_id="00000000" field="total_updates"></span> volte
LibX per Mozilla Firefox è stato scaricato in totale dai singoli utenti (per indirizzo IP) <span class="libxstats" edition_id="00000000" field="unique_ff_downloads"></span> volte
LibX per Internet Explorer è stato scaricato in totale dai singoli utenti (per indirizzo IP) <span class="libxstats" edition_id="00000000" field="unique_ie_downloads"></span> volte
LibX è stato scaricato in totale dai singoli utenti (per indirizzo IP) <span class="libxstats" edition_id="00000000" field="unique_total_downloads"></span> volte
Tabella completa dei download: <span class="libxstats" edition_id="00000000" field="all"></span> volte

Come installarlo, aggiornarlo e disinstallarlo?

Mozilla Firefox

  • Installazione: cliccare il link indicato sul sito relativo. Il blocco di sicurezza di Firefox avviserà del tentativo di installazione di un componente aggiuntivo. Cliccate in alto a destra PERMETTI per completare il processo e riavviate il browser.
  • Disinstallazione: nel menu STRUMENTI--COMPONENTI AGGIUNTIVI; dalla finestra risultante cercate LibX nella sezione ESTENSIONI e cliccate il pulsante disinstalla. Riavviate il browser.
  • Aggiornamento: Firefox vi segnala in automatico la presenza di una nuova versione. Oppure nel menu STRUMENTI--COMPONENTI AGGIUNTIVI; dalla finestra risultante cliccate cerca aggiornamenti.

Internet Explorer

  • Installazione: cliccare il link indicato sul sito relativo, scaricare l'eseguibile e lanciarlo, scegliendo la cartella di destinazione dell'installazione.
  • Disinstallazione: dal Pannello di controllo di Windows, cliccate Installazione applicazioni e scegliete LibX dall'elenco.
  • Aggiornamento: all'interno di Internet Explorer, nel pannello di controllo attivabile cliccando su "LibX preferences" scegliete la scheda "Updates"; "Check for updates" lancia un controllo sull'esistenza di nuove versioni. Nel caso vengano trovate, cliccate il pulsante "Download updates" che apparirà. Riavviate IE quando richiesto per vederne gli effetti.

LibX può essere nascosto e richiamato con F9 o cliccando in basso a destra sull'icona che compare nella barra di stato del browser sulla funzione "Show toolbar".

Funzionalità standard di LibX

Video tutorial qui (parte 1.): http://www.youtube.com/watch?v=5Kq4xroyK_Y

Pannello di controllo

Il pannello di controllo è raggiungibile dall'icona "link utili-->libX preferences", e dalla stessa icona che compare anche in basso a destra nella barra di stato del browser.
È possibile decidere come il browser debba comportarsi al lancio di una ricerca (nuova scheda, nuova finestra, ecc.), attivare/disattivare la funzione di autolinking e le opzioni per CiteULike, abilitare, disabilitare e modificare le funzioni implementate nel tasto destro del mouse, decidere se LibX debba interrogare in automatico (per SFX e l'autolinking) determinate fonti esterne, aggiornare i CUES senza necessità di aggiornare tutto LibX.

Barra di ricerca con cataloghi integrati

La barra di ricerca è lo spazio da compilare con le parole chiave per lanciare le ricerche nei cataloghi. A sinistra si trova un menu a tendina da cui scegliere che tipo di ricerca verrà effettuata (parola chiave, titolo, autore ecc.). La possibilità di scelta dipende dal singolo catagolo. Se il catalogo selezionato offre almeno 2 possibilità, è possibile lanciare una ricerca incrociata. Cliccando sull'icona in fondo a destra (freccia in basso) appare un secondo campo di ricerca (eliminabile con l'icona X). Ancora più a destra un altro menu a tendina permette di scegliere il catalogo in cui lanciare la ricerca. Il pulsante adiacente CLEAR pulisce i campi.

Cataloghi di futura e certa implementazione:

  • SFX (in attesa di esordio ufficiale)
  • Metalib (in attesa di esordio ufficiale)

Cataloghi richiesti ma ancora problematici

  • OPAC Polo reggiano

Al momento sono stati inseriti, nelle varie versioni personalizzate, i seguenti cataloghi e ogni BBUU può suggerirne dei nuovi e diversi che saranno resi disponibili se tecnicamente possibile:

CATALOGO autore titolo ricerca libera editore ISBN-ISSN
Sebina no
SBN no
ACNP no no no no
ACNP Mo012 no no no no
Essper no no no no
Azalai metaopac no no no no
Riviste elettroniche SBA no no no no
Internet Bookshop no no
Google libri no no no no
Amazon Books
Libreria Universitaria no no
Licosa no no no no

Link utili

I link utili ai servizi della Biblioteca vengono visualizzati cliccando l'icona/logo a sinistra e funzionano come dei normali segnalibri.

Magic Buttons e pulsante Scholar

Con i "magic buttons" è possibile lanciare al volo una ricerca in Google Scholar o in uno dei cataloghi selezionati. Il pulsante Scholar funziona con il sistema "drag and drop": all'interno di una pagina web o anche di un documento aperto esternamente al browser, trovata una parola o una frase di interesse, basta selezionarla con il mouse e poi (tenendo cliccato il tasto sinistro) trascinare la selezione sul pulsante. La stessa procedura funziona anche facendo "drag and drop" sul pulsante del catalogo selezionato.

Cues

I CUES sono script integrati in LibX per collegare alle risorse bibliotecarie siti commerciali. Ad esempio su Amazon compare il logo di LibX di fianco ai titoli dei libri: cliccandolo si lancia una ricerca nel catalogo Sebina in automatico.
I CUES fanno una scansione della pagina HTML e quando trovano il punto programmato (ad es. su Amazon l'intestazione titolo\autore del libro) posizionano appunto l'icona della versione di LibX installata. Nota bene: i CUES modificano solo la versione della pagina caricata sul browser che stiamo usando, non modificano la pagina alla fonte, dal momento che è un programma installato localmente sul PC.
I CUES possono essere soggetti a falsi positivi, dal momento che i siti commerciali cambiano spesso il layout delle loro pagine e questi script devono dunque essere aggiornati di conseguenza. Si possono aggiornare solo i CUES, invece che tutto LibX, dall'apposita funzione del pannello di controllo.
Al momento i siti supportati sono: abebooks.com, alibris.com, Barnes & Noble, Amazon.com, Amazon UK e Amazon CA, google.com, google.ca, ecampus.com, powells.com, chapters.ca, Yahoo.com, Booklistonline.com.

Autolinking

Ogni volta che in una pagina web compare un ISBN, un ISSN, un PubmedId o un DOI, LibX lo trasforma automaticamente in un link. Cliccandolo lancia una ricerca nel catalogo preposto (a seconda del tipo di materiale). Aspettando qualche attimo e posizionando il mouse sul link senza cliccare comparirà l'etichetta con i dettagli. LibX infatti interroga xISBN e OCLC in "sottofondo" e recupera i dati dei numeri standard scansionati nella pagina web caricata.
Al momento l'autolinking di default punta a:

Numero standard Catalogo interrogato
ISBN Sebina
ISSN SFX unimore
Pubmed SFX unimore
DOI SFX unimore (al momento non ancora funzionante)

Search for integrato

Il metodo più comodo per lanciare una ricerca trovando un titolo di un libro in una bibliografia in una pagina web è selezionarlo, cliccare con il tasto destro e selezionare la voce "Search Sebina for Parola Chiave "testo selezionato".
Tutti i cataloghi e tutte le opzioni di ricerca possono essere abilitate nel tasto destro, oltre a quella di default "Sebina ricerca libera", agendo sulle preferenze del Pannello di controllo. Scegliendo di aggiungere un "Search for" di tipo AUTORE, la ricerca sarà euristica: selezionando un autore NOME COGNOME, LibX lo normalizzerà COGNOME, NOME automaticamente.

SFX

L'integrazione di SFX Unimore in LibX permette di estendere la fonte di SFX (source) a tutto il web. Attualmente le sources di SFX impostate a monte sono Google Scholar e le Banche dati di Ateneo: in queste comparirà sempre un'opzione "Servizi SFX Unimore" se collegati dalla rete di Ateneo.
Con SFX integrato in LibX, il pulsante comparirà in qualunque pagina del web (blog, bibliografie, altri motori di ricerca oltre a Google) venga intercettato un OpenUrl ed esso verrà risolto (target di SFX) verso le risorse elettroniche di Ateneo. LibX è anche compatibile con Coins, convenzione del codice HTML per creare OpenUrl in maniera più facile.

Supporto per CiteULike

CiteULike è un servizio della Springer per collezionare, formattare, condividere e gestire le citazioni bibliografiche. CiteULike, previa installazione di alcuni componenti, permette la cattura automatica da un certo numero di siti predefiniti (solitamente banche dati e editori di periodici elettronici scientifici) dei dati bibliografici in maniera corretta (senza bisogno di copia-incolla o di compilare schede bibliografiche manualmente).
LibX incorpora gli elementi necessari per fare comparire alla fine della barra dell'indirizzo (per i siti supportati) l'icona blu che permette di salvare su CiteULike senza installare ulteriori componenti.