UNIVERSITÀ DEGLI STUDI DI ROMA LA SAPIENZA Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Anno Accademico 2007-2008 Sistema informativo per la gestione delle pubblicazioni e delle citazioni Candidato: Paolo Alfonsi Relatore: Prof. Marco Schaerf SOMMARIO OBIETTIVI PRELIMINARI AMBIENTE DI SVILUPPO SPECIFICHE PROGETTAZIONE CONCLUSIONI OBIETTIVI Realizzare il core di un sistema informativo estendibile per la gestione e l’analisi delle pubblicazioni scientifiche; Realizzare una base di dati in grado di immagazzinare i dati relativi alle pubblicazioni. PRELIMINARI (1/2) Google Scholar Se ho visto più lontano è perché sono salito sulle spalle dei giganti che mi hanno preceduto. Motore di ricerca web gratuito per le pubblicazioni scientifiche. Isaac Newton Publish or Perish Software gratuito per l’analisi delle pubblicazioni tramite Google Scholar. PRELIMINARI (2/2) Formati bibliografici: Indici bibliometrici: • • • • • • • • • • EndNote BibTeX Ris – RefMan CVS MODS H-index di Hirsch G-index di Egghe H-index contemporaneo H-index individuale AWCR SPECIFICHE • Interfacciamento con le fonti (Scholar, CINECA, …). • Gestione dei formati bibliografici (EndNote, BibTeX, …). • Struttura per l’interfacciamento col DB. • Calcolo delle statistiche e indici bibliometrici. • Interfaccia grafica a pannelli: • Struttura grafica del Core con menu e pannello per gestione ed elaborazioni sul db interno. • Pannello grafico per ogni fonte (Scholar, Cineca, ISI, …). • Pannello per la visualizzazione delle statistiche/indici bibliometrici. • Possibilità di espansione futura con l’aggiunta di nuovi moduli. AMBIENTE L’ambiente di sviluppo utilizzato è NetBeans. PROGETTO(1/4) Modello Entità-Relazione PROGETTO(2/4) Moduli principali Moduli: • • • • ImportExport InputOutput ModulePanel ORM PROGETTO(3/4) Classe Scholar Gestione produttore/consumatore PROGETTO(4/4) Classi Object-Relational Mapping @Entity @Table(name = "authors") @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name = "id", nullable = false) @JoinTable(name = "r_papers_authors", joinColumns = {@JoinColumn(name = "ref_author", referencedColumnName = "id")}, inverseJoinColumns = {@JoinColumn(name = "ref_paper", referencedColumnName = "id")}) @ManyToMany @OneToMany(cascade = CascadeType.ALL, mappedBy = "authors") CONCLUSIONI Sviluppi futuri: Omonimie Match Formati strutturati Front-end CINECA & Scholar Altri Front-end Contenuti Aree di ricerca Analisi dei dati – Data warehouse