Managing Gigabytes for Java MG4J Indicizzazione ed interrogazione di basi di documenti Ilaria Bordino e Debora Donato.

Slides:



Advertisements
Presentazioni simili
Open Document Format for Office Applications Organization for the Advancement of Structured Information Standards Sergio Capone ITP.
Advertisements

SQL (Standard query language) Istruzioni per la creazione di una tabella: Create table ( tipo, (, [vincoli]) Primary key ( ) CHIVE PRIMARIA Foreign key(
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
UDDI (Universal Description, Discovery and Integration Protocol) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
Web Services.
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
E Windows SharePoint Services 2.0 Ivan Renesto Overview how to use Windows SharePoint Services.
Un DataBase Management System (DBMS) relazionale client/server.
MySQL Esercitazioni. Ripasso Connessione a MySQL. Creazione delle basi di dati e delle tablelle. Inserimento dei dati. Interrogazioni.
EJB Enterprise Java Beans B. Pernici. Approccio Java.
Pierluigi Plebani - Politecnico di Milano MAIS Registry URBE (Uddi Registry By Example) WP2 Roma - 25 Novembre 2005.
J0 1 Marco Ronchetti - Basi di Dati Web e Distribuite – Laurea Specialitica in Informatica – Università di Trento.
EJB Getting started Database: MySql Application Server: Pramati Server Ambiente di sviluppo: Pramati Studio 3 Applicazione esempio: Logon Trento, 30/10/2002.
prompt> java SumAverage
HDM Information Design notation v.4. HDM Information Design.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
1 Esercitazione sui segnali Problema: creare un programma analizzatore di file testuali che prenda come argomenti il nome di un file e una sequenza di.
MG4J – Managing GigaBytes for Java Indicizzazione ed interrogazione di una collezione di documenti Esercitazione Ilaria Bordino Sapienza Università di.
Raccolta, ranking e query delle pagine di un webgraph
MG4J – Managing GigaBytes for Java Indicizzazione ed interrogazione di una collezione di documenti Esercitazione Ilaria Bordino Yahoo! Research, Barcelona.
MG4J – Managing GigaBytes for Java Indicizzazione ed interrogazione di basi documentali Ilaria Bordino Yahoo! Research, Barcelona.
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
Modello dati LISTA LISTA: LISTA: sequenza finita di 0 o più elementi LISTA di tipo T: lista in cui tutti gli elementi sono dello stesso tipo T. es. lista.
© CEFRIEL Cenni su XML in Java Docente: Gabriele Lombardi
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Gestione File System e I/O in Windows 2000 Implementazione del File System FAT-12, FAT-16, FAT-32 NTFS API relative al File System Gestione dei dispositivi.
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
PRODOTTO CARTESIANO Otteniamo un prodotto cartesiano quando: viene omessa la condizione di join una condizione di join non è valida tutte le righe della.
Constraints.
Componenti dell’architettura Oracle
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Palermo, may 2010 F.Doumaz, S.Vinci (INGV-CNT- Gruppo di telerilevamento)
Un esempio: Registrazione e lettura di dati in un file
Professional Users. Per poter lavorare sul Dizionario, bisogna registrarsi come Utente Professionale – Professional User (solo.
Microsoft Access Maschere.
Muoversi tra le finestre
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 4 ARGOMENTI: STRINGHE DI CARATTERI.
Filtered Index and Statistics Filtered Indexes Sergio Govoni
DA NATIVI DIGITALI A INTERNAUTI CONSAPEVOLI
Tutorial relativo al Mio EBSCOhost. Benvenuti al tutorial dedicato a Mio EBSCOhost, verranno fornite le istruzioni per la configurazione e lutilizzo ottimizzato.
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
INTERNET Internet è una rete a livello mondiale che permette alle persone di comunicare ed ad accedere a banca dati da qualunque parte del mondo e su qualunque.
Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa La mia scuola ha un sito Web: modelli per la qualità dei siti (Ingegneria del Web)
Prof. Pietro MASTROPIETRO MODELLO CLIENT-SERVER. prof. Pietro MASTROPIETRO Browser Richiesta pag1.htm INTERNET /INTRANE T SERVER WEB pag1.htm pag2.htm.
INTERNET Antonio Papa Classe 2^ beat I.S.I.S. G. Meroni a.s. 2007/2008.
Le reti informatiche Modulo 7. Internet Il browser La navigazione Motori di ricerca Raccogliere dati La stampa sommario.
Project Review byNight byNight December 6th, 2011.
Installazione di Drupal su Linux (sistemista) Installazione step-by-step e note.
VB.NET Sviluppo Applicazioni Desktop
Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Project Review byNight byNight December 21th, 2011.
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Project Review byNight byNight December 5th, 2011.
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro.
Collection & Generics in Java
Fondamenti di informatica T-A Esercitazione 7 : Collezioni AA 2012/2013 Tutor : Domenico Di Carlo.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
MG4J -- Managing GigaBytes for Java Pagina 1 MG4J – Managing GigaBytes for Java Indicizzazione ed interrogazione di basi documentali Ilaria Bordino Ida.
MG4J – Managing GigaBytes for Java Indicizzazione ed interrogazione di una collezione di documenti Esercitazione Ilaria Bordino Ida Mele Sapienza Università.
Tutorato Elementi di Informatica 2013
Transcript della presentazione:

Managing Gigabytes for Java MG4J Indicizzazione ed interrogazione di basi di documenti Ilaria Bordino e Debora Donato

Informazioni Generali Ricevimento: momentaneamente non possibile :)

MG4J È un tool sviluppato presso il Dipartimento di Scienza della Informazione della Universitá di Milano Disponibile gratuitamente; Webpage:

Addizionare al classpath DIR=usr/share/java $DIR/mg4j/BeanShell/bsh-2.0b2.jar:$DIR/mg4j/mg4j jar:$DIR/mg4j/colt jar:$DIR/mg4j/jakarta-commons-collections-3.1.jar:$DIR/mg4j/jakarta- commons-configuration-1.2.jar:$DIR/mg4j/jal jar:$DIR/mg4j/jsap- 2.0.jar:$DIR/mg4j/mysql-connector-java.jar:$DIR/mg4j/fastutil jar:$DIR/mg4j/jakarta-commons-io-1.2.jar:$DIR/mg4j/javacc- 4.0.jar:$DIR/mg4j/libreadline-java.jar:$DIR/mg4j/pdfbox jar:$DIR/mg4j/gnu.getopt.jar:$DIR/mg4j/jakarta-commons-lang- 2.1.jar:$DIR/mg4j/javamail/mailapi.jar:$DIR/mg4j/servletapi5.jar:$DIR/mg4j/jaf.jar: $DIR/mg4j/jakarta-commons-logging- 1.1.jar:$DIR/mg4j/jetty5/jetty5.jar:$DIR/mg4j/mstor.jar:$DIR/mg4j/tagsoup.jar:$DIR /mg4j/log4j jar:$DIR/mg4j/velocity-1.4.jar:$DIR/mg4j/classpathx-jaf- 1.0.jar:$DIR/mg4j/tomcat5-servlet-2.4-api jar:$DIR/mg4j/xalan-j2-serializer jar

MG4J Permette lindicizzazione e linterrogazione di collezioni di documenti di grandi dimensioni; INPUT: serie di documenti omogenei (dello stesso tipo) OUTPUT: indice invertito USO: Permette di effettuare semplici interrogazioni sulla collezione di documenti indicizzata

Architettura (Pacchetti Principali) Document –Document –DocumentCollection –FileSetDocumentCollection –DocumentFactory Index Query –HttpFileServer Documentation: Manual:

Document Interface definita in it.unimi.dsi.mg4j.document Un documento è composto da un numero di campi che dipende dal tipo di documento; Per esempio: – from, to, data, subject, body –Pagina html: title, url, body

Interface Document Definita in it.unimi.dsi.mg4j.document Ogni classe che implementa Document rappresenta un singolo documento indicizzabile.

Interface DocumentCollection Definita in it.unimi.dsi.mg4j.document Una collection e una collezione di documenti accessibili in modo casuale.

Class FileSetDocumentCollection Definita in it.unimi.dsi.mg4j.document Una DocumentCollection corrisponde a un insieme di file specificati in forma di array.

Interface DocumentFactory Definita in it.unimi.dsi.mg4j.document Una factory esegue il parsing di documenti omogenei.

Istanze della DocumentFactory CompositeDocumentFactory HtmlDocumentFactory IdentityDocumentFactory MailDocumentFactory PdfDocumentFactory ReplicatedDocumentFactory

Class HttpFileServer Definita in it.unimi.dsi.mg4j.query Implementazione di un server http che permette di interrogare una collezione indicizzata

Class Query Interprete a linea di comando per linterrogazione della collezione indicizzata.

Costruire la prima collezione di documenti Lindicizzazione in MG4J e centrata sul concetto di documento; Collezione di partenza: Attori e attrici Si usa la class FileSetDocumentCollection : che permette di costruire e serializzare un insieme di documenti specificati mediate il nome del file

Costruire la prima collezione di documenti java it.unimi.dsi.mg4j.document.FileSetDocumentCollection -- help FileDocumentFactory : FileDocumentFactory –e –f find Attori_e_attrici/ -iname \*.html -type f | java it.unimi.dsi.mg4j.document.FileSetDocumentCollection -f it.unimi.dsi.mg4j.document.HtmlDocumentFactory -p encoding=UTF-8 actors.collection find : e un comando linux che fornisce la lista dei file contenuti nella directory specificata. Restituisce un file per ogni linea.

La Collection La collezione actors.collection non contiene i file, ma soltanto i loro nomi (riferimenti). Linserimento o la cancellazione di file nellinsieme di documenti che vogliamo indicizzare, rende inconsistente la collection.

Informazioni sulla Collection BeanShell: java source interpreter java bsh.Interpreter bsh % t = load("htmlshare.collection"); bsh % print (t.size()); bsh % d = t.document(0); bsh % print (d.title()); bsh % print (d.uri()); bsh % exit();

La BeanShell E una shell java che permette di eseguire iterativamente frammenti di codice java. Utile per scrivere prototipi o per il test di applicazioni. E gia inclusa nellinsieme dei jar scaricabili dalla pagina del corso. Download e tutorial:

Creazione dellindice Index: – java it.unimi.dsi.mg4j.tool.Index --help java -Xmx512M it.unimi.dsi.mg4j.tool.Index -- downcase -S actors.collection mycollection downcase: tutti i termini vengono considerati minuscoli (case folding) -S: specifica la collection generata al punto precedente. Se non specificata, Index legge lo standard input mycollection: basename che vogliamo assegnare allindice.

Fasi dellindicizzazione Zeroth pass (opzionale): costruisce il dizionario dei termini. Genera i file basename.index e basename.properties First pass: costruisce lindice invertito: doc1: pos1,.., posM Middle pass (opzionale): produce un ordinamento lessicografico dei termini nellindice. Second pass: sceglie il metodo di compressione e crea il basename.index ed inserisce altre voci in basename.properties -e specifica il metodo di compressione (attualmente implementati -code, -code, golub)

Struttura dellindice mycollection-{text,title}.terms: un file di testo contenente lintero dizionario, un termine per riga, ordinato secondo lindice –more mycollection-text.terms mycollection- { text,title}.frequencies: per ciascun termine, il numero di documenti in cui tale termine appare (codificato in -code) mycollection-{title,text}.sizes: contiene, per ciascun documento indicizzato, la corrispondente dimensione (=numero di parole) in - code.

mycollection{text,title}.globcounts: per ciascun termine, viene memorizzato il numero di occorrenze in -code. mycollection{text,title}.offset: per ciascun termine, viene memorizzato loffset in -code mycollection-{text,title}.batch : quando la memoria e piena di termini, viene effettuata una copia codificata in -code in un file batch e viene iniziata una nuova lista. Alla fine del processo, i file di batch vengono uniti.

mycollection{text,title}.stats: raccoglie alcune statistiche sull' indicizzazione mycollection{text,title}.index: lindice invertito in -code.

mycollection{text,title}.properties: contiene alcuni dati relativi al processo di indicizzazione: Documents: numero di documenti nella collection; Terms: numero di termini indicizzati; Occurrences: numero di parole nellintera collection; Batches: numero di batch file generati; Maxdocsize: massima dimensione di un documento (parole); termprocessor: il term processor (se presente) usato durante la costruzione: ad esempio DowncaseTermProcessor; Occsperbatch: massimo numero di occorrenze in ciascun batch; Permutation: nome del file di premutazione usato. –More mycollection-text.properties –ls –lh mycollection*

Il web server Query: it.unimi.dsi.mg4j.query.Query [--help] [(-c|-- collection) ] [(-t|--titleList) ] [-n|- -no-sizes] [-h|--http] [(-i|--itemclass) ] [(- m|--item-mime-type) ][(-p|-- port) ]basenameWeight1 basenameWeight2... b asenameWeightN java it.unimi.dsi.mg4j.query.Query --help java it.unimi.dsi.mg4j.query.Query -h -i it.unimi.dsi.mg4j.query.FileSystemItem -c actors.collection mycollection-text mycollection- title

Interrogazione dell'indice Interprete a linea di comando Web page :

Querying MG4J Simple query: cerca le occorrenze di una parola ttore –EX: attore –EX: attrice AND: scrivendo piu termini separati da AND (o &) si ottengono i documenti che contengono tutte le parole specificate; & pandolfi –EX: claudia & pandolfi OR: restituisce i documenti che contengono almeno una delle parole separate da OR (o |); | gerini –EX: pandolfi | gerini

NOT: restituisce i documenti che non contengono la parola preceduta da NOT (o !); & !pandolfi –EX: claudia & !pandolfi Parentesi: le parentesi sono usate per definire le priorita nella query & (pandolfi | gerini)EX: claudia & (pandolfi | gerini) FraseFrase: le parole messe fra appaiono consecutivamente nelle documenti ritornati –EX: invia questa | ricerca avanzata

Querying MG4J con asterisco (wild card) Prossimita: si puo` limitare la distanza massima fra un insieme di paroleProssimita: si puo` limitare la distanza massima fra un insieme di parole –EX: (claudia attrice)~3 AsteristicoAsteristico: * serve per specificare una qualunque sequenza di caratteri –EX: att*

Esercizi: compressione –c codeTypeIl tipo di compressione puo` essere indicato con –c codeType. Le codifiche disponibili in MG4J sono: –GAMMA: coding –DELTA: delta coding