Università degli studi di Modena e Reggio Emilia Facoltà di Scienze Matematiche Fisiche e Naturali Progetto e Sviluppo di un’Applicazione Mobile per il Calcolo dell’H-Index Daniele Cristofori Relatore: Prof. Riccardo Martoglia Anno accademico 2010/2011 INTRODUZIONE • Negli ultimi anni Google e Microsoft hanno cercato sempre di più di democratizzare i criteri di valutazione degli scienziati. • Tentativo a tale scopo H-Index di Jorge E. Hirsch. • Definizione di Hirsch: Uno scienziato possiede un indice h se h dei suoi Np lavori hanno almeno h citazioni ciascuno e i rimanenti (Np – h) lavori hanno ognuno al più h citazioni. • Esistono in rete diverse applicazioni che calcolano l’H-Index appoggiandosi a Google Scholar ma presentano tutte dei problemi… Introduzione 1 INTRODUZIONE Non appartiene a Floriana Esposito Introduzione 2 INTRODUZIONE • La precedente pubblicazione, pur non appartenendo a Floriana Esposito, partecipa al calcolo dell’H-Index Errore!!! • Alcune applicazioni hanno la funzionalità che permette di selezionare o deselezionare da parte dell’utente quelle pubblicazioni che si ritiene non appartengono allo scienziato considerato Troppo oneroso dal punto di vista utente!!! • Soluzione: Estrarre tutte le pubblicazioni dall’homepage dello scienziato di riferimento e considerare solo quelle nel calcolo dell’H-Index. Introduzione 3 INTRODUZIONE • E’ stata creata un’applicazione “H-Index Calculator” per iPhone (adottando quindi il linguaggio di programmazione Objective-C) che calcoli l’H-Index di un qualsiasi scienziato in maniera ottimale. Introduzione 4 L’APPROCCIO SEGUITO • Estrazione pubblicazioni da homepage. • Confronto pubblicazioni da Google Scholar con pubblicazioni da homepage. L’approccio seguito 5 ESTRAZIONE PUBBLICAZIONI DA HOMEPAGE • Obiettivo: Estrapolazione di tutte le pubblicazioni (titoli ed eventualmente autori) da una qualunque homepage. • Problema: Non si ha la conoscenza della struttura della pagina HTML che contiene tutte le pubblicazioni. • Soluzione: Ideazione ed implementazione di un algoritmo che, in maniera automatica, cerca di capire com’è strutturata l’homepage. Di seguito è mostrata una simulazione dell’algoritmo. Estrazione pubblicazioni da homepage 6 ALGORITMO ESTRAPOLAZIONE PUBBLICAZIONI DA HOMEPAGE … <td> <div id=ID59> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> MULTISTRATEGY OPERATORS FOR RELATIONAL LEARNING AND THEIR COOPERATION. </b> </td> </tr> </tbody> </table> </div> … <div id=ID60> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> INFERENCE OF ABDUCTION THEORIES FOR HANDLING INCOMPLETENESS IN FIRST-ORDER LEARNING. </b> </td> </tr> </tbody> </table> </div> … Estrazione pubblicazioni da homepage 7 ALGORITMO ESTRAPOLAZIONE PUBBLICAZIONI DA HOMEPAGE … <td> <div id=ID59> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> MULTISTRATEGY OPERATORS FOR RELATIONAL LEARNING AND THEIR COOPERATION. </b> </td> </tr> </tbody> </table> </div> … <div id=ID60> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> INFERENCE OF ABDUCTION THEORIES FOR HANDLING INCOMPLETENESS IN FIRST-ORDER LEARNING. </b> </td> </tr> </tbody> </table> </div> … Estrazione pubblicazioni da homepage 8 ALGORITMO ESTRAPOLAZIONE PUBBLICAZIONI DA HOMEPAGE … <td> <div id=ID59> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> MULTISTRATEGY OPERATORS FOR RELATIONAL LEARNING AND THEIR COOPERATION. </b> </td> </tr> </tbody> </table> </div> … <div id=ID60> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> INFERENCE OF ABDUCTION THEORIES FOR HANDLING INCOMPLETENESS IN FIRST-ORDER LEARNING. </b> </td> </tr> </tbody> </table> </div> … Estrazione pubblicazioni da homepage 9 ALGORITMO ESTRAPOLAZIONE PUBBLICAZIONI DA HOMEPAGE … <td> <div id=ID59> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> MULTISTRATEGY OPERATORS FOR RELATIONAL LEARNING AND THEIR COOPERATION. </b> </td> </tr> </tbody> </table> </div> … <div id=ID60> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> INFERENCE OF ABDUCTION THEORIES FOR HANDLING INCOMPLETENESS IN FIRST-ORDER LEARNING. </b> </td> </tr> </tbody> </table> </div> … Estrazione pubblicazioni da homepage 10 ALGORITMO ESTRAPOLAZIONE PUBBLICAZIONI DA HOMEPAGE … <td> <div id=ID59> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> MULTISTRATEGY OPERATORS FOR RELATIONAL LEARNING AND THEIR COOPERATION. </b> </td> </tr> </tbody> </table> </div> … <div id=ID60> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> INFERENCE OF ABDUCTION THEORIES FOR HANDLING INCOMPLETENESS IN FIRST-ORDER LEARNING. </b> </td> </tr> </tbody> </table> </div> … Estrazione pubblicazioni da homepage 11 ALGORITMO ESTRAPOLAZIONE PUBBLICAZIONI DA HOMEPAGE … <td> <div id=ID59> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> MULTISTRATEGY OPERATORS FOR RELATIONAL LEARNING AND THEIR COOPERATION. </b> </td> </tr> </tbody> </table> </div> … <div id=ID60> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> INFERENCE OF ABDUCTION THEORIES FOR HANDLING INCOMPLETENESS IN FIRST-ORDER LEARNING. </b> </td> </tr> </tbody> </table> </div> … Estrazione pubblicazioni da homepage 12 ALGORITMO ESTRAPOLAZIONE PUBBLICAZIONI DA HOMEPAGE … <td> <div id=ID59> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> MULTISTRATEGY OPERATORS FOR RELATIONAL LEARNING AND THEIR COOPERATION. </b> </td> </tr> </tbody> </table> </div> … <div id=ID60> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> INFERENCE OF ABDUCTION THEORIES FOR HANDLING INCOMPLETENESS IN FIRST-ORDER LEARNING. </b> </td> </tr> </tbody> </table> </div> … Estrazione pubblicazioni da homepage 13 ALGORITMO ESTRAPOLAZIONE PUBBLICAZIONI DA HOMEPAGE … <td> <div id=ID59> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> MULTISTRATEGY OPERATORS FOR RELATIONAL LEARNING AND THEIR COOPERATION. </b> </td> </tr> </tbody> </table> </div> … <div id=ID60> <table> <tbody> <tr bgcolor=‘#e1e1e1’> <td class=‘pubblfontbig’ colspan=4> <b> INFERENCE OF ABDUCTION THEORIES FOR HANDLING INCOMPLETENESS IN FIRST-ORDER LEARNING. </b> </td> </tr> </tbody> </table> </div> Fine della risalita! … Estrazione pubblicazioni da homepage 14 L’APPROCCIO SEGUITO • Algoritmo intelligente di estrapolazione pubblicazioni da homepage. • Confronto pubblicazioni da Google Scholar con pubblicazioni da homepage. L’approccio seguito 15 CONFRONTO PUBBLICAZIONI • Obiettivo: Riconoscere lo stesso titolo estratto dall’homepage in Google Scholar e viceversa. • Problema: In diversi casi una determinata pubblicazione estratta da Google Scholar è presentata con qualche piccola differenza di caratteri rispetto alla stessa pubblicazione all’interno dell’homepage. Non si può quindi usare un metodo di uguaglianza. • Soluzione: Definire un grado di similarità sopra il quale le due pubblicazioni vengano considerate la stessa. Questo lo si può fare grazie all’algoritmo Edit Distance. Edit Distance: date str1 e str2 due stringhe in input, ritorna il numero minimo di modifiche elementari che consentano di trasformare la stringa str1 nella stringa str2. Confronto pubblicazioni 16 INTRODUZIONE Verrebbe scartata Introduzione 17 INTRODUZIONE Grazie all’Edit Distance viene presa in considerazione Introduzione 18 ALGORITMO EDIT DISTANCE ε A N A L Y S I S - A N D - T H E - S O D A S ε 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 A 1 N 2 A 3 L 4 Y 5 S 6 I 7 S 8 - 9 A 10 N 11 D 12 - 13 S 14 O 15 D 16 A 17 S 18 e(i 1, j 1) c(ai, bj ); e(i, j) = min e(i, j 1) 1; c(a, b) = e(i 1, j ) 1 Algoritmo Edit Distance 0 1 se a b se a b o a - o b 19 ALGORITMO EDIT DISTANCE ε A N A L Y S I S - A N D - T H E - S O D A S ε 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 A 1 0 N 2 A 3 L 4 Y 5 S 6 I 7 S 8 - 9 A 10 N 11 D 12 - 13 S 14 O 15 D 16 A 17 S 18 e(i 1, j 1) c(ai, bj ); e(i, j) = min e(i, j 1) 1; c(a, b) = e(i 1, j ) 1 Algoritmo Edit Distance 0 1 se a b se a b o a - o b 20 ALGORITMO EDIT DISTANCE ε A N A L Y S I S - A N D - T H E - S O D A S ε 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 A 1 0 N 2 1 A 3 L 4 Y 5 S 6 I 7 S 8 - 9 A 10 N 11 D 12 - 13 S 14 O 15 D 16 A 17 S 18 e(i 1, j 1) c(ai, bj ); e(i, j) = min e(i, j 1) 1; c(a, b) = e(i 1, j ) 1 Algoritmo Edit Distance 0 1 se a b se a b o a - o b 21 ALGORITMO EDIT DISTANCE ε A N A L Y S I S - A N D - T H E - S O D A S ε 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 A 1 0 N 2 1 A 3 2 L 4 Y 5 S 6 I 7 S 8 - 9 A 10 N 11 D 12 - 13 S 14 O 15 D 16 A 17 S 18 e(i 1, j 1) c(ai, bj ); e(i, j) = min e(i, j 1) 1; c(a, b) = e(i 1, j ) 1 Algoritmo Edit Distance 0 1 se a b se a b o a - o b 22 ALGORITMO EDIT DISTANCE ε A N A L Y S I S - A N D - T H E - S O D A S ε 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 A 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 N 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 L 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Y 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 S 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 I 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 S 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 A 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 N 11 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 D 12 11 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 - 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 S 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 2 3 4 4 5 6 7 8 O 15 14 13 12 11 10 9 8 7 6 5 4 3 2 2 2 3 4 5 4 5 6 7 D 16 15 14 13 12 11 10 9 8 7 6 5 4 3 3 3 3 4 5 5 4 5 6 A 17 16 15 14 13 12 11 10 9 8 7 6 5 4 4 4 4 4 5 6 5 4 5 S 18 17 16 15 14 13 12 11 10 9 8 7 6 5 5 5 5 5 4 5 6 5 e(i 1, j 1) c(ai, bj ); e(i, j) = min e(i, j 1) 1; c(a, b) = e(i 1, j ) 1 Algoritmo Edit Distance 0 1 se a b se a b o a - o b 23 ALGORITMO EDIT DISTANCE ε A N A L Y S I S - A N D - T H E - S O D A S ε 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 A 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 N 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 L 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Y 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 S 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 I 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 S 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 A 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 N 11 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 D 12 11 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 - 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 S 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 2 3 4 4 5 6 7 8 O 15 14 13 12 11 10 9 8 7 6 5 4 3 2 2 2 3 4 5 4 5 6 7 D 16 15 14 13 12 11 10 9 8 7 6 5 4 3 3 3 3 4 5 5 4 5 6 A 17 16 15 14 13 12 11 10 9 8 7 6 5 4 4 4 4 4 5 6 5 4 5 S 18 17 16 15 14 13 12 11 10 9 8 7 6 5 5 5 5 5 4 5 6 5 4 1la, jstringa 1) c(ai, bj ); e(itra L’Edit Distance Con un grado0 di similarità se a adeguato, b e(i, j THE 1) SODAS’ 1; due b) pubblicazioni verrebbero considerate ‘ANALYSIS e Lec(a, e(i, j) = min AND = 1 se a boa -ob uguali ‘ANALYSISAND SODAS’ è 4 e(i 1, j ) 1 Algoritmo Edit Distance 24 TECNOLOGIE ADOTTATE • L’applicazione è stata sviluppata sfruttando: 1. Il sistema operativo iOS 2. Il linguaggio di programmazione Objective-C 3. I componenti grafici della libreria UIKit 4. Lo standard W3C del linguaggio XPath 5. Il database sqlite 6. I parser JujuParser e HTMLParser Tecnologie adottate 25 CONCLUSIONE E SVILUPPI FUTURI • Si è arrivati alla creazione di un’applicazione per iPhone che calcoli in maniera ottimale l’H-Index di un qualsiasi scienziato. • Punto di forza: prendere in considerazione in modo automatico solo quelle pubblicazioni che appartengono allo scienziato in questione scartando quelle pubblicazioni “sporche” comunque restituite da Google Scholar. • Sviluppi futuri: 1. Aggiunta funzionalità di modifica delle pubblicazioni. 2. Miglioramento algoritmo estrazione pubblicazioni da homepage che presentano i titoli/autori in maniera non omogenea. 3. Modifica o creazione parser che possano parser qualunque tipo di pagina HTML/XML. Conclusione e sviluppi futuri 27 GRAZIE PER L’ATTENZIONE! 28