Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Basi di...

24
Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 1 Basi di Dati e Sistemi Informativi su Web Corso di Laurea Specialistica in Ingegneria Informatica Massimo Ruffolo E-mail: [email protected] Web: http://www.icar.cnr.it/ruffolo Istituto di CAlcolo e Reti ad alte prestazioni del Consiglio Nazionale delle Ricerche (ICAR-CNR) Exeura s.r.l. – Spin-off dell’Università della Calabria Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 2 Il sistema HιLεX • Obiettivi: trattare informazioni in formato semi- e non strutturato implementare un approccio semantico all’estrazione di informazioni Idee centrali alla base dell'approccio proposto: uso di ontologie per modellare la conoscenza da estrarre adozione del linguaggio DLP+ (una estensione della DLP con le nozioni del paradigma orientato agli oggetti) per la rappresentazione delle ontologie rappresentazione bidimensionale dei documenti utilizzo di una grammatica bidimensionale per la rappresentazione dei pattern di estrazione riconoscimento dei pattern mediante il supporto di un motore di reasoning (DLV)

Transcript of Basi di Dati e Sistemi Informativi su Web - staff.icar.cnr.itstaff.icar.cnr.it/ruffolo/files/Basi di...

•1

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 1

Basi di Dati e Sistemi Informativi su Web

Corso di Laurea Specialistica in Ingegneria Informatica

Massimo Ruffolo

E-mail: [email protected]: http://www.icar.cnr.it/ruffolo

Istituto di CAlcolo e Reti ad alte prestazioni del Consiglio Nazionale delle Ricerche (ICAR-CNR)

Exeura s.r.l. – Spin-off dell’Università della Calabria

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 2

Il sistema HιLεX

• Obiettivi:

– trattare informazioni in formato semi- e non strutturato

– implementare un approccio semantico all’estrazione di informazioni

• Idee centrali alla base dell'approccio proposto:

– uso di ontologie per modellare la conoscenza da estrarre

– adozione del linguaggio DLP+ (una estensione della DLP con le nozioni del paradigma orientato agli oggetti) per la rappresentazione delle ontologie

– rappresentazione bidimensionale dei documenti

– utilizzo di una grammatica bidimensionale per la rappresentazione dei pattern di estrazione

– riconoscimento dei pattern mediante il supporto di un motore di reasoning (DLV)

•2

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 3

La rappresentazione della conoscenza in HιLεX

• La semantica delle informazioni da estrarre è rappresentata mediante ontologie DLP+ aventi come root class: “element”.

• Ogni istanza di element è caratterizzata da tre attributi:

– expression che descrive un concetto utilizzando un particolare formalismo

– type che specifica il tipo di formalismo usato nell'attributo expression

– label che descrive in modo informale il concetto in questione.class element (expression: string, type: expression_type(*), label: string).

(*)class expression_type ().

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 4

La rappresentazione della conoscenza in HιLεX

class short_date isa {syntactic_element}.class italian_short_date isa {short_date, italian_language_element}.

Esempio

class linguistic_element isa {element}.class language_element isa {element}.

class italian_language_element isa {language_element}.class english_language_element isa {language_element}....class spanish_language_element isa {language_element}.

class syntactic_element isa {element}.class structural_element isa {element}.

•3

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 5

La rappresentazione della conoscenza in HιLεX

Alcuni esempi

class number isa {syntactic_element}.signed_float: number (type: regexp_type,

expression: "[+-]\\d{1,3}(?>.\\d{3})*,\\d+",label: "float con segno").

class financial_element isa {element}.class stock_index isa {financial_element}.

dowJones: stock_index (type: dict_type,expression: "Dow Jones",label: "nome di indice di borsa").

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 6

La rappresentazione bidimensionale dei documenti

•4

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 7

La rappresentazione bidimensionale dei documenti

• Un documento:

– viene proiettato su di un piano cartesiano…

– …e scomposto in regioni rettangolari chiamate “portion”

(x1,y1)

(x2,y2)

(x3,y3)

(x4,y4)

• Una portion:

– è identificata da una coppia di punti a coordinate intere…

– …e rappresenta un elemento a cui è associata una particolare semantica

signed_floatdowJones

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 8

Le portion e gli operatori in DLP+

class point (x: integer, y: integer).

relation portion (p: point, q: point, elem: element).

relation strictFollow (p1: point, q1: point, elem1: element,p2: point, q2: point, elem2: element).

relation strictBelow (p1: point, q1: point, elem1: element,p2: point, q2: point, elem2: element).

relation westEastRecurrence (p: point, q: point,elem: element, n: integer).

relation northSouthRecurrence (p: point, q: point,elem: element, n: integer).

relation minContain (p1: point, q1: point, elem1: element,p2: point, q2: point, elem2: element).

•5

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 9

Gli operatori di base su portion

• horizontal_next:

– definisce formalmente se due portion sono adiacenti orizzontalmente

• vertical_next:

– definisce formalmente se due portion sono adiacenti verticalmente

• contain:

– definisce formalmente se due portion sono l’una contenuta nell’altra.

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 10

La grammatica per il riconoscimento di nuovi element

• L'obiettivo è quello di utilizzare un formalismo grammaticale per esprimere la derivazione di un nuovo elemento partendo da uno o piùelementi di base

• Le espressioni generabili prendono il nome di HιLεX (HIgh LEveleXpression). HιLεX è la sigla che dà il nome all'intero sistema.

•6

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 11

Il costrutto GENERALIZATION

class stock_index_cell isa {stock_index_structure}.

dowJones_cell: stock_index_cell (

type: hilex_type,

expression: "orContain_generalizationOf (arg: html_cell, inArg: dowJones,

condition: null)",

label: "cella contenente un nome di indice di borsa").

html_celldowJonesdowJones_cell stock_index_cell

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 12

Il costrutto CHAIN

stock_index_variation_row: stock_index_structure (

type: hilex_type,

expression: “sequenceOf (arg: [stock_index, unsigned_float,

signed_float, percentage], dir: horizontal, sep: sep_01",

label: “riga contenente variazioni di un indice di borsa").

stock_index unsigned_float signed_float percentage

stock_index_variation_row

•7

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 13

Il costrutto RECURRENCE

stock_index_table: stock_index_structure (

type: hilex_type,

expression: “recurrenceOf (arg: stock_index_variation_row,

range: <2,5>, dir: vertical)",

label: “tabella contenente stock_index_variation_row").

stock_index_variation_row

stock_index_variation_row

stock_index_variation_row

stock_index_structure

TechStar

DowJones

Nasdaqstock_index_table

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 14

Il costrutto TABLE

stock_index_table: stock_index_structure (

type: hilex_type,

expression: “sequenceTableOf (arg: [stock_index, unsigned_float, signed_float,

percentage], range: <2,5>, dir: vertical, sep: sep_01),

label: “tabella contenente stock_index_variation_row").

techStar unsigned_float signed_float percentage

dowJones unsigned_float signed_float percentage

dasdaq unsigned_float signed_float percentage

stock_index_table

•8

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 15

I dati estratti

Attraverso lapre-elaborazione del documento ed il riconoscimento dei nuovi pattern otteniamo come output le portionevidenziate in figura.

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 16

Nel caso di un file di testo

sep_01: separator (type: hilex_type, expression: “recurrenceOf (arg: blank_char, range: *, dir: horizontal)", label: “separatore di blank_char").

•9

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 17

I dati estratti dal file testuale

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 18

Architettura generale

•10

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 19

Il documento in input

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 20

Il documento in input

bi_summary

•11

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 21

La Knowledge Base

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 22

La knowledge base

class business_intelligence isa {business_solution}.class business_process_automation isa {business_intelligence}.class business_process_management isa {business_process_automation}.

business_process_management_00: business_process_management (type: regex_type,expression: "BPM“).

business_process_management_01: business_process_management (type: hilex_type,expression: “sequenceOf (

arg: [lemma_business, lemma_process, lemma_management],dir: horizontal,sep: blank_char)“).

bi_summary: business_intelligence (type: hilex_type,expression: “andContain_generalizationOf (

arg: html_cell,inArg: [business_intelligence, html_cell]condition: notCoincident)“).

•12

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 23

Il Query Analyzer

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 24

Il Query Analyzer

portion (P, Q, bi_summary)

Elementi di base Elementi “hilex”

Query Analyzer

•13

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 25

Il Document Analyzer

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 26

Il Document Analyzer

Elementi di base

Portion contenentii concetti di base

Document Analyzer

Documento

•14

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 27

Requisiti del Document Analyzer

• Modularità• Estendibilità• Flessibilità

• Efficienza• Scalabilità

Common Processing Architecture Common Processing Architecture (CPA)(CPA)

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 28

La Common Processing Architecture

• L’esecuzione di un processo produttivo richiede, nella CPA, l’applicazione della seguente metodologia:

• Si individuano le sotto-fasi• Ad ogni sotto-fase si associa una rappresentazione

formale, detta “processing unit”• A partire da una descrizione del processo produttivo

(input, risultati intermedi, elaborazione finale), un componente genera i possibili grafi di connessione

• Viene scelto un grafo di connessione• A partire da tale grafo, un componente genera un oggetto

che consente di eseguire il processo iniziale

•15

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 29

La Common Processing Architecture

Processing Processing unitsunits RepositoriesRepositories

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 30

L’idea delle processing unit

Ogni processing unit:• Implementa un’interfaccia ben

definita• È un’unità auto-consistente,

descritta dal tipo di Input e di Output

• È un “attore” che risponde alle sollecitazioni di un manager super partes

• Può dichiarare la necessità di processing unit di supporto

•16

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 31

Lo Unit Matcher

• Il criterio di base è il confronto tra i tipi di output e di input valutando le relazioni di ereditarietà tra classi

• Avvalendosi delle annotazioni introdotte con la JDK 5 èinoltre possibile discriminare processing unit altrimenti identiche quanto ai tipi gestiti

• Il modulo di confronto è sostituibile ed estendibile

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 32

Grafi di processing unit

ResultResult11

ResultResult22

InputInput

•17

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 33

Grafi di processing unit

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 34

Il Planner implementato

• Sfrutta le primitive di concorrenza disponibili nella JDK5

• Esegue l’algoritmo entro i confini di un’unica JVM• Guida il flusso delle informazioni tra le processing unit

stabilendo dei “condotti virtuali”• Invia gli stimoli alle processing unit per guidarne i

cambiamenti di stato• Offre alle processing unit servizi di gestione dinamica

delle risorse• Implementa politiche di gestione che tendono ad

ottimizzare lo sfruttamento delle risorse e della capacità di calcolo

•18

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 35

La catena per i file di testo semplice

…token(p1,q1,’management’).token(p2,q2,’systems’).…portion(p1,q1,eng_lemma_management).portion(p2,q2,eng_lemma_system).…

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 36

La catena per le pagine HTML

…portion(p1,q1,eng_lemma_knowledge).…portion(p2,q2,eng_lemma_system).…

•19

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 37

I vantaggi della CPA

• Semplicità la gestione della concorrenza èdemandata interamente al framework

• Flessibilità senza cambiare il codice delle processing unit è possibile:

– Riorganizzarle per adattarsi a vari processi– Eseguire lo stesso processo in ambienti

differenti (per esempio J2EE)• Scalabilità l’adattamento alle risorse disponibili è

gestito automaticamente dal framework

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 38

Le prestazioni

• Il Document Analyzer, basato sulla CPA, garantisce efficienza nel:

• trattamento di documenti molto vasti o complessi• riconoscimento di un gran numero di concetti

1.100mila

550mila

720mila

360mila

24sec22sec~1000pagg

13sec11sec~500pagg

O2O1Dimensioni

•20

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 39

L’ Hilex Rewriter

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 40

L’ Hilex Rewriter

Elementi “hilex”

moduli direasoning

DLP+

Hilex Rewriter

“sequenceOf (arg: [lemma_business, lemma_process, lemma_management], dir: horizontal, sep: blank_char)“

module (business_process_management_01){portion (P1, Q5, business_process_management_01) :-strictFollow (P1, Q1, lemma_business, P2, Q2, blank_char),strictFollow (P2, Q2, blank_char, P3, Q3, lemma_process),strictFollow (P3, Q3, lemma_process, P4, Q4, blank_char),strictFollow (P4, Q4, blank_char, P5, Q5, lemma_management).

}

•21

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 41

Il Pattern Recognizer

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 42

Il Pattern Recognizer

Portion di base

Nuoveportion

Pattern Recognizer

Moduli DLP+

•22

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 43

Il Pattern Extractor

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 44

Il Pattern Extractor

Portion

Pattern Extractor

Documento

•23

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 45

Esempio applicativo: una pagina di DBLP

• DBLP: DigitalBibliography & Library Project

• L’obiettivo– Estrarre

dalla HomePagedel prof.N.Leonele pubblicazioni che vedono tra i co-autori il prof.D.Saccàe che trattano di DisjunctiveDeductiveDatabase

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 46

Esempio applicativo: una pagina di DBLP

nicola_leone: unical_professor (type: regexp_type, expression: "(?>(?>N.)|(?>Nicola))Leone").domenico_sacca: unical_professor (type: regexp_type, expression: "(?>(?>D.)|(?>Domenico))

(?>(?>Saccà)|(?>Sacca)|(?>Sacca'))").disjunctive: english_lemma (type: dict_type, expression: "disjunctive").

deductive: english_lemma (type: dict_type, expression: "deductive").database: english_lemma (type: dict_type, expression: "database").

dblp_paper_title: dblp_paper_item (type: regexp_type, expression: "(?>[\\w\\s-\\.,àèioùé'])+:\\s(.+?)\\..+").

blank_char: special_char (type: dict_type, expression: " ").

•24

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 47

Esempio applicativo: una pagina di DBLP

• Il passo successivo è il riconoscimento e la caratterizzazione degli elementi di alto livello– Sintagma Disjuntive Deductive Database– Titolo con Disjuntive Deductive Database– Articolo di N.Leone e D.Saccà

leone_and_sacca_paper_on_ddd: dblp_paper_item (type: hilex_type, expression: "andContain_generalizationOf (

arg: html_cell, inArg: [domenico_sacca, nicola_leone, ddd_dblp_paper_title], condition: notCoincident)"

).

Corso di Basi di Dati e Sist. Inf. su Web 2005-2006 - Massimo Ruffolo - Semantic Information Extraction 48