Corso di Laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia LIBER Progettazione di un programma per la ricerca bibliotecaria ispirato ai sistemi di chatbot sviluppati in linguaggio AIML Tesi di Laurea di Davide Andriolo Cos’è una chatbot? chat + bot to chat: “chiacchierare” bot: suffisso di robot Esempio 1: Alice no, you are only repeating program Esempio 1: Alice Esempio 2: Giulietta parlami della 156 Esempio 2: Giulietta Come funzionano le chatbot? AIML Artificial Intelligence Marked Language Alcuni esempi di codice: <category> <pattern>I AM CALLED *</pattern> <template> <set name="name"> <formal><star/></formal> </set> , good to know you. </template> </category> Alcuni esempi di codice: <category> <pattern>CHI FU ALAN TURING</pattern> <template> <srai>CHI E' ALAN TURING</srai> </template> </category> <category> <pattern>_ FELINI</pattern> <template> Alcuni felini sono belli.. Per esempio certi tipi di <settopic>gattini</settopic>. </template> </category> Altre funzioni utili: <a href="http://URLpaginaweb"> <javascript> <if> <random> Potenzialità dell’AIML: - risultati soddisfacenti a costi molto bassi - buon funzionamento in dominio limitato - modificabilità IL PROGETTO: LIBER bibliotecario virtuale capace di ricevere input in linguaggio naturale (funzione di mediazione fra l’utente e il database del sistema) Requisiti: Capacità di aiutare l’utente nella ricerca espandendo una query che non ha portato a risultati: If (“number-search”=0) then <category> <pattern> fantasmi </pattern> <template> <srai> fantasma <srai> </template> </category> Capacità di far fronte ad eventuali errori ortografici negli input degli utenti: <category> <pattern> abbazzia </pattern> <template> <srai> abbazia <srai> </template> </category> Requisiti: Capacità di fornire agli utenti informazioni sull’organizzazione della biblioteca (tempi di prestito, eventuali penali, etc.) Capacità di comprendere le frasi più comuni utilizzate dagli utenti per la ricerca (necessità di uno studio sul campo che identifichi tali frasi) Alcuni esempi di frasi per la ricerca: Per titolo: <Vorrei sapere la collocazione di *> Per autore: <Sto cercando un libro, l’autore è *> Per argomento: <Avete libri che parlano di *?> In AIML: <category> <pattern> Avete libri che parlano di *? </pattern> <template> <display target="target1"> http://search.biblioteca.unis.it/bin/search?topic=<star/> </display> Questi sono i libri di <set it> <settopic> * </settopic> </set it>, quale cercavi? </template> </category> Testing: Modalità: Mago di Oz (Houde e Hill 1997) Fase 1 (28 utenti): Libera, ha permesso di scoprire alcune falle e di aggiungere nuovi requisiti al sistema Fase 2 (5 utenti): Scenario Based, ha permesso di osservare l’interazione degli utenti con una versione più definita di LIBER Prima fase di Testing: Libri sulla guerra o scritti da Guerra? VORREI UN LIBRO DI GUERRA Ricerche incrociate: Mi dia “Titolo” di “Autore” Stavo cercando un libro di “Autore” del “anno” Mi servirebbe qualcosa su “Argomento” scritta fra il “anno1” e il “anno2” Richieste problematiche: <Un mio amico ha preso in prestito un libro martedì, ma non ricordo il titolo, si può ricavare in qualche modo?> <Mi consiglia qualcosa da leggere sotto l’ombrellone?> Analisi risultati Test 1: Un’interazione interamente in linguaggio naturale crea problemi in termini di visibilità (Norman 1988), portando alcuni utenti a formulare richieste eccessive per il sistema. È necessaria una nuova fase di progettazione che tenti di ovviare a tale inconveniente. Seconda fase di Testing: Scenario: Sei uno studente universitario e hai saputo della possibilità di ricevere libri in prestito dalla biblioteca della tua facoltà. Decidi di andarci per cercare un libro di Eco di cui ti ha parlato un amico, ma hai dimenticato il titolo. In compenso, ricordi che il protagonista della storia era un bugiardo che viveva (o almeno raccontava) storie incredibili. Ti trovi di fronte al computer per effettuare la tua ricerca. AVETE LIBRI DI ECO? QUAL È QUELLO CHE PARLA DI UN BUGIARDO? Ecco la descrizione del libro. Il suo codice di collocazione è: SBS 64573 Analisi risultati Test 2: 2 utenti ignorano LIBER e procedono con una classica ricerca per campi 2 utenti si soffermano a chiacchierare con LIBER e lo utilizzano almeno in parte per la loro ricerca 1 utente utilizza LIBER come funzione di Help Conclusioni (1/2): LIBER aiuta gli utenti meno esperti e non costituisce un limite per quelli abituati alla classica ricerca per database, che possono ignorarlo La soluzione in modalità mista (linguaggio naturale e manipolazione diretta) riesce a veicolare maggiormente diverse tipologie d’utenti verso l’obiettivo finale Il rapporto asimmetrico che si viene a creare con la macchina (Winograd e Flores 1986) limita la creatività del linguaggio degli utenti, ma ciò aiuta LIBER a funzionare meglio Conclusioni (2/2): Vi sono casi in cui il linguaggio naturale può far apparire un sistema informatico meno arduo, favorendone l’uso da parte di persone che respingerebbero un approccio formale più esplicito (Winograd e Flores 1986) Il compito della ricerca bibliotecaria può rientrare in questi casi, e può essere ben supportato da un sistema come LIBER