Definite-clause grammars: PSGs in Prolog (in principle, string rewrite described as a logical formula).
|
|
- Amber Hodges
- 5 years ago
- Views:
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 Administrivia Today: Special Computer Lab Class Homework 2 help session Reminder Extension: Homework 2 due tonight strict deadline Tools
More informationLING 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 informationSyntax-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 informationConjunctive 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 informationLING 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 informationLecture 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 informationLING/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 informationNotes 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 informationLOGIC 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 informationThe 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 informationIntroduction 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 informationProlog 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 informationLecture 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 informationproof 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 information1. 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 informationComputational 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 informationIntroduction 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 informationIntroduction & 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 informationContext-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 informationGrammar 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 informationLexical 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 informationDeclarative 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 informationContext-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 informationGrammar 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 informationPropositional 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 informationProlog. 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 informationThe 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 informationLing/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 informationPropositional 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 information8.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 informationLeaning 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 informationChapter 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 informationConstraint 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 informationLogic 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 informationImplementaçã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 informationProseminar 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 informationIn 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 informationOperators (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 informationLogic (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 informationComputational 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 informationCPS 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 informationResolution (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 informationComputational Linguistics: Feature Agreement
Computational Linguistics: Feature Agreement Raffaella Bernardi Contents 1 Admin................................................... 4 2 Formal Grammars......................................... 5 2.1 Recall:
More informationDerived 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 informationSemantics 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 information11-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 informationCopyright 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 informationData 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 informationPrinciples 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 informationFundamentals 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 informationChapter 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 informationCOP 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 informationA 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 informationSyntax 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 informationThe 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 informationChapter 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 informationLecture 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 informationSC/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 informationLogic 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 informationLecture 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 informationLecture 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 informationOperators (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 informationChapter 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.
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 informationWhat 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 information2SAT 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 informationAn 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 informationIntroduction 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 information2 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 informationFunctional 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 informationLogic 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 informationContents. 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 informationMore 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 informationModule 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 information3 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 informationChapter 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 informationA 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 informationIntroduction 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 informationOvergeneration and the Lexicon
OvergenerationandtheLexicon Ling240SummerI2009 06/23 1 Complementizersandnullcategories Webeganbyintroducingsomechangestoourphrasestructurerulestoallowfor complementizerssuchasthat,if,whetherandthenullcomplementizer(whichwill
More informationUNIT 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 informationCAP 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 informationProlog (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 informationProlog. 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 informationIntroduction 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 informationCASE 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 informationMixed 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 informationRecursion, 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 informationCS 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 informationDowty 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 informationLING 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.
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 informationUnification 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 informationCSCI.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 informationScheme 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 informationMIDTERM 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 informationHomework & 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 informationArbori 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 informationThe 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 informationWhat 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 informationCS 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