Reading: ch. 1, first part of ch. 14 ------------------------------------------- We are working on algorithms for this: a piece of English (word, sentence, turn, paragraph) --> meaning. (A turn is one person's reply in a dialogue--anything from one word to many paragraphs.) ------------------------------------------- We will express meaning in logic, specifically first-order predicate calculus. First-order = has predicates whose arguments are terms, i.e. variables, constants, or functions. Arguments of functions are terms too. Zeroth-order = arguments can only be constants. Second-order = arguments can be other predicates. First-order is powerful enough to be useful for NLP, and simple enough to be mathematically tractable. We have to simplify meaning to express it in logic. How much can we simplify? Depends on the application. Examples. ------------------------------------------- 3. One of the things that makes this hard is that English is ambiguous, i.e. one sentence can have many meanings. Example: I MADE HER DUCK. a) I cooked waterfowl for her. b) I cooked waterfowl belonging to her. c) I created the (toy or sculpture?) duck she owns. d) I caused her to quickly lower her head or body. e) I turned her into waterfowl (using my magic wand?). Talking about ambiguity is a good opportunity to talk about what it is necessary to represent. a) cook(RF, JS, duck01, Jan13). where RF = me JS = Jane Smith duck01 = the duck I bought in the store yesterday. cook(x, y, z, w) = person x cooked item z for person y on date w Note: this predicate contains both oversimplification and overspecification. b) cook(RF, JS, duck02, Jan13) belongs-to(duck02, JS) Note: when did/does JS own the duck? c) create(RF, duck03, Jan01) is-made-of(duck03, plaster) (necessary?) belongs-to(duck03, JS) Note: we are ignoring lots of problems related to time. Note: we need to define the arguments of create... Note: how much world knowledge do we have to represent? d) (cause(RF, JS, lower(JS, head) | cause (RF, JS, lower(JS, body)) & and | are alternate symbols for AND and OR Multiple clauses (sentences) are assumed to be connnected by AND. e) convert(RF, JS, duck04) cf. I made him president. We elected John president. Cf. We elected John president but he never took office. ------------------------------------------- A clause (sentence) is a formula with no free variables. - Definition of free variable ------------------------------------------- Definition of implication -> Difference between implication in logic and in life. ------------------------------------------- Canonical form - definition - why it's important - is it always possible? Inference - How much inference do we need to evaluate an expression: - Relationship to world knowledge Expressiveness of a meaning representation - too little - too much ------------------------------------------- Now that we've looked at some of the issues on the logic side, let's look at the English side of the equation. I.e. let's look at the structure of the input. Different from structure of input in conventional programming. I MADE HER DUCK. a) I cooked waterfowl for her. b) I cooked waterfowl belonging to her. c) I created the (toy or sculpture?) duck she owns. d) I caused her to quickly lower her head or body. e) I turned her into waterfowl (using my magic wand?). - Parsing: English sentence --> structure Lots of issues in parsing too: - What level of structure do we want? - What are the rules and the primitives? - Part-of-speech (POS) disambiguation - Word sense disambiguation