Text Processing Information Extraction Basi di Dati Multimediali - Giugno 2005 Marco Ernandes: [email protected] Lo scenario Il text-processing raccoglie un grande insieme di problemi, tecniche e obiettivi. Sfrutta le teorie sviluppate nelle discipline: Computer Science Linguistica …dalle loro ibridazioni: Linguistica computazionale Natural Language Processing 2 Proprietà del testo Il Testo è semplicemente una struttura dati contenente caratteri alfanumerici e caratteri speciali. Il testo rappresenta la grande maggioranza di informazione disponibile nei computer: Tra il 70% e il 75% dell’informazione rilevante nel Web è in formato testuale. Ogni Sistema Operativo mette a disposizione una serie di tool per il testo: es: “word count” o “grep”. 3 Esempi di testo Tipo di fonte: Giornali Report Aziendali Pagine Web Articoli scientifici Documenti Legali Formati elettronici: Word, PDF, PS, HTML, XML,… Lingua: Inglese, Tedesco, Giapponese, etc… Character Encoding: ASCII, ISO-8859-1, ISO-8859-3, Unicode, etc… 4 Focus: l’informazione! INFORMAZIONE DATI + CONOSCENZA Dati: sequenza di fatti (in un qualsiasi formato, foto, video, testo…) di cui un sistema informativo viene in possesso Conoscenza: insieme di modelli (strutturali e/o funzionali) del mondo o del dominio di interesse. La conoscenza è necessaria per “interpretare” i dati e trasformali in informazione. Informazione: è la porzione di conoscenza richiesta per uno specifico problema. Rappresenta il valore di conoscenza associato ai dati in possesso nel contesto del problema. 5 Text Processing Il Testo è semanticamente legato al mondo in cui viviamo: veicola un significato. Quindi è legato alla conoscenza che abbiamo del mondo. Quindi è usabile come DATO per produrre informazione. Si ha TEXT-PROCESSING quando si sfrutta il senso veicolato da un testo (in una certa lingua/linguaggio). “grep” e “word count” non rappresentano vero Text Processing: sono una sorta di STEP 0. 6 Text Processing Il modo con cui possiamo ottenere informazione dai dati testuali è vario, si possono distinguere (senza separarli nettamente) vari filoni: INFORMATION RETRIEVAL INFORMATION EXTRACTION DOCUMENT SUMMARIZATION PASSAGE RETRIEVAL QUESTION ANSWERING TEXT UNDERSTANDING 7 Text Processing Come viene usato il testo: “grep”, “word count”: i file sono sequenze di caratteri Information Retrieval: i file (documenti) sono sequenze di unità/parole con un possibile significato Information Extraction: i file (documenti) sono sequenze di frasi con significato, possibilmente rilevanti per un argomento. Text Understanding: i file (documenti) sono articoli, storie, racconti, etc… con uno o molti significati. 8 Cosa vedremo Principalemnte: Information Extraction e Question Answering (Passage Retr., Doc. summarization). Le relazioni e le differenze tra questi e altri tipi di text processing. Le competizioni ufficiali internazionali. Metodi di analisi e comparazione. Gli approcci e le tecniche usate. Le difficoltà intrinseche. Interessi applicativi e motivazioni. 9 Information Extraction Per “information extraction” si intende l’attività di creare una rappresentazione strutturata della informazione rilevante presente nel testo. Questo filone di ricerca è stato creato dal DARPA (sigla per “Defense Advanced Research Projects Agency”), con lo scopo di riuscire a ricavare l’informazione rilevante e desiderata dagli enormi archivi di documenti ministeriali americani. 10 IE: esempio ANSA 19 Marzo 1997 ATTACCO TERRORISTICO “19 Marzo - Una bomba è esplosa stamani nei pressi di una centrale elettrica di San Salvador. L’ordigno, fatto detonare da un commando della guerrilla alle 06:50 (12:50 GMT), non ha causato vittime, ma ha completamente distrutto la centrale.” 1. Tipo attacco: Esplosione 2. Data: 19 Marzo 3. Luogo: San Salvador 4. Attentatore: commando guerrilla 5. Obiettivo fisico: centrale elettrica 6. Obiettivo umano: - 7. Effetti su 5: distrutta 8. Effetti su 6: nessuna vittima 9. Arma usata: bomba 11 IE: la competizione MUC: Message Understanding Conference MUC fornisce: Corpus di testi di addestramento Specifica del task di IE Specifica del formato di output Termine di confronto: risposte fornite dall’uomo nello stesso formato di output Valutazione: blind test per tutti i partecipanti 12 MUC: i task MUC-1 (1987): tactical naval operations reports (12 messaggi di training, 2 testing) MUC-2 (1989): stesso tema (105 training, 25 testing) MUC-3 (1991): attacchi terroristici nei paesi latini (1300 training, 3x100 testing) MUC-4 (1992): come MUC-3 (cambiano i task, cioè i template) MUC-5 (1993): news su joint-ventures e microelettronica (2 lingue, inglese e giapponese) MUC-6 (1995): news su assunzioni/licenziamenti di managers (aggiunta task) MUC-7 (1998): lanci di veicoli spaziali (aggiunta task) 13 IE vs. IR Hanno diversi obiettivi: IR: data una base documentale il sistema cerca di selezionare un subset di documenti rilevanti ad una certa query (set di parole chiave) ricevuta come input. L’utente umano navigherà la lista di documenti e cercherà l’informazione che più gli interessa. IE: data una selezione di documenti e dato un formato di risposta, il sistema cerca di estrarre in modo strutturato l’informazione rilevante. IE e IR sono tecnologie complementari! 14 IE vs. Full Text Understanding IE: solo un sottoinsieme del testo è rilevante la rappresentazione del target è predefinita, semplice e rigida Interessa solo ciò che un testo denota, non gli scopi dell’autore (connotazione, pragmatica). E’ possibile definire delle metriche di valutazione. Text Understanding: Interessa il senso di tutto il testo Il target è dato dalla capacità di rispondere ha domande sul testo. E’ molto difficile stabilire metriche di valutazione. 15 IE: metriche di valutazione Le risposte corrette sono chiamate “chiavi”. Sono i Template riempiti a mano correttamente. La valutazione delle risposte viene fatta confrontando le risposte del sistema con le chiavi. Simile all’Information Retrieval: Possibili Risposte Risposte Risposte Corrette Fornite corrette Non corrette fornite & non corrette Non fornite & non corrette fornite & corrette Non fornite & corrette Fornite Non fornite 16 IE: metriche di valutazione Precision e Recall Precision = # risposte corrette / # risposte fornite Recall = # risposte corrette / # possibili risposte corrette 1 Precision 0 Recall 1 17 IE: metriche di valutazione F-measure: la media armonica tra precision e recall. F = 2PR / P+R MA N 1 i 0 x i N 2 2 PR F 1 1 PR P R Oppure la media parametrizzata, che permette di scegliere di dare più importanza a P o ad R: ( 2 1) PR F ( 2 P R) = 1: P e R pesano in modo uguale. > 1: La Recall è più importante. < 1: La Precision è più importante. = 0: Conta solo la Precision 18 IE: applicazioni Supporto per DATABASE: Costruzione automatica a partire da testo Supporto per INFORMATION RETRIEVAL: Post-Filter di alta precisione per sistemi IR Classificazione testo Indicizzazione NL Supporto per TEXT SUMMARIZATION: Highlighting / Clipping Generazione di testo NL a partire da una rappresentazione formale. 19 IE: diversi subtasks Named Entity task (NE) Marcare nel testo le stringhe che rappresentano: persone, organizzazioni, luoghi, date, valori monetari. Template Element Task (TE) Estrarre l’informazione rilevante associata ai Named Entities (persone, luoghi, etc…). Template Relation Task (TR) Estrarre l’info sulle relazioni tra gli elementi del Template ottenuti con NE e TE. Scenario Template Task (ST) Come TR, ma la scelta del template (slot da riempire) è determinata dal riconoscimento di elementi rilevanti ad un certo argomento. Coreference Task (CO) Catturare l’informazione sulle coreferenze legati agli elementi marcati con TE e NE. 20 IE: diversi subtasks (esempi) “L’innovativo missile è stato lanciato Giovedì. E’ stato progettato da John Hoakney che lo ha chiamato “Big Red”. Dr. Hoakney fa parte dello staff della Rockets Inc.” NE: “missile”, “Giovedì”, “Dr. Hoakney”, “Rockets Inc.” CO: missile “lo”, “Big Red” Hoakney” TE: missile innovativo, lanciato Giovedì,… TR: “Dr. Hoakney” LAVORA PER “Rockets Inc.” ST (aerospazio): missile lanciato Giovedì / progettato da Dr. Hoakney per conto della Rockets Inc. Dr. Hoakney “John 21 IE: risultati nei subtasks MUC-7 (1998) Task Precision Recall F Human-F NE 95 92 93.4 98 TE 87 86 86.8 - TR 86 67 75.6 - ST 65 42 50.8 80 CO 69 56 61.8 22 IE: 2 approcci “Knowledge Engineering” (“Sistemi basati su regole”) C’è un esperto in IE e in linguistica che definisce “a mano” le grammatiche del sistema L’esperto classifica i “domain patterns” usando un corpus. La parametrizzazione (perfezionamento) del sistema viene fatto “a mano” “Automatically Trainable Systems” Usa metodi statistici Apprende regole da dei corpora di addestramento Apprende regole dall’interazione con l’utente 23 IE: 2 approcci “Knowledge Engineering” PRO: per un esperto creare un sistema funzionante è rapido / si possono ottenere grandi performance CON: c’è bisogno di expertise / se il problema cambia c’è da ricostruire tutto il sistema / creare un sistema ottimo è un processo lungo “Automatically Trainable Systems” PRO: alta portabilità tra domini diversi / non richiede la presenza di esperti CON: richiede grandi quantità di dati 24 IE: architettura generale Il sistema individua dei “fatti” nel testo. Il sistema integra questi “fatti” con le proprie conoscenze per fare inferenze o mettere in relazione i “fatti” tra loro Il sistema traduce l’informazione generata nel formato di output. 25 IE: architettura generale 2 Format Detection riconoscimento del formato e del layout del documento Tokenization si individuano le parole e le frasi grazie a spazi e punteggiatura. Morphological & Lexical Analysis Named Entities Recognition Syntactic Analysis Coreference Analysis Scenario pattern matching Inferenze & Event Merging 26 IE: Tokenization E’ un task “facile”, ma può creare qualche problema (specie in documenti “sporchi”, es: web) Il punto (the dot problem): se interpretiamo un punto come fine di un periodo (full-stop), sbagliamo quasi nel 10% dei casi. se consideriamo ogni punto non seguito da spazio un non full-stop allora riduciamo l’errore al 6,5% con analisi delle strutture delle abbreviazioni: errore al 2,5% Differente uso della punteggiatura nelle varie lingue. Differente rappresentazione di date 27 IE: Morphological Analysis “Lexical Lookup” Lista di forme (derivazioni di un lemma) di una lingua associate alle categorie morfologiche (es: SMS = sost. masc. sing. o AGFP = agg. fem. plu.) in italiano: > 250000 forme “general purpouse” Oltre al dizionario generale si usano liste domain specific che però rischiano di creare ambiguità L’inglese ha una morfologia così povera che spesso vengono usate solo le liste. “Part Of Speech Tagging” (PoS Tagging) Sistema che associa ad ogni parola di una frase una classe morfologica. 28 PoS Tagging 1 Ci si basa su un corpus pre-taggato. Metodo Triviale Tag Frequency: Calcolare il tag più probabile per ogni parola nel corpus ed usarlo per documenti successivi. Se il termine è sconosciuto: tag = Nome Comune quando iniziale minuscola, tag = Nome Proprio altrimenti. Se il corpus è abbastanza grande questo metodo dà già buoni risultati (ca. 90%). ES: corpus inglese con 1 milione parole taggate (40 tags), la parola put appare 41145 volte come V e 46 come N. P(V | “put”) = 41145/41199 = 0.999 P(N | “put”) = 46/41199 = 0.001 29 PoS Tagging 2 Metodo Transformation-Based Learning Si basa su quattro elementi: Calcolo delle Tag Frequency da corpus annotato Stima della error triple <taga, tagb, % errore> su un altro corpus. Un set di possibili trasformazioni da fare da taga a tagb per ridurre l’errore Fase di learning hill-climbing. 30 PoS Tagging 3 Metodo Transformation-Based Learning Transformations Cambia il tag a con il tag b quando: 1. 2. 3. 4. 5. 6. 7. Parola prec. (succ.) ha tag z Parola due passi indietro (avanti) ha tag z Una delle due parole prec (succ.) ha tag z Una delle tre parole prec (succ.) ha tag z Parola prec. ha tag z e succ. ha tag w Parola prec. ha tag z e due passi indietro ha tag w Parola prec (succ.) = Word Learning: Per ogni coppia di tag prova ogni trasformazione t Quantifica gli errori Scegli (come nuova regola) la trasformazione che riduce di più l’errore 31 PoS Tagging 4 Metodo Transformation-Based Learning Per le parole sconosciute si applicano trasformazioni di tag basandosi sulle lettere dei prefissi e dei suffissi: Cambia il tag a della parola sconosciuta W con il tag b quando: 1. 2. 3. I primi (ultimi) 1,2,3,4 caratteri sono la lettera z Togliendo (aggiungendo) il suffisso (prefisso) si ottiene una parola nota Etc.. Questo metodo riesce a taggare correttamente: 97.7 % 82.2 % 96 % parole note parole sconosciute totale parole 32 PoS Tagging 5 Metodo N-grams Sfrutta la teoria della probabilità con l’obiettivo di trovare la sequenza di tag t1,n che massimizza la probabilità P(t1,n|w1,n) Usa la Bayesian Rule applicata al testo: posterior prior P(ti ,n | w1,n ) likelihood P(t1,n ) P( w1,n | t1,n ) P( w1,n ) evidence Si deve trovare la sequenza di tag che massimizza la posterior probability (data una sequenza di parole). 33 PoS Tagging 6 Metodo N-grams (N-words) Si considera una finestra di N parole. Tipicamente 3: trigrammi. P(ti | wi , ti 1 , ti 2 ) P(ti | ti 1 , ti 2 ) P(wi | ti ) T goal arg max P(ti | ti 1 , ti 2 ) P( wi | ti ) t1 ...tn i 1 La probabilità di un tag dipende solo dai due tag precedenti (indipendenza tra parole!) La sequenza t1… tn a probabilità massima può essere calcolata usando l’algoritmo di Viterbi. 34 PoS Tagging 7 ES (bigramma): “The great put…” Nel corpus: • 41145 occorrenze di “put” come V e 46 come N • 7305323 verbi (V), 4236041 nomi (N), 6189010 agg. (A) • dopo un aggettivo 18097 verbi (V), 827962 nomi (N) “put” = Verbo? P(V | “put”,A) = P(“put”|V) P(V|A) = (41145 / 7305323) x (18097 / 6189010) = 0.0000164 “put” = Nome? P(N | “put”,A) = P(“put”|N) P(N|A) = (46 / 4236041) x (827962 / 6189010) = 0.0000015 Verbo = 0.0000164 / (0.0000164 + 0.0000015) = 91,6% (non 99,9%) Nome = 0.0000015 / (0.0000164 + 0.0000015) = 8,4% 35 PoS Tagging 8 Metodo N-grams Per migliorare le prestazioni si possono combinare uni-grammi, bi-grammi e tri-grammi: P(t3 | t1 , t2 ) 1P '(t3 ) 2 P '(t3 | t2 ) 3 P '(t3 | t1 , t2 ) Prior delle parole sconosciute: le frequenze delle lettere nei suffissi e nei prefissi (nel corpus). Smoothing delle probabilità per evitare i casi con 0 occorrenze (es: P(Art|Art) ) dovuti alla limitatezza del training set #ec + 1 P (ec ) #E + C Performance: 96/98 % 62/89% parole note parole sconosciute 36 IE: Named Entity Recognition E’ uno dei problemi più affrontati: perché i nomi propri sono rilevanti da un punto di vista informativo e quindi semplifica il text processing successivo (sono spesso i valori da inserire nelle slot del template di IE) Ha già dato risultati “accettabili”: Gestire i nomi propri solo con liste è impossibile: andrebbero aggiornate continuamente appartengono a troppi domini diversi le ambiguità sarebbero troppe 37 IE: Named Entity Rec. 2 I nomi propri vanno riconosciuti e inseriti in delle categorie. 3 categorie universalmente richieste: Persone, Luoghi, Organizzazioni Altre categorie comuni: Date, Misure (denaro, peso, etc.), Indirizzi Categorie domain-specific: Nomi farmacologici, Nomi di barche, Citazioni <name type=“person”> Bill Gates </name> è proprietaro della <name type=“company”> Microsoft </name>. 38 IE: Named Entity Rec. 3 3 approcci: LookUp List (Gazetteers) RULE-BASED: pattern matching MACHINE-TRAINABLE: spesso HMM GATE Possiede oltre 60000 ingressi Organizzati in 80 classi Gazetteers Liste di nomi, associati a categorie (organizzate gerarchicamente) + Macchine a Stati Finiti. Per esempio: lista_città Luogo lista_valute Città Roma, Parigi, etc… Misura Denaro Post_quantità Euro, Euri, Dollari, Sterline, etc… 39 IE: Named Entity Rec. 4 PATTERN MATCHING L’obiettivo è identificare i NE grazie ad una riconosciuta struttura interna. Si usano le espressioni regolari che operano sui caratteri (features ortografiche quali le maiuscole, la punteggiatura), sulle categorie di PoS, sulle categorie NE riconosciute grazie alle Gazetteers o persino categorie sintattiche. Word + {City, Town} Word = location:city es: Cape City, Campbell Town, NY City, etc… Word + {Street, Road, Avenue, Boulevard} Word = location:street es: Portobello Road, Fifth Avenue, etc… 40 IE: Named Entity Rec. 5 PATTERN MATCHING Si considera anche il contesto (shallow parsing): “to the” COMPASS “of” Word Word=location:city es: to the North of London Word “is a” (ADJ)? GeoWord Word=location es: London is a very cold city Problemi: Ambiguità semantiche (John F. Kennedy = luogo/persona, Philip Morris = compagnia/persona) Ambiguita sintattica (General Motors = titolo militare?) In mancanza delle feature ortografiche (es: nello speech recognition non si riportano le maiuscole!) 41 IE: Named Entity Rec. 6 MACHINE TRAINABLE La tecnologia che ha dato i risultati migliori è quella degli Hidden Markov Models (HMM) HMM: modello probabilistico a stati nascosti che tratta sequenze di eventi (in questo caso, sequenze di parole nel testo). Person 0,12 0,19 0,4 Start 0,7 Company End 0,81 0,88 Not a name 42 IE: Named Entity Rec. 7 HMM: macchina a stati finiti. La macchina passa da uno stato all’altro: In base all’input (es: parola) In base allo stato precedente In base a delle probabilità di transizione A partire da un corpus annotato si estraggono le probabilità di transizione P(Sj | Sj-1, Wj) In runtime: viene calcolata la sequenza di stati più probabile per una sequenza di parole (Algoritmo di Viterbi). I simboli associati ad ogni parola rappresentano la classe NE. 43 IE: Named Entity Rec. 8 Prestazioni: Metodi Rule-Based: • • • MUC-6: F=96.4% MUC-7: F=93.7% Speech: F=90.3% Metodi HMM-Based: • • • MUC-6: F=93% MUC-7: F=90.4% Speech: F=90.6% PROS & CONS: RULE-BASED: facile da sviluppare, ma lungo trial&error sui corpora. Estremamente veloce per CPU. Prestazioni molto buone su testo “standard”. HMM: ha bisogno di moltissimi dati (corpus con 1,2 milioni di parole per ottenere il 90%, oltre non va), spesso non disponibili. E’ un algoritmo generale e portabile. 44 IE: Named Entity Rec. 9 Un esempio reale: ANNIE (appartiene al GATE project). http://gate.ac.uk/annie/ DEMO ONLINE prova fatta: Articolo del NYTimes: raccolta firme per salvare Kodachrome 45 IE: Named Entity Rec. 10 ANNIE: “A Nearly New Information Extraction system” 46 IE: Syntactic Analysis Per poter affrontare gli altri problemi dell’IE capire le proprietà delle entità riconosciute mettere in relazione le entità tra loro, etc.. è necessario capire le relazioni sintattiche tra testo. Format Detection Tokenization Morphological & Lexical Analysis Named Entities Recognition Syntactic Analysis Coreference Analysis gli elementi del Scenario pattern matching Inferenze & Event Merging Il problema può essere affrontato in 2 modi: FULL SYNTAX PARSING: analisi sintattica completa SHALLOW PARSING: analisi sintattica superficiale Il secondo approccio è decisamente migliore, perché: Il Full Parsing è molto lento (e nell’IE, dovendo estrarre l’informazione da un numero altissimo di documenti, non c’è tempo). Il Full Parsing fa comunque molti errori L’informazione essenziale risiede in poche e basilari porzioni dell’albero sintattico. 47 IE: Syntactic Analysis 2 FULL PARSING VS. SHALLOW PARSING ES: “He reckons the current account deficit will narrow to only $ 1.8 billion in September.” Shallow parsing (text chunking): [NG He ] [VG reckons ] [NG the current account deficit ] [VG will narrow ] [PP to ] [NG only $ 1.8 billion ] [PP in ] [NG September] Full Parsing: [NS [N He]] [VS [V reckons] [NS [VS [N the current account deficit]] [V will narrow] [M1 to only $ 1.8 billion] [M2 in September]]] 48 IE: Syntactic Analysis 3 Shallow Parsing Intuizione linguistica: l’uomo legge raggruppando parole “A typical chunk consists of a content word surrounded by a constellation of function words, matching a fixed template.” By contrast, the relationship between chunks is mediated more by lexical selection than by rigid templates.” (Abney 1991). Il chunking avviene in 3 fasi: Word Identification (fatto dal POS-Tagging) Chunk Identification (rule-based) Attachment of Chunks (rule-based) 49 IE: Syntactic Analysis 4 Shallow Parsing ES: “The effort to establish such a conclusion of course must have two foci ...” Word Identification: [D the] [N effort] [P to] [V establish] [P such] [D a] [N conclusion] [Adv of course] [V must] [V have] [Num] [N foci] Chunk Identification: [NG(D+N) the effort ] [VG(P+V) to establish] [DP(P+D+N) such a conclusion] [VG(ADV+V+V) of course must have] [NG(Num+N) two foci] Chunk Attachment: NG: [the effort] VG: [[to establish] [such a conclusion]] VG: [[of course must have] [two foci]] 50 IE: Coreference Task estremamente difficile: coinvolge sintassi e semantica. Ci sono tipi diversi di coreferenza: pronomi, parafrasi, sigle, etc… ES: General Motors Corp. announced a major management shakeup. GM said its CEO had resigned. The big automaker is attempting to regain market share. It will announce… L’algoritmo generalmente adottato per risolvere le anafore segue due step: Marcamento di ogni espressione candidata Consistency check all’indietro dell’anafora 51 IE: Coreference 2 STEP 1: marcamento espressioni candidate si selezionano le parti nominali del testo (NG) General Motors Corp. announced a major management shakeup. GM said its CEO had resigned. The big automaker is attempting to regain market share. It will announce… vengono marcate usando: categoria NE, numero (sing. vs. plu.), genere (masc. vs. fem.), ruolo sintattico. STEP 2: consistency check all’indietro determina tutti i possibili antecedenti (fino ad una distanza predefinita, variabile per pronomi, nomi, etc…) elimina gli antecedenti non correlati: semanticamente usando “is a” hierarchy, categoria NE, etc.. ordina antecedenti per vicinanza (intra-frase, inter-frase, interparagrafo, inter-documento) se x è correlato a y la coreferenza sarà y x 52 IE: Inference and Event Merging ES: “Sam Schwartz retired as executive vice president of the famous hot dog manufacturer, Hupplewhite Inc. He will be succeded by Harry Himmelfarb.” Obiettivo: Evento: Persona: Posizione: Compagnia: leave job Sam Schwartz executive vice president Hupplewhite Inc Evento: Persona: Posizione: Compagnia: start job Harry Himmelfarb executive vice president Hupplewhite Inc L’informazione necessaria è sparsa su più frasi e quindi deve essere combinata prima di generare il template degli eventi L’informazione è spesso anche implicita. 53 IE: Inference & Event Merg. 2 ES: “Sam Schwartz retired as executive vice president of the famous hot dog manufacturer, Hupplewhite Inc. He will be succeded by Harry Himmelfarb.” Per ottenere la descrizione ad eventi dell’esempio si sfrutta: l’informazione sui Named Entities (i soggetti coinvolti nell’evento sono NE) l’analisi morfo-sintattica sul testo (i verbi regolano le relazioni tra NE all’interno degli eventi) la risoluzione delle coreferenze knowledge base di sistemi inferenziali In particolare nell’esempio si deve poter determinare cosa implica il verbo “succeed”. 54 IE: Inference & Event Merg. 3 ES: “Sam Schwartz retired as executive vice president of the famous hot dog manufacturer, Hupplewhite Inc. He will be succeded by Harry Himmelfarb.” Inferenze possibili: “Sam was president. He was succeeded by Harry” Harry will become president “Sam will be president, he succeeds Harry” Harry was president. Per codificare le inferenze in un dominio si può usare un sistema di produzioni (es: Prolog): leave-job(X-person, Y-job) & succeed(Z-person, X-person) start-job(Z-person,Y-job) start-job(X-person, Y-job) & succeed(X-person, Z-person) leave-job(Z-person,Y-job) 55