Inteligencia Artificial  Interpretación semántica  <ul><li>Primavera 2009 </li></ul><ul><li>profesor: Luigi Ceccaroni </li...
CFG recognition using difference lists <ul><li>An efficient implementation of CFGs can be obtained by making use of  diffe...
CFG recognition using difference lists <ul><li>Think of the first list as  what needs to be consumed  (or if you prefer: t...
CFG recognition using difference lists <ul><li>The sentence we are interested in is the difference between the contents of...
CFG recognition using difference lists <ul><li>If we bear the idea of  consuming something, and leaving something behind  ...
CFG recognition using difference lists <ul><li>The idea underlying the way we handle the words is similar.  </li></ul><ul>...
CFG recognition using difference lists <ul><li>How do we use such grammars? Here's how to recognize sentences:  </li></ul>...
CFG recognition using difference lists <ul><li>Similarly, to generate all the sentences in the grammar, we ask  </li></ul>...
CFG recognition using difference lists <ul><li>And we generate all the noun phrases in the grammar as follows:  </li></ul>...
Formalismos de unificación <ul><li>La unificación se usa como mecanismo básico de composición entre constituyentes en  gra...
Análisis gramatical con unificación <ul><li>Gramática </li></ul><ul><ul><li>(1) oració (X,Y)  :- gnom(X,Z), gver(Z,Y) </li...
Análisis gramatical con unificación <ul><li>(7) el(1,2)  </li></ul><ul><li>(8) gos(2,3)  </li></ul><ul><li>(9) borda(3,4) ...
Análisis gramatical con unificación <ul><li>oració(1,4) </li></ul><ul><ul><li>(R1) (X      1, Y    4)  por unificación <...
Análisis gramatical con unificación <ul><li>art(1,U), nom(U,Z), gver(Z,4) </li></ul><ul><ul><li>(R4) aplicada a art(1,U) <...
Análisis gramatical con unificación <ul><li>nom(2,Z), gver(Z,4) </li></ul><ul><ul><li>(R5) </li></ul></ul><ul><li>gos(2,Z)...
Análisis gramatical con unificación <ul><li>gver(3,4) </li></ul><ul><ul><li>(R3) </li></ul></ul><ul><li>ver(3,4) </li></ul...
Análisis semántico <ul><li>Consiste en construir una representación de las frases en algún sistema formal. </li></ul><ul><...
Estrategias de análisis <ul><li>Dos maneras de plantear la interpretación semántica: </li></ul><ul><ul><li>Secuencial (sin...
Interpretación secuencial <ul><li>Problemas de ambigüedad </li></ul><ul><ul><li>Es posible que haya más de una interpretac...
Interpretación paralela <ul><li>Principal problema </li></ul><ul><ul><li>No se sabe si la interpretación sintáctica es cor...
Sistema de representación <ul><li>El sistema de representación tiene que permitir: </li></ul><ul><ul><li>Manejar cuantific...
Sistema de representación <ul><li>Los sistemas que no se basan en la sintaxis para la interpretación suelen utilizar siste...
Sistema de representación <ul><li>Ejemplos </li></ul><ul><ul><li>Los nombres propios corresponden a constantes. </li></ul>...
Sistema de representación <ul><li>La representación consiste normalmente en un árbol de análisis y una función de composic...
La representación del significado: ejemplo <ul><li>entrada : </li></ul><ul><ul><li>Qui dirigeix el PSOE? </li></ul></ul><u...
La representación del significado <ul><li>En la anterior forma lógica aparecen 4 tipos diferentes de información: </li></u...
Posibles representaciones del significado <ul><li>Lógica de predicados de primer orden </li></ul><ul><li>Otros formalismos...
Representaciones basadas en lógica <ul><li>Un vocabulario de  predicados  de los que hay que indicar la aridad (el número ...
Semántica y forma lógica <ul><li>Semantics = theories of meaning </li></ul><ul><li>Introduction of a level of context-inde...
Semántica y forma lógica <ul><li>Precisely defining the notions of  semantics  and  meaning  is surprisingly difficult. </...
Semántica y forma lógica <ul><ul><li>This fire  means  someone camped here last night . </li></ul></ul><ul><li>In this exa...
Semántica y forma lógica <ul><ul><li>“ Amble” means to walk slowly . </li></ul></ul><ul><li>This defines the  meaning  of ...
Semántica y forma lógica <ul><ul><li>A guard at the airport:  “Do you know what gate you are going to?” </li></ul></ul><ul...
Semántica y forma lógica <ul><ul><li>“ Do you know what gate you are going to?” </li></ul></ul><ul><li>This sentence then ...
Semántica y forma lógica <ul><li>Separating sentence  meaning  from sentence  usage  is complex, but there are many advant...
Semántica y forma lógica <ul><li>We use the term  meaning  in a context-independent sense. </li></ul><ul><li>We use the te...
Semántica y forma lógica <ul><li>The process of mapping a sentence to its logical form is called  semantic interpretation ...
Semántica y forma lógica <ul><li>Syntactic analysis </li></ul><ul><li>semantic interpretation  </li></ul><ul><li>Logical f...
Interpretación semántica: función de composición <ul><li>Interpretación a través de evaluaciones lambda: </li></ul><ul><li...
Función de composición: ejemplo
Función de composición: ejemplo
Gramáticas de cláusulas definidas (DCGs) <ul><li>Las DCGs permiten escribir gramáticas en forma de programas como, por eje...
Gramáticas de cláusulas definidas (DCGs): sintaxis <ul><li>Las reglas usan variables para pasarse información, hacer las c...
Gramáticas de cláusulas definidas (DCGs): sintaxis <ul><li>Para ejecutar una DCG se llama al símbolo principal de la gramá...
Gramáticas de cláusulas definidas (DCGs): ejemplo <ul><li>analisis(X,Y):- asercion(X,Y). </li></ul><ul><li>asercion --> sn...
What are definite clause grammars? <ul><li>Definite Clause Grammars (DCGs) are convenient ways to represent grammatical re...
DCGs <ul><li>A little grammar written as a DCG:  </li></ul><ul><li>s --> np, vp. np --> det, n. vp --> v, np. vp --> v. de...
DCGs <ul><li>For example, to find out whether  a woman shoots a man  is a sentence, we pose the query:  </li></ul><ul><ul>...
DCGs <ul><li>Similarly, to generate all the sentences in the grammar, we pose the query:  </li></ul><ul><ul><li>s(X,[]). <...
DCGs <ul><li>We generate all the noun phrases in the grammar as follows:  </li></ul><ul><ul><li>np(X,[]). </li></ul></ul><...
DCGs <ul><li>The Prolog language can translate this notation into the kinds of difference lists discussed before.  </li></...
DCGs <ul><li>To see what Prolog translates DCG rules into: </li></ul><ul><ul><li>let Prolog consult the rules of this DCG,...
DCGs <ul><li>Similarly, if you pose the query: </li></ul><ul><ul><li>listing(np) </li></ul></ul><ul><li>you will get:  </l...
DCGs <ul><li>To get a complete listing of the translations of all the rules, simply type: </li></ul><ul><ul><li>listing. <...
Separating rules and lexicon <ul><li>By separating rules and lexicon we mean that we want to eliminate all mentioning of i...
Separating rules and lexicon <ul><li>We are going to separate the rules form the lexicon.  </li></ul><ul><li>That is, we a...
Separating rules and lexicon <ul><li>Here is an example of a (very simple) lexicon.  </li></ul><ul><li>Lexical entries are...
Separating rules and lexicon <ul><li>A simple grammar that could go with this lexicon will be very similar to the basic DC...
Separating rules and lexicon <ul><ul><ul><ul><li>Grammar: </li></ul></ul></ul></ul><ul><ul><ul><ul><li>np - - > det, n. vp...
Separating rules and lexicon <ul><li>Consider the new  det  rule: </li></ul><ul><ul><ul><li>det --> [Word], {lex(Word, det...
Separating rules and lexicon <ul><li>With our present lexicon, this means that  Word  must be matched either with the word...
Separating rules and lexicon <ul><li>This explains the  how  of separating rules from lexicon, but it doesn't explain the ...
Separating rules and lexicon <ul><li>The answer is  yes!  for a theoretical reason: </li></ul><ul><ul><li>Arguably rules s...
Separating rules and lexicon <ul><li>Now, our little lexicon, with its simple  lex  entries, is a toy.  </li></ul><ul><li>...
Separating rules and lexicon <ul><li>Our  lex  entries give only the  syntactical category  of each word. </li></ul><ul><l...
Separating rules and lexicon <ul><li>That is,  grammars  should be thought of as separate entities which can access the in...
Grammar 1: a trivial grammar for a fragment of language <ul><li>s    np, vp.  % A sentence (s) is a noun phrase (np) plus...
Grammar 1: a trivial grammar for a fragment of language <ul><li>lex(the, det).  % ‘the’ is a determiner </li></ul><ul><li>...
Sentences for Grammar 1 <ul><li>mary loves john </li></ul><ul><li>the woman eats the apple </li></ul><ul><li>the man sings...
Grammar 2: restrictions in argument selection <ul><li>s     np, vp.   </li></ul><ul><li>compl([ ])    [ ]. </li></ul><ul...
Grammar 2: restrictions in argument selection <ul><li>v(A)    [Word], {lex(Word, v, A)}. </li></ul><ul><li>name    [Word...
Grammar 2: restrictions in argument selection <ul><li>lex(piensa, v, [arg(en)]). </li></ul><ul><li>lex(está, v, [arg(en)])...
Grammar 2: restrictions in argument selection <ul><li>lex(un, det). </li></ul><ul><li>lex(mary, name). </li></ul><ul><li>l...
Sentences for Grammar 2 <ul><li>mary piensa en john </li></ul><ul><li>john habla con mary </li></ul><ul><li>john ríe </li>...
Extension of Grammar 2 <ul><li>John habla de Clara con Mary </li></ul><ul><li>Needed modifications: </li></ul><ul><ul><li>...
Grammar 3: logical representation of sentences <ul><li>s(F)    np(S), v(S, X, F), compl(X). </li></ul><ul><li>compl([ ]) ...
Grammar 3: logical representation of sentences <ul><li>v(S,A,F)    [Word], {lex(Word, v, S, A, F)}. </li></ul><ul><li>nam...
Grammar 3: logical representation of sentences <ul><li>lex(clara, name). </li></ul><ul><li>lex(maria, name). </li></ul><ul...
Grammar 3: logical representation of sentences <ul><li>lex(el, det).  </li></ul><ul><li>lex(un, det). </li></ul><ul><li>le...
Grammar 3: logical representation of sentences <ul><li>lex(ríe, v, S, [ ], reir(S)). </li></ul><ul><li>lex(piensa, v, S, [...
Sentences for Grammar 3 <ul><li>unary predicate  (ríe, v, S, [ ], reir(S)). </li></ul><ul><li>binary predicate  (piensa, v...
Prolog input and output <ul><li>analysis(F, X, [ ]):- s(F, X, [ ]). </li></ul><ul><li>| ?- analysis(F, [juan, está, en, ba...
Prolog input and output <ul><li>| ?- analysis(F, [el, libro, está, en, barcelona], [ ]). </li></ul><ul><li>F = locativo(li...
Prolog input and output <ul><li>| ?- analysis(F, [el, hombre, habla, de, juan, con, maria], [ ]). </li></ul><ul><li>F = co...
Prolog input and output <ul><li>| ?- analysis(F, [el, profesor, piensa, en, un, libro], [ ]). </li></ul><ul><li>F = pensar...
Grammar 4: quantification  <ul><li>It exists X and X is a  libro : </li></ul><ul><ul><ul><ul><li>el libro = e(X, libro(X))...
Grammar 4: quantification  <ul><li>el libro cae = e(X, and(libro(X), cae(X))) </li></ul><ul><li>Juan piensa en el libro = ...
Grammar 4: quantification  <ul><li>lex(el,det,K,S1,S2,e(K,and(S1,S2))). </li></ul><ul><li>lex(un,det,K,S1,S2,e(K,and(S1,S2...
Grammar 4: quantification  <ul><li>compl([ ],S,S)    [ ]. </li></ul><ul><li>compl([arg(X,K) | Y],S1,S)    p(X), np(K,S2,...
Prolog input and output <ul><li>| ?- analysis(F,[el,hombre,ríe],[ ]). </li></ul><ul><li>F = e(_A,and(hombre(_A),reir(_A)))...
Prolog input and output <ul><li>| ?- analysis(F,[el,hombre,habla,de,juan,con,maria],[ ]). </li></ul><ul><li>F = e(_A,and(h...
Prolog input and output <ul><li>| ?- analysis(F,[todo,libro,esta,en,barcelona],[ ]). </li></ul><ul><li>F = a(_A,implies(li...
Extension of Grammar 4 <ul><li>El hombre bueno: </li></ul><ul><ul><ul><ul><li>e(X, and(hombre(X), bueno(X))) </li></ul></u...
Grammar 5: semantic constraints <ul><li>Argument selection: </li></ul><ul><ul><li>*Juan lee el hombre </li></ul></ul><ul><...
Nouns’ semantic categories <ul><li>lex(clara, name, human). </li></ul><ul><li>lex(maria, name, human). </li></ul><ul><li>l...
Nouns’ semantic categories <ul><li>lex(libro, n, K, libro(K), inanimate).  </li></ul><ul><li>lex(hombre, n, K, hombre(K), ...
Verbs’ semantic categories <ul><li>lex(piensa, v, S, [arg(en,O)], pensar_en(S,O), sem(human, [X])). </li></ul><ul><li>lex(...
Grammar 5: semantic constraints <ul><li>v(S,A,F,sem)    [Word],{lex(Word,v,S,A,F,sem)}. </li></ul><ul><li>name(Word,sem) ...
Grammar 5: semantic constraints <ul><li>compl([ ],S,S,[ ])    [ ]. </li></ul><ul><li>compl([arg(X,K) | Y],S1,S,[sem | sem...
Upcoming SlideShare
Loading in …5
×

Inteligencia artificial

447 views
403 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
447
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Inteligencia artificial

  1. 1. Inteligencia Artificial Interpretación semántica <ul><li>Primavera 2009 </li></ul><ul><li>profesor: Luigi Ceccaroni </li></ul>
  2. 2. CFG recognition using difference lists <ul><li>An efficient implementation of CFGs can be obtained by making use of difference lists: a sophisticated Prolog technique. </li></ul><ul><li>The key idea underlying difference lists is to represent the information about grammatical categories not as a single list, but as the difference between two lists. </li></ul><ul><li>For example, instead of representing a woman shoots a man as [a,woman,shoots,a,man] we might represent it as the pair of lists </li></ul><ul><li>[a,woman,shoots,a,man] [ ].   </li></ul>
  3. 3. CFG recognition using difference lists <ul><li>Think of the first list as what needs to be consumed (or if you prefer: the input list ), and the second list as what we should leave behind (or: the output list ). </li></ul><ul><li>Viewed from this (rather procedural) perspective the difference list </li></ul><ul><li>[a,woman,shoots,a,man] [ ].  </li></ul><ul><li>represents the sentence a woman shoots a man because it says: If I consume all the symbols on the left, and leave behind the symbols on the right, I have the sentence I am interested in. </li></ul>
  4. 4. CFG recognition using difference lists <ul><li>The sentence we are interested in is the difference between the contents of the two lists. </li></ul><ul><li>Difference representations are not unique. </li></ul><ul><li>In fact, we could represent a woman shoots a man in infinitely many ways. </li></ul><ul><li>For example, we could also represent it as </li></ul><ul><li>[a,woman,shoots,a,man,ploggle,woggle]  [ploggle,woggle]. </li></ul><ul><li>Again the point is: if we consume all the symbols on the left, and leave behind the symbols on the right, we have the sentence we are interested in. </li></ul>
  5. 5. CFG recognition using difference lists <ul><li>If we bear the idea of consuming something, and leaving something behind in mind, we obtain the following recognizer (Prolog notation): </li></ul><ul><li>  </li></ul><ul><li>The s rule says: I know that the pair of lists X and Z represents a sentence if (1) I can consume X and leave behind a Y, and the pair   X and Y represents a noun phrase, and (2) I can then go on to consume Y leaving Z behind , and the pair Y Z represents a verb phrase . </li></ul>s(X,Z) :- np(X,Y), vp(Y,Z).   np(X,Z) :- det(X,Y), n(Y,Z).   vp(X,Z) :-  v(X,Y), np(Y,Z).   vp(X,Z) :-  v(X,Z). det([the|W],W). det([a|W],W).   n([woman|W],W). n([man|W],W).   v([shoots|W],W).
  6. 6. CFG recognition using difference lists <ul><li>The idea underlying the way we handle the words is similar. </li></ul><ul><li>The code </li></ul><ul><li>n([man|W],W). </li></ul><ul><li>means we are handling man as the difference between [man|W] and W. </li></ul><ul><li>Intuitively, the difference between what I consume and what I leave behind is precisely the word man . </li></ul>
  7. 7. CFG recognition using difference lists <ul><li>How do we use such grammars? Here's how to recognize sentences: </li></ul><ul><ul><li>s([a,woman,shoots,a,man],[]). </li></ul></ul><ul><ul><li>yes </li></ul></ul><ul><li>This asks whether we can get an s by consuming the symbols in [a,woman,shoots,a,man], leaving nothing behind. </li></ul>
  8. 8. CFG recognition using difference lists <ul><li>Similarly, to generate all the sentences in the grammar, we ask </li></ul><ul><li>s(X,[]). </li></ul><ul><li>This asks: what values can you give to X, such that we get an s by consuming the symbols in X, leaving nothing behind? </li></ul><ul><li>The queries for other grammatical categories also work the same way. </li></ul><ul><li>For example, to find out if a woman is a noun phrase we ask: </li></ul><ul><li>np([a,woman],[]). </li></ul>
  9. 9. CFG recognition using difference lists <ul><li>And we generate all the noun phrases in the grammar as follows: </li></ul><ul><li>np(X,[]). </li></ul><ul><li>It has to be admitted that this recognizer is not as easy to understand, at least at first, and it's a pain having to keep track of all those difference list variables. </li></ul><ul><li>This is where DCGs come in. </li></ul>
  10. 10. Formalismos de unificación <ul><li>La unificación se usa como mecanismo básico de composición entre constituyentes en gramáticas lógicas . </li></ul><ul><li>Història: </li></ul><ul><ul><li>Q-Systems (Colmerauer, 1972) </li></ul></ul><ul><ul><li>Prolog (Colmerauer, 1973) </li></ul></ul><ul><ul><li>Gramàtiques de Metamorfosi (Colmerauer, 1975) </li></ul></ul><ul><ul><li>Gramàtiques de Clàusules Definides (DCGs) (Pereira, Warren, 1980) </li></ul></ul>
  11. 11. Análisis gramatical con unificación <ul><li>Gramática </li></ul><ul><ul><li>(1) oració (X,Y) :- gnom(X,Z), gver(Z,Y) </li></ul></ul><ul><ul><li>(2) gnom(X,Y) :- art(X,Z), nom(Z,Y) </li></ul></ul><ul><ul><li>(3) gver(X,Y) :- ver(X,Y) </li></ul></ul><ul><li>Lexicón </li></ul><ul><ul><li>(4) art(X,Y) :- el(X,Y) </li></ul></ul><ul><ul><li>(5) nom(X,Y) :- gos(X,Y) </li></ul></ul><ul><ul><li>(6) ver(X,Y) :- borda(X,Y) </li></ul></ul>
  12. 12. Análisis gramatical con unificación <ul><li>(7) el(1,2) </li></ul><ul><li>(8) gos(2,3) </li></ul><ul><li>(9) borda(3,4) </li></ul><ul><li>Frase a analizar: oració(1,4) </li></ul>el gos borda 1 2 3 4
  13. 13. Análisis gramatical con unificación <ul><li>oració(1,4) </li></ul><ul><ul><li>(R1) (X  1, Y  4) por unificación </li></ul></ul><ul><li>gnom (1,Z), gver(Z,4) </li></ul><ul><ul><li>(R2) aplicada a gnom(1,Z) </li></ul></ul><ul><li>art(1,U), nom(U,Z), gver(Z,4) </li></ul>el gos borda 1 2 3 4
  14. 14. Análisis gramatical con unificación <ul><li>art(1,U), nom(U,Z), gver(Z,4) </li></ul><ul><ul><li>(R4) aplicada a art(1,U) </li></ul></ul><ul><li>el(1,U), nom(U,Z), gver(Z,4) </li></ul><ul><ul><li>(R7) (U  2) </li></ul></ul><ul><li>el(1,2), nom(2,Z), gver(Z,4) </li></ul><ul><li>nom(2,Z), gver(Z,4) </li></ul>el gos borda 1 2 3 4
  15. 15. Análisis gramatical con unificación <ul><li>nom(2,Z), gver(Z,4) </li></ul><ul><ul><li>(R5) </li></ul></ul><ul><li>gos(2,Z), gver(Z,4) </li></ul><ul><ul><li>(R8) (Z  3) </li></ul></ul><ul><li>gos(2,3), gver(3,4) </li></ul><ul><li>gver(3,4) </li></ul>el gos borda 1 2 3 4
  16. 16. Análisis gramatical con unificación <ul><li>gver(3,4) </li></ul><ul><ul><li>(R3) </li></ul></ul><ul><li>ver(3,4) </li></ul><ul><ul><li>(R6) </li></ul></ul><ul><li>borda(3,4) </li></ul><ul><ul><li>(R9): Fin </li></ul></ul>el gos borda 1 2 3 4
  17. 17. Análisis semántico <ul><li>Consiste en construir una representación de las frases en algún sistema formal. </li></ul><ul><li>En general es un problema intratable. </li></ul><ul><li>Se simplifica suponiendo que la semántica de una frase se pueda construir a partir de la semántica de sus partes: semántica compositiva . </li></ul><ul><li>Algunas características del lenguaje se tienen que tratar a parte: referencias, omisiones, contexto … </li></ul>
  18. 18. Estrategias de análisis <ul><li>Dos maneras de plantear la interpretación semántica: </li></ul><ul><ul><li>Secuencial (sintáctica -> semántica) </li></ul></ul><ul><ul><li>Paralela (sintáctica + semántica) </li></ul></ul>
  19. 19. Interpretación secuencial <ul><li>Problemas de ambigüedad </li></ul><ul><ul><li>Es posible que haya más de una interpretación sintáctica. </li></ul></ul><ul><ul><li>Hay que considerarlas todas, para poder comprobar sucesivamente cuáles son las semánticamente posibles. </li></ul></ul><ul><li>Principal ventaja </li></ul><ul><ul><li>El análisis semántico parte de un análisis sintáctico correcto. </li></ul></ul>
  20. 20. Interpretación paralela <ul><li>Principal problema </li></ul><ul><ul><li>No se sabe si la interpretación sintáctica es correcta hasta el final. </li></ul></ul><ul><li>Principal ventaja </li></ul><ul><ul><li>Poder descartar interpretaciones sintácticas correctas (o parcialmente correctas) que no tengan interpretación semántica asociada. </li></ul></ul><ul><li>Las reglas sintácticas incluyen la información semántica asociada. </li></ul><ul><ul><li>Se obtiene como resultado un árbol de análisis y una o varias interpretaciones. </li></ul></ul>
  21. 21. Sistema de representación <ul><li>El sistema de representación tiene que permitir: </li></ul><ul><ul><li>Manejar cuantificación, predicación, negación, modalidad (creencias) </li></ul></ul><ul><ul><li>Resolver la ambigüedad tanto léxica (polisemia) como sintáctica </li></ul></ul><ul><ul><li>Manejar inferencias (herencia, razonamiento por omisión) </li></ul></ul><ul><ul><ul><li>Importante a la hora de resolver problemas que involucren el contexto o el conocimiento del dominio. </li></ul></ul></ul>
  22. 22. Sistema de representación <ul><li>Los sistemas que no se basan en la sintaxis para la interpretación suelen utilizar sistemas tipo ontologías. </li></ul><ul><li>Por lo general, se utiliza una variedad de la lógica de primer orden adecuada al dominio de aplicación. </li></ul><ul><li>El elemento básico de representación es el lexema: raíz de un grupo de palabras que son diferentes formas de “la misma palabra” (ej.: ir, ido, yendo). </li></ul>
  23. 23. Sistema de representación <ul><li>Ejemplos </li></ul><ul><ul><li>Los nombres propios corresponden a constantes. </li></ul></ul><ul><ul><li>Los verbos intransitivos a predicados unarios: </li></ul></ul><ul><ul><li>Juan ríe ríe(juan) </li></ul></ul><ul><ul><li>Los verbos transitivos a predicados de aridad superior: </li></ul></ul><ul><ul><li>Juan lee el Quijote lee(juan, quijote) </li></ul></ul><ul><ul><li>Los nombres genéricos a predicados sobre variables: </li></ul></ul><ul><ul><li>El hombre hombre(X) </li></ul></ul><ul><ul><li>Los adjetivos a predicados unarios: </li></ul></ul><ul><ul><li>La casa grande grande(X) ∧ casa(X) </li></ul></ul>
  24. 24. Sistema de representación <ul><li>La representación consiste normalmente en un árbol de análisis y una función de composición que construye la interpretación de los elementos asociados. </li></ul><ul><li>sem S = f S (sem NP , sem VP ) </li></ul><ul><li>sem NP = f NP (sem ART , sem N ) </li></ul><ul><li>sem ART = f ART (sem el) </li></ul>S NP NAME Adrià VP V menja NP ART N bacallà el
  25. 25. La representación del significado: ejemplo <ul><li>entrada : </li></ul><ul><ul><li>Qui dirigeix el PSOE? </li></ul></ul><ul><li>forma lògica: </li></ul><ul><li>(pregunta </li></ul><ul><li>(referent (X)) </li></ul><ul><li>(X instancia (X, persona) </li></ul><ul><ul><ul><li>(el1 (Y instancia(Y, partit_polític) </li></ul></ul></ul><ul><ul><ul><ul><ul><li>nom(Y, &quot;PSOE&quot;)) </li></ul></ul></ul></ul></ul><ul><ul><ul><li>(Z instancia(Z, dirigir) </li></ul></ul></ul><ul><ul><ul><ul><ul><li>present(Z) </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>valor_prop(Z, agent, X) </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>valor_prop(Z, pacient,Y))))) </li></ul></ul></ul></ul></ul>
  26. 26. La representación del significado <ul><li>En la anterior forma lógica aparecen 4 tipos diferentes de información: </li></ul><ul><ul><li>Estructura lógica </li></ul></ul><ul><ul><li>Contenido conceptual (semántico) </li></ul></ul><ul><ul><li>Indicación de los actos del discurso </li></ul></ul><ul><ul><li>Anotaciones pragmáticas </li></ul></ul><ul><li>El formalismo de representación debería proporcionar una capacidad expresiva suficiente para garantizar la descripción de estos 4 tipos de información. </li></ul>
  27. 27. Posibles representaciones del significado <ul><li>Lógica de predicados de primer orden </li></ul><ul><li>Otros formalismos lógicos </li></ul><ul><li>Ontologías </li></ul>
  28. 28. Representaciones basadas en lógica <ul><li>Un vocabulario de predicados de los que hay que indicar la aridad (el número de argumentos y su tipo) </li></ul><ul><li>Un vocabulario de constantes y variables . </li></ul><ul><li>Un conjunto de conectores lógicos . </li></ul><ul><li>Un vocabulario de funciones de las que hay que indicar la aridad </li></ul><ul><li>Un conjunto de cuantificadores que actúan sobre los predicados que pueden ser cuantificados. </li></ul>
  29. 29. Semántica y forma lógica <ul><li>Semantics = theories of meaning </li></ul><ul><li>Introduction of a level of context-independent meaning called the logical form . </li></ul><ul><ul><li>It can be produced directly from the syntactic structure of a sentence. </li></ul></ul><ul><ul><li>It does not contain the results of any analysis that requires interpretation of the sentence in context. </li></ul></ul>
  30. 30. Semántica y forma lógica <ul><li>Precisely defining the notions of semantics and meaning is surprisingly difficult. </li></ul><ul><ul><li>The terms are used for several different purposes in natural and technical usage. </li></ul></ul><ul><ul><li>There is a use of the verb mean that has nothing to do with language: </li></ul></ul><ul><ul><li>This fire means someone camped here last night . </li></ul></ul>
  31. 31. Semántica y forma lógica <ul><ul><li>This fire means someone camped here last night . </li></ul></ul><ul><li>In this example, the fire is evidence for (or implies) the conclusion. </li></ul><ul><li>The meaning we are interested in is not this one. </li></ul><ul><li>It is closer to the usage when defining a word. </li></ul>
  32. 32. Semántica y forma lógica <ul><ul><li>“ Amble” means to walk slowly . </li></ul></ul><ul><li>This defines the meaning of a word in terms of other words. </li></ul><ul><li>We are interested in specifying meaning without having to refer back to natural language itself. </li></ul><ul><li>But even if we can do this, defining a notion of sentence meaning is difficult. </li></ul>
  33. 33. Semántica y forma lógica <ul><ul><li>A guard at the airport: “Do you know what gate you are going to?” </li></ul></ul><ul><li>If we interpret this as asking whether we know where we are going, we answer yes . </li></ul><ul><li>But the response can be based on a misunderstanding, if the guard then asks: </li></ul><ul><ul><li>“ Which gate is it?” </li></ul></ul>
  34. 34. Semántica y forma lógica <ul><ul><li>“ Do you know what gate you are going to?” </li></ul></ul><ul><li>This sentence then appears to mean different things in different contexts. </li></ul><ul><li>Can we define a notion of sentence meaning that is independent of context? </li></ul><ul><li>Is there a level at which this sentence has a single meaning, but may be used for different purposes? </li></ul>
  35. 35. Semántica y forma lógica <ul><li>Separating sentence meaning from sentence usage is complex, but there are many advantages, primarily modularity . </li></ul><ul><li>If sentences have no context-independent meaning, then we may not be able to separate: </li></ul><ul><ul><li>the study of language </li></ul></ul><ul><ul><li>the study of general human reasoning and context </li></ul></ul>
  36. 36. Semántica y forma lógica <ul><li>We use the term meaning in a context-independent sense. </li></ul><ul><li>We use the term usage for the context-dependent aspects. </li></ul><ul><li>The representation of context-independent meaning is called the logical form . </li></ul>
  37. 37. Semántica y forma lógica <ul><li>The process of mapping a sentence to its logical form is called semantic interpretation . </li></ul><ul><li>The process of mapping the logical form to the final knowledge representation language is called contextual interpretation . </li></ul>
  38. 38. Semántica y forma lógica <ul><li>Syntactic analysis </li></ul><ul><li>semantic interpretation </li></ul><ul><li>Logical form (ROJA1 <LA b1 PELOTA>) </li></ul><ul><li>contextual interpretation </li></ul><ul><li>Final representation Roja(BO73) </li></ul>S NP VP V es ADJP ART N pelota la roja
  39. 39. Interpretación semántica: función de composición <ul><li>Interpretación a través de evaluaciones lambda: </li></ul><ul><li>(lambda (x) (. . .)) = </li></ul><ul><li>= (  (x) (. . .)) </li></ul><ul><li>Gramática: </li></ul><ul><li>Oracio  GN FV (2 1) </li></ul><ul><li>GN  np (1) </li></ul><ul><li>FV  vi (1) </li></ul><ul><li>Fv  vt GN (1 2) </li></ul><ul><li>Lexicón: </li></ul><ul><li>Pere  np, pere </li></ul><ul><li>Maria  np, maria </li></ul><ul><li>riu  vi, (  (x) (riu(x)) </li></ul><ul><li>estima  vt , ((  (x) (  (y), estima(y, x)))) </li></ul>
  40. 40. Función de composición: ejemplo
  41. 41. Función de composición: ejemplo
  42. 42. Gramáticas de cláusulas definidas (DCGs) <ul><li>Las DCGs permiten escribir gramáticas en forma de programas como, por ejemplo, Prolog. </li></ul><ul><li>Prolog es un lenguaje de reglas que usa razonamiento hacia atrás como método de resolución. </li></ul><ul><li>Se define una sintaxis especial que permite diferenciar los elementos gramaticales de los procedimientos que se usan para tener en cuenta el contexto. </li></ul>
  43. 43. Gramáticas de cláusulas definidas (DCGs): sintaxis <ul><li>Las reglas usan variables para pasarse información, hacer las comprobaciones que exige la gramática o construir un resultado. </li></ul><ul><li>Se puede introducir código Prolog, entre llaves: </li></ul><ul><li>aaa(W) --> [W], bbb(W), {number(W)} </li></ul>
  44. 44. Gramáticas de cláusulas definidas (DCGs): sintaxis <ul><li>Para ejecutar una DCG se llama al símbolo principal de la gramática con dos parámetros: una lista con las palabras de la frase y una lista vacía: </li></ul><ul><li>frase([el,gat,menja,bacalla],[]) </li></ul>
  45. 45. Gramáticas de cláusulas definidas (DCGs): ejemplo <ul><li>analisis(X,Y):- asercion(X,Y). </li></ul><ul><li>asercion --> sn, verb,compl. </li></ul><ul><li>compl --> []. </li></ul><ul><li>compl --> prep,sn. </li></ul><ul><li>compl--> sn. </li></ul><ul><li>sn--> npr. </li></ul><ul><li>sn--> det,n. </li></ul><ul><li>verb--> [W],{verbo(W)}. </li></ul><ul><li>npr--> [W],{npropio(W)}. </li></ul><ul><li>n--> [W],{nombre(W)}. </li></ul><ul><li>det--> [W],{determ(W)}. </li></ul><ul><li>prep--> [W],{prepo(W)}. </li></ul><ul><li>npropio(clara). </li></ul><ul><li>npropio(maria). </li></ul><ul><li>npropio(barcelona). </li></ul><ul><li>nombre(hombre). </li></ul><ul><li>nombre(profesor). </li></ul><ul><li>nombre(libro). </li></ul><ul><li>determ(un). </li></ul><ul><li>determ(el). </li></ul><ul><li>verbo(esta). </li></ul><ul><li>verbo(rie). </li></ul><ul><li>verbo(piensa). </li></ul><ul><li>verbo(habla). </li></ul><ul><li>verbo(lee). </li></ul><ul><li>prepo(en). </li></ul><ul><li>prepo(con). </li></ul><ul><li>prepo(de). </li></ul>
  46. 46. What are definite clause grammars? <ul><li>Definite Clause Grammars (DCGs) are convenient ways to represent grammatical relationships for various parsing applications. </li></ul><ul><li>They can be used for natural language work, for creating formal command and programming languages. </li></ul><ul><li>Quite simply, they are a nice notation for writing grammars that hides the underlying difference list variables. </li></ul>
  47. 47. DCGs <ul><li>A little grammar written as a DCG: </li></ul><ul><li>s --> np, vp. np --> det, n. vp --> v, np. vp --> v. det --> [the]. det --> [a]. n --> [woman]. n --> [man]. v --> [shoots]. </li></ul><ul><li>How do we use this DCG? In fact, we use it in exactly the same way as we used the difference list recognizer. </li></ul>
  48. 48. DCGs <ul><li>For example, to find out whether a woman shoots a man is a sentence, we pose the query: </li></ul><ul><ul><li>s([a,woman,shoots,a,man],[]). </li></ul></ul><ul><li>That is, just as in the difference list recognizer, we ask whether we can get an s by consuming the symbols in [a,woman,shoots,a,man], leaving nothing behind. </li></ul>
  49. 49. DCGs <ul><li>Similarly, to generate all the sentences in the grammar, we pose the query: </li></ul><ul><ul><li>s(X,[]). </li></ul></ul><ul><li>This asks what values we can give to X, such that we get an s by consuming the symbols in X, leaving nothing behind. </li></ul><ul><li>Moreover, the queries for other grammatical categories also work the same way. For example, to find out if a woman is a noun phrase we pose the query: </li></ul><ul><ul><li>np([a,woman],[]). </li></ul></ul>
  50. 50. DCGs <ul><li>We generate all the noun phrases in the grammar as follows: </li></ul><ul><ul><li>np(X,[]). </li></ul></ul><ul><li>Quite simply, this DCG is a difference list recognizer! </li></ul><ul><li>That is, DCG notation is essentially syntactic sugar: user friendly notation that lets us write grammars in a natural way. </li></ul>
  51. 51. DCGs <ul><li>The Prolog language can translate this notation into the kinds of difference lists discussed before. </li></ul><ul><li>So we have the best of both worlds: </li></ul><ul><ul><li>a nice simple notation for working with </li></ul></ul><ul><ul><li>the efficiency of difference lists </li></ul></ul>
  52. 52. DCGs <ul><li>To see what Prolog translates DCG rules into: </li></ul><ul><ul><li>let Prolog consult the rules of this DCG, then if you pose the query: </li></ul></ul><ul><ul><ul><li>listing(s) </li></ul></ul></ul><ul><ul><li>you will get the response: </li></ul></ul><ul><ul><ul><li>s(A,B) :-     np(A,C),     vp(C,B). </li></ul></ul></ul><ul><li>This is what Prolog has translated s --> np,vp into. </li></ul><ul><li>Note that this is exactly the difference list rule we used in the recognizer. </li></ul>
  53. 53. DCGs <ul><li>Similarly, if you pose the query: </li></ul><ul><ul><li>listing(np) </li></ul></ul><ul><li>you will get: </li></ul><ul><ul><li>np(A,B) :-     det(A,C),     n(C,B). </li></ul></ul><ul><li>This is what Prolog has translated np --> det,n into. </li></ul><ul><li>Again (apart from the choice of variables) this is the difference list rule we used in the recognizer. </li></ul>
  54. 54. DCGs <ul><li>To get a complete listing of the translations of all the rules, simply type: </li></ul><ul><ul><li>listing. </li></ul></ul>
  55. 55. Separating rules and lexicon <ul><li>By separating rules and lexicon we mean that we want to eliminate all mentioning of individual words in the DCGs and instead record all the information about individual words separately in a lexicon. </li></ul><ul><li>To see what is meant by this, let's return to the basic grammar, namely: </li></ul><ul><ul><ul><li>np - - > det, n. vp - - > v, np. vp - - > v. det - - > [the]. det - - > [a]. n - - > [woman]. n - - > [man]. v - - > [shoots].   </li></ul></ul></ul>
  56. 56. Separating rules and lexicon <ul><li>We are going to separate the rules form the lexicon. </li></ul><ul><li>That is, we are going to write a DCG that generates exactly the same language, but in which no rule mentions any individual word. </li></ul><ul><li>All the information about individual words will be recorded separately. </li></ul>
  57. 57. Separating rules and lexicon <ul><li>Here is an example of a (very simple) lexicon. </li></ul><ul><li>Lexical entries are encoded by using a predicate lex/2 whose first argument is a word, and whose second argument is a syntactic category: </li></ul><ul><ul><ul><ul><li>lex(the, det). lex(a, det). lex(woman, n). lex(man, n). lex(shoots, v). </li></ul></ul></ul></ul>
  58. 58. Separating rules and lexicon <ul><li>A simple grammar that could go with this lexicon will be very similar to the basic DCG. </li></ul><ul><li>In fact, both grammars generate exactly the same language. </li></ul><ul><li>The only rules that change are those that mention specific words, i.e. the det, n, and v rules. </li></ul><ul><ul><ul><ul><li>det --> [Word], {lex(Word, det)}. n --> [Word], {lex(Word, n)}. v --> [Word], {lex(Word, v)}. </li></ul></ul></ul></ul>
  59. 59. Separating rules and lexicon <ul><ul><ul><ul><li>Grammar: </li></ul></ul></ul></ul><ul><ul><ul><ul><li>np - - > det, n. vp - - > v, np. vp - - > v. det --> [Word], {lex(Word, det)}. n --> [Word], {lex(Word, n)}. v --> [Word], {lex(Word, v)}. </li></ul></ul></ul></ul>
  60. 60. Separating rules and lexicon <ul><li>Consider the new det rule: </li></ul><ul><ul><ul><li>det --> [Word], {lex(Word, det)}. </li></ul></ul></ul><ul><li>This rule says “a det can consist of a list containing a single element Word ” (note that Word is a variable). </li></ul><ul><li>The extra test adds the crucial condition: “as long as Word matches with something that is listed in the lexicon as a determiner”. </li></ul>
  61. 61. Separating rules and lexicon <ul><li>With our present lexicon, this means that Word must be matched either with the word “a” or “the”: </li></ul><ul><ul><li>lex(the, det). lex(a, det). </li></ul></ul><ul><li>So this single rule replaces the two previous DCG rules for det . </li></ul>
  62. 62. Separating rules and lexicon <ul><li>This explains the how of separating rules from lexicon, but it doesn't explain the why . </li></ul><ul><li>Is it really so important? </li></ul><ul><li>Is this new way of writing DCGs really that much better? </li></ul>
  63. 63. Separating rules and lexicon <ul><li>The answer is yes! for a theoretical reason: </li></ul><ul><ul><li>Arguably rules should not mention specific lexical items . </li></ul></ul><ul><ul><li>The purpose of rules is to list general syntactic facts, such as the fact that a sentence can be made up of a noun phrase followed by a verb phrase. </li></ul></ul><ul><ul><li>The rules for s, np, and vp describe such general syntactic facts, but the old rules for det, n, and v don't. </li></ul></ul><ul><ul><li>Instead, the old rules simply list particular facts: that a is a determiner, that the is a determiner, and so on. </li></ul></ul><ul><ul><li>From a theoretical perspective it is much neater to have a single rule that says “anything is a determiner (or a noun, or a verb,...) if it is listed as such in the lexicon”. </li></ul></ul>
  64. 64. Separating rules and lexicon <ul><li>Now, our little lexicon, with its simple lex entries, is a toy. </li></ul><ul><li>But a real lexicon is (most emphatically!) not. </li></ul><ul><li>A real lexicon is likely to be very large (it may contain hundreds of thousands, or even millions, of words ) and moreover, the information associated with each word is likely to be very rich. </li></ul>
  65. 65. Separating rules and lexicon <ul><li>Our lex entries give only the syntactical category of each word. </li></ul><ul><li>A real lexicon will give much more, such as information about its phonological, morphological, semantic, and pragmatic properties. </li></ul><ul><li>Because real lexicons are big and complex, from a software engineering perspective it is best to write simple grammars that have a well-defined way of pulling out the information they need from vast lexicons. </li></ul>
  66. 66. Separating rules and lexicon <ul><li>That is, grammars should be thought of as separate entities which can access the information contained in lexicons. </li></ul><ul><li>We can then use specialized mechanisms for efficiently storing the lexicon and retrieving data from it. </li></ul><ul><li>The new rules really do just list general syntactic facts , and the extra tests act as an interface to our (admittedly simple) lexicon that lets the rules find exactly the information they need. </li></ul>
  67. 67. Grammar 1: a trivial grammar for a fragment of language <ul><li>s  np, vp. % A sentence (s) is a noun phrase (np) plus a verb phrase (vp) </li></ul><ul><li>np  det, n. % A noun phrase is a determiner plus a noun </li></ul><ul><li>np  n. % ... or just a noun. </li></ul><ul><li>vp  v, np. % A verb phrase is a verb and its direct object, which is an np </li></ul><ul><li>vp  v. % ... or just the verb (for intransitives). </li></ul><ul><li>det    [Word], {lex(Word, det)}. </li></ul><ul><li>n    [Word], {lex(Word, n)}. </li></ul><ul><li>v    [Word], {lex(Word, v)}. </li></ul>
  68. 68. Grammar 1: a trivial grammar for a fragment of language <ul><li>lex(the, det). % ‘the’ is a determiner </li></ul><ul><li>lex(mary, n). % ‘mary’ is a noun. </li></ul><ul><li>lex(john, n). </li></ul><ul><li>lex(woman, n). </li></ul><ul><li>lex(apple, n). </li></ul><ul><li>lex(man, n). </li></ul><ul><li>lex(loves, v). % ‘loves’ is a verb. </li></ul><ul><li>lex(eats, v). </li></ul><ul><li>lex(sings, v). </li></ul>
  69. 69. Sentences for Grammar 1 <ul><li>mary loves john </li></ul><ul><li>the woman eats the apple </li></ul><ul><li>the man sings </li></ul><ul><li>mary eats </li></ul>
  70. 70. Grammar 2: restrictions in argument selection <ul><li>s  np, vp. </li></ul><ul><li>compl([ ])  [ ]. </li></ul><ul><li>compl([arg(X)])  p(X), np. </li></ul><ul><li>compl([ ])  np. </li></ul><ul><li>np  name. </li></ul><ul><li>np  det, n. </li></ul><ul><li>vp  v(X), compl(X). % A vp is a verb plus a verbal complement (compl) </li></ul>
  71. 71. Grammar 2: restrictions in argument selection <ul><li>v(A)    [Word], {lex(Word, v, A)}. </li></ul><ul><li>name  [Word], {lex(Word, name)}. </li></ul><ul><li>n    [Word], {lex(Word, n)}. </li></ul><ul><li>det    [Word], {lex(Word, det)}. </li></ul><ul><li>p(Word)  [Word], {lex(Word, p)}. </li></ul>
  72. 72. Grammar 2: restrictions in argument selection <ul><li>lex(piensa, v, [arg(en)]). </li></ul><ul><li>lex(está, v, [arg(en)]). </li></ul><ul><li>lex(ríe, v, [ ]). </li></ul><ul><li>lex(habla, v, [arg(con)]). </li></ul><ul><li>lex(lee, v, [ ]). </li></ul><ul><li>lex(el, det). % ‘el’ is a determiner </li></ul>
  73. 73. Grammar 2: restrictions in argument selection <ul><li>lex(un, det). </li></ul><ul><li>lex(mary, name). </li></ul><ul><li>lex(john, name). </li></ul><ul><li>lex(profesor, n). </li></ul><ul><li>lex(en, p) </li></ul>
  74. 74. Sentences for Grammar 2 <ul><li>mary piensa en john </li></ul><ul><li>john habla con mary </li></ul><ul><li>john ríe </li></ul><ul><li>un profesor habla con mary </li></ul>
  75. 75. Extension of Grammar 2 <ul><li>John habla de Clara con Mary </li></ul><ul><li>Needed modifications: </li></ul><ul><ul><li>compl([arg(X) | Y])  p(X), np, compl(Y). </li></ul></ul><ul><ul><li>lex(habla, v, [arg(de), arg(con)]). </li></ul></ul><ul><ul><li>lex(clara, name). </li></ul></ul>
  76. 76. Grammar 3: logical representation of sentences <ul><li>s(F)  np(S), v(S, X, F), compl(X). </li></ul><ul><li>compl([ ])  [ ]. </li></ul><ul><li>compl([arg(X,O) | Y])  p(X), np (O), compl(Y). </li></ul><ul><li>compl([arg(null, O) | Y])  np(O), compl(Y). </li></ul><ul><li>np(S)  name(S). </li></ul><ul><li>np(S)  det, n(S). </li></ul>
  77. 77. Grammar 3: logical representation of sentences <ul><li>v(S,A,F)    [Word], {lex(Word, v, S, A, F)}. </li></ul><ul><li>name(Word)  [Word], {lex(Word, name)}. </li></ul><ul><li>n(Word)    [Word], {lex(Word, n)}. </li></ul><ul><li>det    [Word], {lex(Word, det)}. </li></ul><ul><li>p(Word)  [Word], {lex(Word, p)}. </li></ul>
  78. 78. Grammar 3: logical representation of sentences <ul><li>lex(clara, name). </li></ul><ul><li>lex(maria, name). </li></ul><ul><li>lex(juan, name). </li></ul><ul><li>lex(barcelona, name). </li></ul><ul><li>lex(libro, n). </li></ul><ul><li>lex(hombre, n). </li></ul><ul><li>lex(profesor, n). </li></ul>
  79. 79. Grammar 3: logical representation of sentences <ul><li>lex(el, det). </li></ul><ul><li>lex(un, det). </li></ul><ul><li>lex(en, p). </li></ul><ul><li>lex(con, p). </li></ul><ul><li>lex(de, p). </li></ul>
  80. 80. Grammar 3: logical representation of sentences <ul><li>lex(ríe, v, S, [ ], reir(S)). </li></ul><ul><li>lex(piensa, v, S, [arg(en, O)], pensar_en(S, O)). </li></ul><ul><li>lex(habla, v, S, [arg(de, O),arg(con, O1)], comunica(S,O, O1)). </li></ul><ul><li>lex(habla, v, S, [arg(con, O),arg(de, O1)], comunica(S,O1, O)). </li></ul><ul><li>lex(está, v, S, [arg(en, O)], locativo(S, O)). </li></ul><ul><li>lex(lee, v, S, [arg(null, O)], leer(S, O)). </li></ul>
  81. 81. Sentences for Grammar 3 <ul><li>unary predicate (ríe, v, S, [ ], reir(S)). </li></ul><ul><li>binary predicate (piensa, v, S, [arg(en, O)], pensar_en(S, O)). </li></ul><ul><li>ternary predicate (habla, v, S, [arg(con,O), arg(de, O1)], comunica(S, O1, O)). </li></ul><ul><li>Example: </li></ul><ul><ul><li>Juan piensa en Maria = pensar_en(juan, maria). </li></ul></ul>
  82. 82. Prolog input and output <ul><li>analysis(F, X, [ ]):- s(F, X, [ ]). </li></ul><ul><li>| ?- analysis(F, [juan, está, en, barcelona], [ ]). </li></ul><ul><li>F = locativo(juan, barcelona) ? </li></ul><ul><li>yes </li></ul><ul><li>| ?- analysis(F, [juan, piensa, en, maria], [ ]). </li></ul><ul><li>F = pensar_en(juan, maria) ? </li></ul><ul><li>yes </li></ul>
  83. 83. Prolog input and output <ul><li>| ?- analysis(F, [el, libro, está, en, barcelona], [ ]). </li></ul><ul><li>F = locativo(libro, barcelona) ? </li></ul><ul><li>yes </li></ul><ul><li>| ?- analysis(F, [juan, lee, un, libro], [ ]). </li></ul><ul><li>F = leer(juan, libro) ? </li></ul><ul><li>yes </li></ul>
  84. 84. Prolog input and output <ul><li>| ?- analysis(F, [el, hombre, habla, de, juan, con, maria], [ ]). </li></ul><ul><li>F = comunica(hombre, juan, maria) ? </li></ul><ul><li>yes </li></ul><ul><li>| ?- analysis(F, [el, hombre, ríe], [ ]). </li></ul><ul><li>F = reir(hombre) ? </li></ul><ul><li>yes </li></ul>
  85. 85. Prolog input and output <ul><li>| ?- analysis(F, [el, profesor, piensa, en, un, libro], [ ]). </li></ul><ul><li>F = pensar_en(profesor, libro) ? </li></ul><ul><li>yes </li></ul>
  86. 86. Grammar 4: quantification <ul><li>It exists X and X is a libro : </li></ul><ul><ul><ul><ul><li>el libro = e(X, libro(X)). </li></ul></ul></ul></ul><ul><li>All X such that X is a libro : </li></ul><ul><ul><ul><ul><li>todo libro = a(X, libro(X)). </li></ul></ul></ul></ul>
  87. 87. Grammar 4: quantification <ul><li>el libro cae = e(X, and(libro(X), cae(X))) </li></ul><ul><li>Juan piensa en el libro = e(X, and(libro(X), piensa(juan, X))) </li></ul><ul><li>todo hombre piensa en el libro = a(X, implies(hombre(X), e(Y, and(libro(Y), piensa(X,Y))) </li></ul>
  88. 88. Grammar 4: quantification <ul><li>lex(el,det,K,S1,S2,e(K,and(S1,S2))). </li></ul><ul><li>lex(un,det,K,S1,S2,e(K,and(S1,S2))). </li></ul><ul><li>lex(los,det,K,S1,S2,a(K,implies(S1,S2))). </li></ul><ul><li>lex(todo,det,K,S1,S2,a(K,implies(S1,S2))). </li></ul><ul><li>np(K,S2,F)  det(K,S1,S2,F), n(K,S1). </li></ul><ul><li>np(K,F,F)  name(K). </li></ul>
  89. 89. Grammar 4: quantification <ul><li>compl([ ],S,S)  [ ]. </li></ul><ul><li>compl([arg(X,K) | Y],S1,S)  p(X), np(K,S2,S), compl(Y,S1,S2). </li></ul><ul><li>s(S)  np(K,S2,S), v(K,X,S1), compl(X,S1,S2). </li></ul><ul><li>n(K,F)    [Word],{lex(Word,n,K,F)}. </li></ul><ul><li>lex(libro,n,K,libro(K)). </li></ul>
  90. 90. Prolog input and output <ul><li>| ?- analysis(F,[el,hombre,ríe],[ ]). </li></ul><ul><li>F = e(_A,and(hombre(_A),reir(_A))) ? </li></ul><ul><li>yes </li></ul><ul><li>| ?- analysis(F,[el,profesor,piensa,en,un,libro],[ ]). </li></ul><ul><li>F = e(_B,and(profesor(_B),e(_A,and(libro(_A),pensar_en(_B,_A))))) ? </li></ul><ul><li>yes </li></ul>
  91. 91. Prolog input and output <ul><li>| ?- analysis(F,[el,hombre,habla,de,juan,con,maria],[ ]). </li></ul><ul><li>F = e(_A,and(hombre(_A),comunica(_A,juan,maria))) ? </li></ul><ul><li>yes </li></ul><ul><li>| ?- analysis(F,[todo,hombre,piensa,en,un,libro],[ ]). </li></ul><ul><li>F = a(_B,implies(hombre(_B),e(_A,and(libro(_A),pensar_en(_B,_A))))) ? </li></ul><ul><li>yes </li></ul>
  92. 92. Prolog input and output <ul><li>| ?- analysis(F,[todo,libro,esta,en,barcelona],[ ]). </li></ul><ul><li>F = a(_A,implies(libro(_A),locativo(_A,barcelona))) ? </li></ul><ul><li>yes </li></ul>
  93. 93. Extension of Grammar 4 <ul><li>El hombre bueno: </li></ul><ul><ul><ul><ul><li>e(X, and(hombre(X), bueno(X))) </li></ul></ul></ul></ul>
  94. 94. Grammar 5: semantic constraints <ul><li>Argument selection: </li></ul><ul><ul><li>*Juan lee el hombre </li></ul></ul><ul><ul><li>El gato come pescado </li></ul></ul><ul><ul><li>El perro corre por el camino </li></ul></ul><ul><li>Semantic categories: </li></ul><ul><ul><li>human: Juan, María, Clara, hombre, profesor </li></ul></ul><ul><ul><li>animate: perro, gato </li></ul></ul><ul><ul><li>inanimate: libro, pescado, bocadillo, silla </li></ul></ul><ul><ul><li>locative: Barcelona, camino </li></ul></ul>
  95. 95. Nouns’ semantic categories <ul><li>lex(clara, name, human). </li></ul><ul><li>lex(maria, name, human). </li></ul><ul><li>lex(juan, name, human). </li></ul><ul><li>lex(barcelona, name, locative). </li></ul>
  96. 96. Nouns’ semantic categories <ul><li>lex(libro, n, K, libro(K), inanimate). </li></ul><ul><li>lex(hombre, n, K, hombre(K), human). </li></ul><ul><li>lex(profesor, n, K, profesor(K), human). </li></ul><ul><li>lex(perro, n, K, perro(K), animate). </li></ul><ul><li>lex(gato, n, K, gato(K), animate). </li></ul><ul><li>lex(camino, n, K, camino(K), locative). </li></ul>
  97. 97. Verbs’ semantic categories <ul><li>lex(piensa, v, S, [arg(en,O)], pensar_en(S,O), sem(human, [X])). </li></ul><ul><li>lex(habla, v, S, [arg(de,O),arg(con,O1)], comunica(S,O,O1), sem(human, [X,human])). </li></ul><ul><li>lex(está, v, S, [arg(en,O)], locative(S,O), sem(X, [locative])). </li></ul><ul><li>lex(lee, v, S, [arg(null,O)], leer(S,O), sem(human, [inanimate])). </li></ul>
  98. 98. Grammar 5: semantic constraints <ul><li>v(S,A,F,sem)    [Word],{lex(Word,v,S,A,F,sem)}. </li></ul><ul><li>name(Word,sem)  [Word],{lex(Word,name,sem)}. </li></ul><ul><li>n(Word,sem)    [Word],{lex(Word,n,sem)}. </li></ul><ul><li>np(K,S2,F,sem)  det(K,S1,S2,F), n(K,S1,sem). </li></ul><ul><li>np(K,F,F,sem)  name(K,sem). </li></ul>
  99. 99. Grammar 5: semantic constraints <ul><li>compl([ ],S,S,[ ])  [ ]. </li></ul><ul><li>compl([arg(X,K) | Y],S1,S,[sem | sem2])  p(X), np(K,S2,S,sem), compl(Y,S1,S2,sem2). </li></ul><ul><li>s(S)  np(K,S2,S,sem1), v(K,X,S1,sem(sem1,list-sem)), compl(X,S1,S2,[list-sem]). </li></ul>

×