220 likes | 403 Views
Logic, Representation and Inference. Simple Question Answering NL Access to Databases Semantics of Questions and Answers Simple Interpreters for Questions. Access to Databases: 3 Possible Approaches. Natural Language DB Query Language Form Interface. Natural Language.
E N D
Logic, Representation and Inference Simple Question Answering NL Access to Databases Semantics of Questions and Answers Simple Interpreters for Questions CSA5006
Access to Databases:3 Possible Approaches • Natural Language • DB Query Language • Form Interface CSA5006
Natural Language • How many countries are there in each continent? • What is their average population? CSA5006
SQL: DB Query Language range of C is countries range of Cont is continents range of I is inclusions retrieve( Cont.name, count(C.name where C.name = I.inside and I.outside = Cont.name)) CSA5006
Form Interface CSA5006
Issues • Accessibility • Type of query language • What needs to be learned to make a query? • Data input vs. data output • Flexibility • Can types of question be predicted? • Can types of question be easily changed? • Expressivity • Limitations on kinds of information present • What types of query is possible CSA5006
ENGLISH LOGICAL FORM PROLOG ANSWER Chat 80 Pereira and Warren (1983)General Architecture Translation: what does the question mean Planning: how shall I answer it Execution: what is the answer? CSA5006
Different Types of Sentence CSA5006
Sentences and Assertions • Assertions are usually expressed by declarative sentences. • Our grammar/lexicon deals with very simple examples , e.g. John saw Fido • More complex declarative sentences includeAll candidates for CSA4050 failed.Candidates who fail more than four credits shall not be allowed to take resits. CSA5006
Sentences and Questions • Questions are usually expressed by interrogative sentences. • Our simple grammar/lexicon does not yet deal with interrogative sentences. • To handle them we must modify the grammar • Issue: how do we recognise interrogative sentences? CSA5006
Execution ofCommunicative Acts • Assertions add information to the database.The meaning of a declarative sentence involves execution an appropriate assert operation • Questions query information in the database.The meaning of an interrogative sentence involves execution of an appropriate query operation • Commands identify actions to be carried out. • Representation of communicative act is in addition to representation of content. CSA5006
Representation of Communicative Acts • Basic idea is to “wrap” the semantic content P in a special form to yield (P). • In the following examples, has the general formca(<type>,<var>,<proposition>) • The next two examples deal with • simple assertions and • yes-no queries. CSA5006
Basic Processing process(Sent,Result) :- s(SEM,Sent,[]), interpret(SEM,Result). In other words: to process the sentence: • Parse it to produce semantic representation SEM • Interpret SEM and give back RESULT • Next we must define the interpret predicate CSA5006
Defining the Interpreter interpret(ca(a1,_,A),Result) :- mk_assertion(A,Result). interpret(ca(q1,_,A),Result) :- yes_no_query(A,Result). CSA5006
Very Basic Intepretation mk_assertion(SEM,ok) :- assert(SEM). • In the case of an assertion, just assert it. N.B. no check for previous assertion. yes_no_query(SEM,yes) :- call(SEM), !. yes_no_query (SEM,no). • If it’s a yes-no question, see if it’s true CSA5006
Dealing with Syntax • We now have a primitive interpretation mechanism in place. • It remains to modify the grammar/lexicon to handle the syntax of these very simple questions. • To begin with, we will limit ourselves to yes/no questions CSA5006
Yes/No Questions:Grammar Rules for S % Declarative sentence s --> np, vp. Mia loves Vincent % Interrogative sentence s --> aux, np, vp. does Mia love Vincent ? CSA5006
Grammar Rules with Semantics (Blackburn) % Declarative sentence s(app(NP,VP)) --> np(NP), vp(VP). MialovesVincent np(app(DET,N)) --> det(NP), noun(N). thiscar CSA5006
Grammar Rules with Pragmatics % Declarative sentence s(ca(a1,_app(NP,VP))) --> np(NP), vp(VP). MialovesVincent np(app(DET,N)) --> det(NP), noun(N). thiscar CSA5006
Demo ?- process([does,vincent,love,mia],A). A=no ?- process([vincent,loves,mia],A). A=ok ?- process([does,vincent,love,mia],A). A=yes CSA5006
Improving the Interpreter dbq :- readLine(L), dbq1(L), !, dbq. dbq. dbq1([halt]) :- nl, write(bye), !, fail. dbq1(Sent) :- process(Sent,A). CSA5006