Definite-clause grammars: PSGs in Prolog (in principle, string rewrite described as a logical formula).

Size: px
Start display at page:

Download "Definite-clause grammars: PSGs in Prolog (in principle, string rewrite described as a logical formula)."

Transcription

1 Computational Encoding of PSGs Logical (declarative) Network-based (procedural) Definite-clause grammars: PSGs in Prolog (in principle, string rewrite described as a logical formula). For a grammar G = (V, Σ, P, S), a rule in P as (a) string rewrite: X 0 X 1 X 2 X n, X i (V Σ) (b) logical implication: (X 1 X 2 X n ) X 0, where X i are logical predicates.

2 clause: disjunction of literals literal: atomic formula or a negation of it. definite clause: a clause with at most one positive literal. A B C D not a DC B C D is a DC B C D is a DC p q p q, thus (X 1 X 2 X n ) X 0 X 1 X 2 X 0 is a definite clause if X i, i > 0 are positive literals.

3 for a headless definite clause X 1 X n (X 1 X 2 X n ) false A rule of the form (X 1 X 2 X n ) X 0 translates to x0:- x1, x2,.., xn. in Prolog String rewrite systems are order-sensitive, whereas in logic, it does not matter in which order you satisfy the clauses. Prolog s depth-first top-down strategy of rule evaluation suggests a natural way to impose order.

4 friend(x,y):- likes(x,y), likes(y,x). likes(john,mary). likes(john,sue). likes(sue,john). likes(sue,mary). In First-order logic: x y(likes(x, y) likes(y, x)) friend(x, y) Facts are in fact truth assertions of the kind true F i ( bodyless rules).

5 queries:?- friend(john,sue). match head of a clause (fact or rule head): friend(x,y)=friend(john,sue) for X/john Y/sue: satisfy subgoals likes(john,sue) matches a fact (satisfied) likes(sue,john) matches a fact yes.?- friend(john,mary). no. In parsing, we are concerned with not only whether we ve satisfied, say X i, and in what order, but also in which positions X i is found

6 (after all, the input to our logical formulae is a sequence of facts; which sub-sequence of facts satisfy which sub-formula?). X0 X0 X1 X2... Xn p0 p1 p2 pn... X1 X2 Xn p0 p1 p2 pn in Prolog xo(p0,p1):- x1(p0,p1), x2(p1,p2),..,xn(pn-1,pn). where P i is a list-valued prolog variable (denoting the subsequence covered by the phrase x). DCG is a special notation for this:

7 xo --> x1,x2,..,xn. In DCG notation (rules written in -->), every clause gets two hidden arguments showing the chaining of sequences. There is in fact a more perspicuous (and computationally more efficient) notation for showing the subsequence as a list difference of subsequences. Every x has one argument defined as a difference of two lists. Lists in Prolog: [H T] is a list whose head is H and whose tail is the list T.

8 ex: x([the,man,on,the,moon]). x([a,girl]). x([]).?- x([a]).?- x([a,b]).?- x([a T]).?- x([my T]).?- x([h T]).?- x([a,b,c T]).?- x(a).

9 L1-L2 is the list difference of L1 and L2 (all the elements in L1 up to but not including those in L2). we are interested in the most general difference list (the last one below. All others are instances of it). ex: [a,b,c,d]-[d] [a,b,c]-[] [a,b,c T]-T [a,b,c,d,e]-[d,e] [a,b,c,d,e,f]-[d,e,f] Concatenation of lists is much easier with difference lists: conc_list([],l,l). conc_list([h1 T1],L2,[H1 T]):- conc_list(t1,l2,t). conc_dl(l1-l2,l2-l3,l1-l3).

10 Compare: x0(p0,pn):- x1(p0,p1), x2(p1,p2),.. xn(pn_1,pn). x0(p0-pn):- x1(p0-p1), x2(p1-p2), xn(pn_1-pn). CFG DCG S -> NP VP s --> np,vp. VP -> V NP vp--> v,np. V -> likes v --> [likes]. NP -> john mary np--> [john]. np--> [mary]. native Prolog: s (P0,P2):- np(p0,p1), vp(p1,p2). vp(p0,p2):- v(p0,p1), np(p1,p2). v([likes T],T).

11 np([john T],T). np([mary T],T). Rules with arguments. They carry the information from one symbol to another. DCGs are Turing-equivalent in power when they have arguments. They have CF power without arguments. s --> np(agr), vp(agr). s(p0,p2):- np(agr,p0,p1), vp(agr,p1,p2). When instantiated, an argument can act as a constraint on the derivations. As variables, they represent information requirements.

12 They can model local constraints or non-local constraints. s --> np1s, vp1s. s --> np(agr), vp(agr). s --> np1p, vp1p.... s --> np3s, vp3s. np((person,number))--> pronoun(person,number).... np1p --> [we]. np3s --> det, noun(sing). Arguments can be used to synthesize information too, e.g., to return a parse tree. Prolog structures: name(arguments) s(s(nppt,vppt))--> np(nppt), vp(vppt). np(np(detpt,npt)) --> det(detpt), n(npt). vp(vp(vpt,nppt)) --> v(vpt), np(nppt).

13 v(v(liked)) --> [liked]. n(n(man))--> [man]. det(det(the)) --> [the].?- s(spt,[the,man,liked,the,woman],[]). SPT=s(NPPT,VPPT) NPPT=np(DetPT,NPT) DETPT=det(the) NPT=n(man)... SPT=s(np(det(the),n(man)), vp(v(liked),np(det(the),n(woman))))

14 S NP Det the N man VP V liked Det NP N the woman Lexical organization in DCGs: Try to achieve abstraction in the lexicon to capture generalizations. Also simplifies syntax. v--> [chased]. v--> [Word], {verb(word)}.

15 v--> [ran].... verb(chased). verb(ran). ex: generalization. All forms of the same verb carry the same valence. Why carry this information in five different places? verb(tv,write,writes,wrote,written,writing). % verb database verb(iv,sleep,sleeps,slept,slept,sleeping). verb(dv,give,gives,gave,given,giving). vp --> v(iv). vp --> v(tv), np. vp --> v(dv), np, np. % e.g., consuming the s-form of a verb and carrying valence v(valence)--> [Word], {verb(valence,_,word,_,_,_)}.

16 alternative: separate form and valence information in the lexicon. verb(write,writes,wrote,written,writing). % verb database verb(sleep,sleeps,slept,slept,sleeping). verb(give,gives,gave,given,giving). trans(write). intrans(sleep). ditrans(give). vp --> v(base), {intrans(base)}. vp --> v(base), {trans(base)},np. vp --> v(base), {ditrans(base)},np, np. % e.g., consuming the s-form of a verb and carrying base v(base)--> [Word], {verb(base,word,_,_,_)}. Yet another alternative: flip the verb table. carry the form information and base in individual entries.

17 verb(write,writes,(3,sing)). verb(write,write,(_,plu)). verb(write,wrote,(_,_)). trans(write). intrans(sleep). ditrans(give). vp(agr) --> v(base,agr), {intrans(base)}. vp(agr) --> v(base,agr), {trans(base)},np. vp(agr) --> v(base,agr), {ditrans(base)},np, np. v(base,agr)--> [Word], {verb(base,word,agr)}. s --> np(agr), vp(agr). pronoun(he,3,sing,nom). pronoun(him,3,sing,acc).

LING 364: Introduction to Formal Semantics. Lecture 11 February 16th

LING 364: Introduction to Formal Semantics. Lecture 11 February 16th LING 364: Introduction to Formal Semantics Lecture 11 February 16th Administrivia Today: Special Computer Lab Class Homework 2 help session Reminder Extension: Homework 2 due tonight strict deadline Tools

More information

LING 364: Introduction to Formal Semantics. Lecture 7 February 2nd

LING 364: Introduction to Formal Semantics. Lecture 7 February 2nd LING 364: Introduction to Formal Semantics Lecture 7 February 2nd Administrivia today (3:30pm 4:40pm) lecture here in Comm 214 (4:45pm 5:45pm) (EXTRA) lab practice in Social Sciences Lab 224 also next

More information

Syntax-semantics interface and the non-trivial computation of meaning

Syntax-semantics interface and the non-trivial computation of meaning 1 Syntax-semantics interface and the non-trivial computation of meaning APA/ASL Group Meeting GVI-2: Lambda Calculi, Type Systems, and Applications to Natural Language APA Eastern Division 108th Annual

More information

Conjunctive queries. Many computational problems are much easier for conjunctive queries than for general first-order queries.

Conjunctive queries. Many computational problems are much easier for conjunctive queries than for general first-order queries. Conjunctive queries Relational calculus queries without negation and disjunction. Conjunctive queries have a normal form: ( y 1 ) ( y n )(p 1 (x 1,..., x m, y 1,..., y n ) p k (x 1,..., x m, y 1,..., y

More information

LING 364: Introduction to Formal Semantics. Lecture 16 March 7th

LING 364: Introduction to Formal Semantics. Lecture 16 March 7th LING 364: Introduction to Formal Semantics Lecture 16 March 7th Administrivia Homework 2 returned if you didn t get email, let me know Homework 3 should get it back sometime this week Administrivia New

More information

Lecture 9. Exercises. Theory. Solutions to exercises LPN 8.1 & 8.2. Patrick Blackburn, Johan Bos & Kristina Striegnitz

Lecture 9. Exercises. Theory. Solutions to exercises LPN 8.1 & 8.2. Patrick Blackburn, Johan Bos & Kristina Striegnitz Lecture 9 Exercises Solutions to exercises LPN 8.1 & 8.2 Theory Solution to Exercise 8.1 Suppose we add the noun ``men'' (which is plural) and the verb ``shoot''. Then we would want a DCG which says that

More information

LING/C SC/PSYC 438/538. Lecture 20 Sandiway Fong

LING/C SC/PSYC 438/538. Lecture 20 Sandiway Fong LING/C SC/PSYC 438/538 Lecture 20 Sandiway Fong Today's Topics SWI-Prolog installed? We will start to write grammars today Quick Homework 8 SWI Prolog Cheatsheet At the prompt?- 1. halt. 2. listing. listing(name).

More information

Notes for Chapter 12 Logic Programming. The AI War Basic Concepts of Logic Programming Prolog Review questions

Notes for Chapter 12 Logic Programming. The AI War Basic Concepts of Logic Programming Prolog Review questions Notes for Chapter 12 Logic Programming The AI War Basic Concepts of Logic Programming Prolog Review questions The AI War How machines should learn: inductive or deductive? Deductive: Expert => rules =>

More information

LOGIC AND DISCRETE MATHEMATICS

LOGIC AND DISCRETE MATHEMATICS LOGIC AND DISCRETE MATHEMATICS A Computer Science Perspective WINFRIED KARL GRASSMANN Department of Computer Science University of Saskatchewan JEAN-PAUL TREMBLAY Department of Computer Science University

More information

The MetaGrammar Compiler: An NLP Application with a Multi-paradigm Architecture

The MetaGrammar Compiler: An NLP Application with a Multi-paradigm Architecture The MetaGrammar Compiler: An NLP Application with a Multi-paradigm Architecture Denys Duchier Joseph Le Roux Yannick Parmentier LORIA Campus cientifique, BP 239, F-54 506 Vandœuvre-lès-Nancy, France MOZ

More information

Introduction to Logic Programming

Introduction to Logic Programming Introduction to Logic Programming York University CSE 3401 Vida Movahedi York University CSE 3401 V. Movahedi 1 Overview Programming Language Paradigms Logic Programming Functional Programming Brief review

More information

Prolog lecture 6. Solving Sudoku puzzles Constraint Logic Programming Natural Language Processing

Prolog lecture 6. Solving Sudoku puzzles Constraint Logic Programming Natural Language Processing Prolog lecture 6 Solving Sudoku puzzles Constraint Logic Programming Natural Language Processing Playing Sudoku L6-2 Make the problem easier L6-3 We can model this problem in Prolog using list permutations

More information

Lecture 8: More DCGs

Lecture 8: More DCGs Lecture 8: More DCGs Theory Examine two important capabilities offered by DCG notation: Extra arguments Extra tests Discuss the status and limitations of DCGs Exercises Exercises of LPN: 8.1, 8.2 Practical

More information

proof through refutation

proof through refutation Prolog's logic; resolution grammars & parsing 1 proof through refutation we saw that Prolog uses the strategy: test the claim that a query is false by (1) finding it is immediately true (matches a fact

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

Computational Linguistics: Syntax-Semantics Interface

Computational Linguistics: Syntax-Semantics Interface Computational Linguistics: Syntax-Semantics Interface Raffaella Bernardi KRDB, Free University of Bozen-Bolzano P.zza Domenicani, Room: 2.28, e-mail: bernardi@inf.unibz.it Contents 1 Lambda terms and DCG...................................

More information

Introduction to Artificial Intelligence CISC-481/681 Program 1: Simple Lisp Programs

Introduction to Artificial Intelligence CISC-481/681 Program 1: Simple Lisp Programs CISC-481/681 Program 1: Simple Lisp Programs 1 Introduction to Artificial Intelligence CISC-481/681 Program 1: Simple Lisp Programs Reading: Handouts Summarizing Common Lisp Functions Paul Graham s ANSI

More information

Introduction & Review

Introduction & Review Introduction & Review York University Department of Computer Science and Engineering 1 Why this course? Overview Programming Language Paradigms Brief review of Logic Propositional logic Predicate logic

More information

Context-Free Grammars. Carl Pollard Ohio State University. Linguistics 680 Formal Foundations Tuesday, November 10, 2009

Context-Free Grammars. Carl Pollard Ohio State University. Linguistics 680 Formal Foundations Tuesday, November 10, 2009 Context-Free Grammars Carl Pollard Ohio State University Linguistics 680 Formal Foundations Tuesday, November 10, 2009 These slides are available at: http://www.ling.osu.edu/ scott/680 1 (1) Context-Free

More information

Grammar Rules in Prolog!!

Grammar Rules in Prolog!! Grammar Rules in Prolog GR-1 Backus-Naur Form (BNF) BNF is a common grammar used to define programming languages» Developed in the late 1950 s Because grammars are used to describe a language they are

More information

Lexical entries & clauses

Lexical entries & clauses Lexical entries & clauses 2013 Jan 18 The problem The inadequacy of PS-rules a. * John devoured. John fainted. b. * Cezanne fainted the apple. Cezanne painted the apple. c. * John ate the apple the pear.

More information

Declarative programming. Logic programming is a declarative style of programming.

Declarative programming. Logic programming is a declarative style of programming. Declarative programming Logic programming is a declarative style of programming. Declarative programming Logic programming is a declarative style of programming. The programmer says what they want to compute,

More information

Context-Free Grammars

Context-Free Grammars Department of Linguistics Ohio State University Syntax 2 (Linguistics 602.02) January 3, 2012 (CFGs) A CFG is an ordered quadruple T, N, D, P where a. T is a finite set called the terminals; b. N is a

More information

Grammar Rules in Prolog

Grammar Rules in Prolog Grammar Rules in Prolog Based on Clocksin & Mellish Chapter 9 GR-1 Backus-Naur Form (BNF) BNF is a common grammar used to define programming languages» Developed in the late 1950's early 60's Grammars

More information

Propositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Propositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus: Boolean Functions and Expressions CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and

More information

Prolog. Intro to Logic Programming

Prolog. Intro to Logic Programming Prolog Logic programming (declarative) Goals and subgoals Prolog Syntax Database example rule order, subgoal order, argument invertibility, backtracking model of execution, negation by failure, variables

More information

The Logic Paradigm. Joseph Spring. 7COM1023 Programming Paradigms

The Logic Paradigm. Joseph Spring. 7COM1023 Programming Paradigms The Logic Paradigm Joseph Spring 7COM1023 Programming Paradigms 1 Discussion The Logic Paradigm Propositional and Predicate Logic See also notes and slides on PP website Horn Clauses Definition, Examples

More information

Ling/CSE 472: Introduction to Computational Linguistics. 5/9/17 Feature structures and unification

Ling/CSE 472: Introduction to Computational Linguistics. 5/9/17 Feature structures and unification Ling/CSE 472: Introduction to Computational Linguistics 5/9/17 Feature structures and unification Overview Problems with CFG Feature structures Unification Agreement Subcategorization Long-distance Dependencies

More information

Propositional Calculus: Boolean Algebra and Simplification. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Propositional Calculus: Boolean Algebra and Simplification. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus: Boolean Algebra and Simplification CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Topics Motivation: Simplifying Conditional Expressions

More information

8.1 Polynomial-Time Reductions

8.1 Polynomial-Time Reductions 8.1 Polynomial-Time Reductions Classify Problems According to Computational Requirements Q. Which problems will we be able to solve in practice? A working definition. Those with polynomial-time algorithms.

More information

Leaning to Parse Database Queries Using Inductive Logic Programming

Leaning to Parse Database Queries Using Inductive Logic Programming Leaning to Parse Database Queries Using Inductive Logic Programming John M. Zelle and Raymond J. Mooney Presented by Lena Dankin Plan Task definition General background: Prolog Shift Reduce Parsing CHILL

More information

Chapter 16. Logic Programming Languages

Chapter 16. Logic Programming Languages Chapter 16 Logic Programming Languages Chapter 16 Topics Introduction A Brief Introduction to Predicate Calculus Predicate Calculus and Proving Theorems An Overview of Logic Programming The Origins of

More information

Constraint Solving. Systems and Internet Infrastructure Security

Constraint Solving. Systems and Internet Infrastructure Security Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Constraint Solving Systems

More information

Logic Programming Languages

Logic Programming Languages Logic Programming Languages Introduction Logic programming languages, sometimes called declarative programming languages Express programs in a form of symbolic logic Use a logical inferencing process to

More information

Implementação de Linguagens 2016/2017

Implementação de Linguagens 2016/2017 Implementação de Linguagens Ricardo Rocha DCC-FCUP, Universidade do Porto ricroc @ dcc.fc.up.pt Ricardo Rocha DCC-FCUP 1 Logic Programming Logic programming languages, together with functional programming

More information

Proseminar on Semantic Theory Fall 2013 Ling 720 An Algebraic Perspective on the Syntax of First Order Logic (Without Quantification) 1

Proseminar on Semantic Theory Fall 2013 Ling 720 An Algebraic Perspective on the Syntax of First Order Logic (Without Quantification) 1 An Algebraic Perspective on the Syntax of First Order Logic (Without Quantification) 1 1. Statement of the Problem, Outline of the Solution to Come (1) The Key Problem There is much to recommend an algebraic

More information

In Our Last Exciting Episode

In Our Last Exciting Episode In Our Last Exciting Episode #1 Lessons From Model Checking To find bugs, we need specifications What are some good specifications? To convert a program into a model, we need predicates/invariants and

More information

Operators (2A) Young Won Lim 10/5/13

Operators (2A) Young Won Lim 10/5/13 Operators (2A) Copyright (c) 2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version

More information

Logic (or Declarative) Programming Foundations: Prolog. Overview [1]

Logic (or Declarative) Programming Foundations: Prolog. Overview [1] Logic (or Declarative) Programming Foundations: Prolog In Text: Chapter 12 Formal logic Logic programming Prolog Overview [1] N. Meng, S. Arthur 2 1 Logic Programming To express programs in a form of symbolic

More information

Computational Linguistics: Syntax-Semantics

Computational Linguistics: Syntax-Semantics Computational Linguistics: Syntax-Semantics Raffaella Bernardi University of Trento Contents 1 The Three Tasks Revised................................... 3 2 Lambda terms and CFG...................................

More information

CPS 506 Comparative Programming Languages. Programming Language Paradigm

CPS 506 Comparative Programming Languages. Programming Language Paradigm CPS 506 Comparative Programming Languages Logic Programming Language Paradigm Topics Introduction A Brief Introduction to Predicate Calculus Predicate Calculus and Proving Theorems An Overview of Logic

More information

Resolution (14A) Young W. Lim 6/14/14

Resolution (14A) Young W. Lim 6/14/14 Copyright (c) 2013-2014. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free

More information

Computational Linguistics: Feature Agreement

Computational Linguistics: Feature Agreement Computational Linguistics: Feature Agreement Raffaella Bernardi Contents 1 Admin................................................... 4 2 Formal Grammars......................................... 5 2.1 Recall:

More information

Derived from PROgramming in LOGic (1972) Prolog and LISP - two most popular AI languages. Prolog programs based on predicate logic using Horn clauses

Derived from PROgramming in LOGic (1972) Prolog and LISP - two most popular AI languages. Prolog programs based on predicate logic using Horn clauses Prolog Programming Derived from PROgramming in LOGic (1972) Good at expressing logical relationships between concepts Prolog and LISP - two most popular AI languages Execution of a Prolog program is a

More information

Semantics and Pragmatics of NLP Propositional Logic, Predicates and Functions

Semantics and Pragmatics of NLP Propositional Logic, Predicates and Functions , Semantics and Pragmatics of NLP, and s Alex Ewan School of Informatics University of Edinburgh 10 January 2008 , 1 2 3 4 Why Bother?, Aim: 1 To associate NL expressions with semantic representations;

More information

11-682: Introduction to IR, NLP, MT and Speech. Parsing with Unification Grammars. Reading: Jurafsky and Martin, Speech and Language Processing

11-682: Introduction to IR, NLP, MT and Speech. Parsing with Unification Grammars. Reading: Jurafsky and Martin, Speech and Language Processing 11-682: Introduction to IR, NLP, MT and Speech Parsing with Unification Grammars Reading: Jurafsky and Martin, Speech and Language Processing Chapter 11 Augmenting CFGs with Features Certain linguistic

More information

Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 6 Outline. Unary Relational Operations: SELECT and

Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 6 Outline. Unary Relational Operations: SELECT and Chapter 6 The Relational Algebra and Relational Calculus Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 6 Outline Unary Relational Operations: SELECT and PROJECT Relational

More information

Data Integration: Logic Query Languages

Data Integration: Logic Query Languages Data Integration: Logic Query Languages Jan Chomicki University at Buffalo Datalog Datalog A logic language Datalog programs consist of logical facts and rules Datalog is a subset of Prolog (no data structures)

More information

Principles of Programming Languages COMP251: Syntax and Grammars

Principles of Programming Languages COMP251: Syntax and Grammars Principles of Programming Languages COMP251: Syntax and Grammars Prof. Dekai Wu Department of Computer Science and Engineering The Hong Kong University of Science and Technology Hong Kong, China Fall 2007

More information

Fundamentals of Prolog

Fundamentals of Prolog Fundamentals of Prolog Prof. Geraint A. Wiggins Centre for Cognition, Computation and Culture Goldsmiths College, University of London Contents Summary of Lecture 1 What makes a good Prolog program? What

More information

Chapter 16. Logic Programming Languages ISBN

Chapter 16. Logic Programming Languages ISBN Chapter 16 Logic Programming Languages ISBN 0-321-49362-1 Chapter 16 Topics Introduction A Brief Introduction to Predicate Calculus Predicate Calculus and Proving Theorems An Overview of Logic Programming

More information

COP 3402 Systems Software Syntax Analysis (Parser)

COP 3402 Systems Software Syntax Analysis (Parser) COP 3402 Systems Software Syntax Analysis (Parser) Syntax Analysis 1 Outline 1. Definition of Parsing 2. Context Free Grammars 3. Ambiguous/Unambiguous Grammars Syntax Analysis 2 Lexical and Syntax Analysis

More information

A Brief Incomplete Introduction to NLTK

A Brief Incomplete Introduction to NLTK A Brief Incomplete Introduction to NLTK This introduction ignores and simplifies many aspects of the Natural Language TookKit, focusing on implementing and using simple context-free grammars and lexicons.

More information

Syntax and Grammars 1 / 21

Syntax and Grammars 1 / 21 Syntax and Grammars 1 / 21 Outline What is a language? Abstract syntax and grammars Abstract syntax vs. concrete syntax Encoding grammars as Haskell data types What is a language? 2 / 21 What is a language?

More information

The Prolog to Mercury transition guide

The Prolog to Mercury transition guide The Prolog to Mercury transition guide Version 14.01.1 Thomas Conway Zoltan Somogyi Fergus Henderson Copyright c 1995 2014 The University of Melbourne. Permission is granted to make and distribute verbatim

More information

Chapter 3. Describing Syntax and Semantics

Chapter 3. Describing Syntax and Semantics Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:

More information

Lecture 13: Natural Language Semantics I

Lecture 13: Natural Language Semantics I Comp24412 Symbolic AI Lecture 13: Natural Language Semantics I Ian Pratt-Hartmann Room KB2.38 email: ipratt@cs.man.ac.uk 2016 17 Outline A notation for functions Natural language semantics Prolog implementation

More information

SC/MATH Boolean Formulae. Ref: G. Tourlakis, Mathematical Logic, John Wiley & Sons, York University

SC/MATH Boolean Formulae. Ref: G. Tourlakis, Mathematical Logic, John Wiley & Sons, York University SC/MATH 1090 1- Boolean Formulae Ref: G. Tourlakis, Mathematical Logic, John Wiley & Sons, 2008. York University Department of Computer Science and Engineering York University- MATH 1090 01-Boolean 1 Overview

More information

Logic Programming and Resolution Lecture notes for INF3170/4171

Logic Programming and Resolution Lecture notes for INF3170/4171 Logic Programming and Resolution Lecture notes for INF3170/4171 Leif Harald Karlsen Autumn 2015 1 Introduction This note will explain the connection between logic and computer programming using Horn Clauses

More information

Lecture 6: More Lists

Lecture 6: More Lists Lecture 6: More Lists Theory Define append/3, a predicate for concatenating two lists, and illustrate what can be done with it Discuss two ways of reversing a list A naïve way using append/3 A more efficient

More information

Lecture 4: January 12, 2015

Lecture 4: January 12, 2015 32002: AI (First Order Predicate Logic, Interpretation and Inferences) Spring 2015 Lecturer: K.R. Chowdhary Lecture 4: January 12, 2015 : Professor of CS (VF) Disclaimer: These notes have not been subjected

More information

Operators (2A) Young Won Lim 10/2/13

Operators (2A) Young Won Lim 10/2/13 Operators (2A) Copyright (c) 2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version

More information

Chapter 3 (part 3) Describing Syntax and Semantics

Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings

More information

! Greed. O(n log n) interval scheduling. ! Divide-and-conquer. O(n log n) FFT. ! Dynamic programming. O(n 2 ) edit distance.

! Greed. O(n log n) interval scheduling. ! Divide-and-conquer. O(n log n) FFT. ! Dynamic programming. O(n 2 ) edit distance. Algorithm Design Patterns and Anti-Patterns Chapter 8 NP and Computational Intractability Algorithm design patterns. Ex.! Greed. O(n log n) interval scheduling.! Divide-and-conquer. O(n log n) FFT.! Dynamic

More information

What is Prolog? - 1. A Prolog Tutorial. Prolog Programming. What is Prolog? - 2. » Declaring some facts about objects and their relationships

What is Prolog? - 1. A Prolog Tutorial. Prolog Programming. What is Prolog? - 2. » Declaring some facts about objects and their relationships What is Prolog? - 1 Prolog is an example of a logic programming language A Prolog Tutorial Based on Clocksin and Mellish Chapter 1 Invented by Alain Colmeraurer in 1972 The version implemented at the University

More information

2SAT Andreas Klappenecker

2SAT Andreas Klappenecker 2SAT Andreas Klappenecker The Problem Can we make the following boolean formula true? ( x y) ( y z) (z y)! Terminology A boolean variable is a variable that can be assigned the values true (T) or false

More information

An introduction to logic programming with Prolog

An introduction to logic programming with Prolog An introduction to logic programming with Prolog Dr. Constantinos Constantinides Department of Computer Science and Software Engineering Concordia University A running example: A family genealogy tree

More information

Introduction to predicate calculus

Introduction to predicate calculus Logic Programming Languages Logic programming systems allow the programmer to state a collection of axioms from which theorems can be proven. Express programs in a form of symbolic logic Use a logical

More information

2 Ambiguity in Analyses of Idiomatic Phrases

2 Ambiguity in Analyses of Idiomatic Phrases Representing and Accessing [Textual] Digital Information (COMS/INFO 630), Spring 2006 Lecture 22: TAG Adjunction Trees and Feature Based TAGs 4/20/06 Lecturer: Lillian Lee Scribes: Nicolas Hamatake (nh39),

More information

Functional Logic Programming. Kristjan Vedel

Functional Logic Programming. Kristjan Vedel Functional Logic Programming Kristjan Vedel Imperative vs Declarative Algorithm = Logic + Control Imperative How? Explicit Control Sequences of commands for the computer to execute Declarative What? Implicit

More information

Logic Languages. Hwansoo Han

Logic Languages. Hwansoo Han Logic Languages Hwansoo Han Logic Programming Based on first-order predicate calculus Operators Conjunction, disjunction, negation, implication Universal and existential quantifiers E A x for all x...

More information

Contents. Chapter 1 SPECIFYING SYNTAX 1

Contents. Chapter 1 SPECIFYING SYNTAX 1 Contents Chapter 1 SPECIFYING SYNTAX 1 1.1 GRAMMARS AND BNF 2 Context-Free Grammars 4 Context-Sensitive Grammars 8 Exercises 8 1.2 THE PROGRAMMING LANGUAGE WREN 10 Ambiguity 12 Context Constraints in Wren

More information

More Theories, Formal semantics

More Theories, Formal semantics Parts are based on slides by Carl Pollard Charles University, 2011-11-12 Optimality Theory Universal set of violable constraints: Faithfulness constraints:surface forms should be as close as to underlying

More information

Module 6. Knowledge Representation and Logic (First Order Logic) Version 2 CSE IIT, Kharagpur

Module 6. Knowledge Representation and Logic (First Order Logic) Version 2 CSE IIT, Kharagpur Module 6 Knowledge Representation and Logic (First Order Logic) 6.1 Instructional Objective Students should understand the advantages of first order logic as a knowledge representation language Students

More information

3 Lists. List Operations (I)

3 Lists. List Operations (I) 3 Lists. List Operations (I) The list is the simplest yet the most useful Prolog structure. A list is a sequence of any number of objects. Example 3.1: L = [1, 2, 3], R = [a, b, c], T = [john, marry, tim,

More information

Chapter 8. NP and Computational Intractability. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Chapter 8. NP and Computational Intractability. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. Chapter 8 NP and Computational Intractability Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 Algorithm Design Patterns and Anti-Patterns Algorithm design patterns.

More information

A programming language requires two major definitions A simple one pass compiler

A programming language requires two major definitions A simple one pass compiler A programming language requires two major definitions A simple one pass compiler [Syntax: what the language looks like A context-free grammar written in BNF (Backus-Naur Form) usually suffices. [Semantics:

More information

Introduction to Prolog

Introduction to Prolog Introduction to Prolog David Woods dwoods@scss.tcd.ie Week 3 - HT Declarative Logic The Prolog programming language is, at its theoretical core, a declarative language. This is unlike more commonly used

More information

Overgeneration and the Lexicon

Overgeneration and the Lexicon OvergenerationandtheLexicon Ling240SummerI2009 06/23 1 Complementizersandnullcategories Webeganbyintroducingsomechangestoourphrasestructurerulestoallowfor complementizerssuchasthat,if,whetherandthenullcomplementizer(whichwill

More information

UNIT 2 A. I. LANGUAGES-2: PROLOG

UNIT 2 A. I. LANGUAGES-2: PROLOG UNIT 2 A. I. LANGUAGES-2: Structure Page Nos. 2.0 Introduction 42 2.1 Objectives 43 2.2 Foundations of Prolog 43 2.3 Notations in Prolog for Building Blocks 46 2.4 How Prolog System Solves Problems 50

More information

CAP 5602 Summer, Lesson 4: Loops. The topics 1. the cut and some of its uses 2. the while loop 3. the do until loop

CAP 5602 Summer, Lesson 4: Loops. The topics 1. the cut and some of its uses 2. the while loop 3. the do until loop CAP 5602 Summer, 2011 Lesson 4: Loops The topics 1. the cut and some of its uses 2. the while loop 3. the do until loop 1. The cut The cut (!) is a way of controlling backtracking. If a rule contains a

More information

Prolog (cont d) Remark. Using multiple clauses. Intelligent Systems and HCI D7023E

Prolog (cont d) Remark. Using multiple clauses. Intelligent Systems and HCI D7023E Intelligent Systems and HCI D703E Lecture : More Prolog Paweł Pietrzak Prolog (cont d) 1 Remark The recent version of SWI- Prolog displays true and false rather than and no Using multiple clauses Different

More information

Prolog. Logic Programming vs Prolog

Prolog. Logic Programming vs Prolog Language constructs Prolog Facts, rules, queries through examples Horn clauses Goal-oriented semantics Procedural semantics How computation is performed? Comparison to logic programming 1 Logic Programming

More information

Introduction to Semantics. Expanding Our Formalism, Part 2 1

Introduction to Semantics. Expanding Our Formalism, Part 2 1 Expanding Our Formalism, Part 2 1 1. Lambda Notation for Defining Functions As you may have guessed by this point, most expressions of natural language will have some kind of function as their extension

More information

CASE STUDY LOGIC PROGRAMMING

CASE STUDY LOGIC PROGRAMMING CASE STUDY LOGIC PROGRAMMING 1 OUTLINE Preliminary Concepts Horn Clauses Logic Programming in Prolog Prolog Program Elements Practical Aspects of Prolog Prolog Examples Solving Word Puzzles Natural Language

More information

Mixed Integer Linear Programming

Mixed Integer Linear Programming Mixed Integer Linear Programming Part I Prof. Davide M. Raimondo A linear program.. A linear program.. A linear program.. Does not take into account possible fixed costs related to the acquisition of new

More information

Recursion, Structures, and Lists

Recursion, Structures, and Lists Recursion, Structures, and Lists Artificial Intelligence Programming in Prolog Lecturer: Tim Smith Lecture 4 04/10/04 30/09/04 AIPP Lecture 3: Recursion, Structures, and Lists 1 The central ideas of Prolog

More information

CS 321 Programming Languages and Compilers. Prolog

CS 321 Programming Languages and Compilers. Prolog CS 321 Programming Languages and Compilers Prolog Prolog PROgramming LOGic Algorithm = Logic + Control Logic programming deals with computing relations rather than functions. To understand Prolog one must

More information

Dowty Friday, July 22, 11

Dowty Friday, July 22, 11 Dowty 1994 The Role of Negative Polarity and Concord Marking in Natural Language Reasoning SALT IV, Cornell, Ithaca, NY. starts by explaining Sánchez work more lucidly than Sánchez himself presents a simpler

More information

LING 130: Quantified Noun Phrases

LING 130: Quantified Noun Phrases LING 130: Quantified Noun Phrases James Pustejovsky March 15, 2010 1 Syntax for Typed λ-calculus We will now present a language which uses specific types of entities, where the entities are combined with

More information

! Greed. O(n log n) interval scheduling. ! Divide-and-conquer. O(n log n) FFT. ! Dynamic programming. O(n 2 ) edit distance.

! Greed. O(n log n) interval scheduling. ! Divide-and-conquer. O(n log n) FFT. ! Dynamic programming. O(n 2 ) edit distance. Algorithm Design Patterns and Anti-Patterns 8. NP and Computational Intractability Algorithm design patterns. Ex.! Greed. O(n log n) interval scheduling.! Divide-and-conquer. O(n log n) FFT.! Dynamic programming.

More information

Unification Algorithms

Unification Algorithms King s College London December 2007 Motivations Unification algorithms have become popular in recent years, due to their key role in the fields of logic programming and theorem proving. Logic Programming

More information

CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter p. 1/27

CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter p. 1/27 CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter 2.1-2.7 p. 1/27 CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer

More information

Scheme Tutorial. Introduction. The Structure of Scheme Programs. Syntax

Scheme Tutorial. Introduction. The Structure of Scheme Programs. Syntax Scheme Tutorial Introduction Scheme is an imperative language with a functional core. The functional core is based on the lambda calculus. In this chapter only the functional core and some simple I/O is

More information

MIDTERM EXAM (Solutions)

MIDTERM EXAM (Solutions) MIDTERM EXAM (Solutions) Total Score: 100, Max. Score: 83, Min. Score: 26, Avg. Score: 57.3 1. (10 pts.) List all major categories of programming languages, outline their definitive characteristics and

More information

Homework & NLTK. CS 181: Natural Language Processing Lecture 9: Context Free Grammars. Motivation. Formal Def of CFG. Uses of CFG.

Homework & NLTK. CS 181: Natural Language Processing Lecture 9: Context Free Grammars. Motivation. Formal Def of CFG. Uses of CFG. C 181: Natural Language Processing Lecture 9: Context Free Grammars Kim Bruce Pomona College pring 2008 Homework & NLTK Review MLE, Laplace, and Good-Turing in smoothing.py Disclaimer: lide contents borrowed

More information

Arbori Starter Manual Eugene Perkov

Arbori Starter Manual Eugene Perkov Arbori Starter Manual Eugene Perkov What is Arbori? Arbori is a query language that takes a parse tree as an input and builds a result set 1 per specifications defined in a query. What is Parse Tree? A

More information

The Earley Parser

The Earley Parser The 6.863 Earley Parser 1 Introduction The 6.863 Earley parser will work with any well defined context free grammar, including recursive ones and those containing empty categories. It can use either no

More information

What s the problem? fib(1,1). fib(2,1). fib(n,x) :- N>2, N1 is N-1, N2 is N-2, fib(n1,x2), fib(n2,x2).

What s the problem? fib(1,1). fib(2,1). fib(n,x) :- N>2, N1 is N-1, N2 is N-2, fib(n1,x2), fib(n2,x2). 39 What s the problem? A Fibonacci Implementation fib(1,1). fib(2,1). fib(n,x) :- N>2, N1 is N-1, N2 is N-2, fib(n1,x2), fib(n2,x2). List Concatenation conc([],l,l). conc([x L1], L2, [X L3]) :- conc(l1,l2,l3).

More information

CS Bootcamp Boolean Logic Autumn 2015 A B A B T T T T F F F T F F F F T T T T F T F T T F F F

CS Bootcamp Boolean Logic Autumn 2015 A B A B T T T T F F F T F F F F T T T T F T F T T F F F 1 Logical Operations 1.1 And The and operator is a binary operator, denoted as, &,, or sometimes by just concatenating symbols, is true only if both parameters are true. A B A B F T F F F F The expression

More information