Topic A: Introduction to Prolog

Size: px
Start display at page:

Download "Topic A: Introduction to Prolog"

Transcription

1 Topic A: Introduction to Prolog Recommended Exercises and Readings From Programming in Prolog (5 th Ed.) Exercises: 1.2, 1.3, 1.4, Readings: Chapters 1 and Prolog Prolog: Programming in Logic A logic programming language Expresses the logic of the computation without describing its control flow Prolog Creating a Prolog program Write facts Write rules involving the facts Running a Prolog program Write a query (or goal) Let Prolog s engine search for an answer Search processes similar to those used by Prolog are an important part of AI 3 4

2 Your First Prolog Knowledge Base Grapes, plums, apples and pears are fruit Alice has grapes Bob has apples and plums Charles has apples and pears Diane has plums, celery and carrots Create a Prolog knowledge base that includes these facts Your First Prolog Knowledge Base Load the knowledge base into Prolog Choose Consult from the File menu Query the facts Are apples fruit? Does Bob have plums? Does Bob have celery? Are bananas fruit? Is celery a vegetable? 5 6 Rules Rules allow the knowledge base to contain conditional knowledge Something is true if something else is true Add rules that state that a food is healthy if it is a fruit Add additional rules that state that a food is healthy if it is a vegetable Variables A variable is a placeholder for information that will be determined in the future Any name that starts with an uppercase letter is a variable Write Prolog goals that answer the following questions: What items does Alice have? Who has pears? Which items are vegetables? Which items are healthy? 7 8

3 Conjunction and Disjunction Conjunction And Both items must be true for the result to be true Denoted by a, in Prolog Disjunction Or At least one item must be true for the result to be true Denoted by a ; in Prolog, or by having two separate rules Variables A variable can appear more than once in a Prolog goal Create a query that determines who has both apples and plums Variables can appear in Prolog rules Rewrite our rule for healthy so that it doesn t have to list off every healthy item All fruits are healthy and all vegetables are healthy 9 10 Modus Ponens A rule of logical inference Given A rule that says a is true if b is true Knowledge that b is true Then Conclude that a is true Prolog uses this rule (repeatedly) to answer queries Fruits and Vegetables Botanically speaking A fruit is a seed bearing structure that develops from the ovary of a flowering plant A vegetable is some other part of a plant typically a leaf, a stem or a root But from a culinary point of view Some items that are botanically fruits are used as vegetables Tomato, bell peppers, egg plants, And they are shelved with the vegetables in the store 11 12

4 Fruits and Vegetables Add rules to the knowledge base that make tomatoes, bell peppers and egg plants both fruits and vegetables A Final Thought on this Example Knowledge is knowing that a tomato is a fruit. Add a rule that says that an item causes confusion if it is both a fruit and a vegetable Wisdom is knowing not to put it in a fruit salad Terms Prolog knowledge bases are constructed from three types of terms Constants Must be a number or an atom Atoms begin with a lowercase letter, look like an operator (a collection of symbols), or are quoted inside single quotes Examples: 1, 31, lisa, james, +, :, 'Apple', Variables Must begin with an uppercase letter or an underscore Examples: X, _123, ListOfValues, Terms Prolog knowledge bases are constructed from three types of terms Compound term Consists of multiple terms f(t 1, t 2,, t n ) The atom f is referred to as a functor The terms t 1 t n are referred to as components The number of terms inside the parentheses is the arity of the term f 15 16

5 Matching How does Prolog determine whether or not a goal is true? How does it identify the values for variables that satisfy a goal? Matching is performed between the goal and the knowledge base Matching Two terms, t 1 and t 2, match if: t 1 and t 2 are both the same constant term t 1 is an uninstantiated variable and t 2 is any other term t 1 is instantiated to t 2 t 2 is an uninstantiated variable and t 1 is any other term t 2 is instantiated to t 1 t 1 and t 2 both uninstantiated variables t 1 and t 2 now co refer t 1 and t 2 are both compound terms with the same functor name and arity And all corresponding terms inside parentheses match And all variable instantiations within the parentheses are compatible No other terms match Example: Family Tree Create a knowledge base that describes a family Facts Identify each person as male or female Identify each parent / child relationship Rules Describe more complex relationships like sibling, brother, sister, aunt, uncle, grandfather, grandmother, cousin, Goals / Queries Test if two people have a certain relationship Identify everyone who is related to a certain person in a given way Summary A Prolog knowledgebase consists of Facts Rules Goals / Queries can answer questions based on the information in the knowledgebase Is a statement true? What values can be used to make a statement true? The programmer does not specify the control flow for the program 19 21

6 A good example for a cut: An item is okforschool if it is not junk and it s not a nut 22

Programming Paradigms

Programming Paradigms David Ng June 30, 2017 Contents 1 May 17, 2017 3 1.1 Programming Paradigm............................ 3 1.2 Languages.................................... 3 1.3 Haskell.....................................

More information

Hints: I used a left fold and wrote a named helper function when I created my solution.

Hints: I used a left fold and wrote a named helper function when I created my solution. 1) [4 marks] On a particular system, a password is considered acceptable if it meets the following constraints: It is at least 8 characters in length It contains at least one uppercase letter ('A' to 'Z')

More information

6.034 Artificial Intelligence, Fall 2006 Prof. Patrick H. Winston. Problem Set 1

6.034 Artificial Intelligence, Fall 2006 Prof. Patrick H. Winston. Problem Set 1 6.034 Artificial Intelligence, Fall 2006 Prof. Patrick H. Winston Problem Set 1 This problem set is due Wednesday, September 20. If you have questions about it, ask the TA email list. Your response will

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

Topic B: Backtracking and Lists

Topic B: Backtracking and Lists Topic B: Backtracking and Lists 1 Recommended Exercises and Readings From Programming in Prolog (5 th Ed.) Readings: Chapter 3 2 Searching for the Answer In order for a Prolog program to report the correct

More information

Chapter 16. Logic Programming. Topics. Predicate Calculus and Proving Theorems. Resolution. Resolution: example. Unification and Instantiation

Chapter 16. Logic Programming. Topics. Predicate Calculus and Proving Theorems. Resolution. Resolution: example. Unification and Instantiation Topics Chapter 16 Logic Programming Proving Theorems Resolution Instantiation and Unification Prolog Terms Clauses Inference Process Backtracking 2 Predicate Calculus and Proving Theorems A use of propositions

More information

Predicate Calculus. Problems? Syntax. Atomic Sentences. Complex Sentences. Truth

Predicate Calculus. Problems? Syntax. Atomic Sentences. Complex Sentences. Truth Problems? What kinds of problems exist for propositional logic? Predicate Calculus A way to access the components of an individual assertion Predicate Calculus: used extensively in many AI programs, especially

More information

will take you everywhere.

will take you everywhere. Prolog COMP360 Logic will get you from A to B. Imagination will take you everywhere. Albert Einstein Prolog Assignment A programming assignment in Prolog has been posted on Blackboard Upload your.pl file

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

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

Artificial Intelligence Course Sharif University of Technology

Artificial Intelligence Course Sharif University of Technology Artificial Intelligence Course Sharif University of Technology Outline Data objects Matching Declarative meaning of Prolog programs Procedural meaning Example: monkey and banana Order of clauses and goals

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

Prolog. (Programming in Logic) Prepared by: Tanay Kumar Saha

Prolog. (Programming in Logic) Prepared by: Tanay Kumar Saha Prolog (Programming in Logic) Prepared by: Tanay Kumar Saha Motivation for Learning Prolog Follow prolog news: http://www.swi-prolog.org/news SWI-Prolog Used For Satellite Anomaly Detection Fast cars and

More information

PROgramming in LOGic. Part II. By Forrest Pepper 12/7/07

PROgramming in LOGic. Part II. By Forrest Pepper 12/7/07 PROgramming in LOGic Part II By Forrest Pepper 12/7/07 Anatomy of a Program We discussed the three main constructs of a Prolog program Facts contain a property or state a relationship between two or more

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

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

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

PROLOG. First simple Prolog Program. Basic elements of Prolog. Clause. NSSICT/CH/Nov., 2012.

PROLOG. First simple Prolog Program. Basic elements of Prolog. Clause. NSSICT/CH/Nov., 2012. PROLOG Prolog is a programming language for symbolic, n-numeric computations. It is specially well suited for solving problems that involve objects and relation between objects. First simple Prolog Program

More information

SECTION 1.5: LOGIC PROGRAMMING

SECTION 1.5: LOGIC PROGRAMMING SECTION 1.5: LOGIC PROGRAMMING William DeMeo williamdemeo@gmail.com University of South Carolina February 7, 2013 SPECIFYING FACTS AND RULES We populate our Prolog database with facts using predicates,

More information

The current topic: Prolog. Announcements. Meaning of a Prolog rule. Prolog syntax. Reminder: The deadline for Lab 2 re-mark requests is Friday.

The current topic: Prolog. Announcements. Meaning of a Prolog rule. Prolog syntax. Reminder: The deadline for Lab 2 re-mark requests is Friday. The current topic: Prolog! Introduction! Object-oriented programming: Python! Functional programming: Scheme! Python GUI programming (Tkinter)! Types and values Logic programming: Prolog! Introduction

More information

Programming Paradigms

Programming Paradigms PP 2017/18 Unit 6 Prolog Basics 1/42 Programming Paradigms Unit 6 Prolog Basics J. Gamper Free University of Bozen-Bolzano Faculty of Computer Science IDSE PP 2017/18 Unit 6 Prolog Basics 2/42 Outline

More information

Programming Languages Week 6 Exercises

Programming Languages Week 6 Exercises Programming Languages Week 6 Exercises 1 Logic programming in Python 1.1 Unification Unification is the process of making two things the same. Unifying an unbound variable and a value makes them the same

More information

RELATIONSHIP TO PROBAND (RELATE)

RELATIONSHIP TO PROBAND (RELATE) RELATIONSHIP TO PROBAND (RELATE) Release 3.1 December 1997 - ii - RELATE Table of Contents 1 Changes Since Last Release... 1 2 Purpose... 3 3 Limitations... 5 3.1 Command Line Parameters... 5 4 Theory...

More information

Introduction to Artificial Intelligence 2 nd semester 2016/2017. Chapter 8: First-Order Logic (FOL)

Introduction to Artificial Intelligence 2 nd semester 2016/2017. Chapter 8: First-Order Logic (FOL) Introduction to Artificial Intelligence 2 nd semester 2016/2017 Chapter 8: First-Order Logic (FOL) Mohamed B. Abubaker Palestine Technical College Deir El-Balah 1 Introduction Propositional logic is used

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

Machine Learning nearest neighbors classification. Luigi Cerulo Department of Science and Technology University of Sannio

Machine Learning nearest neighbors classification. Luigi Cerulo Department of Science and Technology University of Sannio Machine Learning nearest neighbors classification Luigi Cerulo Department of Science and Technology University of Sannio Nearest Neighbors Classification The idea is based on the hypothesis that things

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

This lecture covers: Prolog s execution strategy explained more precisely. Revision of the elementary Prolog data types

This lecture covers: Prolog s execution strategy explained more precisely. Revision of the elementary Prolog data types This lecture covers: Prolog s execution strategy explained more precisely The execution strategy has been presented as simply placing all matching clauses onto the stack. In fact, Prolog is slightly more

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

Example Programming Exercises for Prolog

Example Programming Exercises for Prolog 2007 February 3 3401 Example Prolog Programs Page 1 of 3 Example Programming Exercises for Prolog 1. Write a Prolog predicate countbt(tree, Count) to count the number of des in a binary tree that have

More information

INF5390 Kunstig intelligens. First-Order Logic. Roar Fjellheim

INF5390 Kunstig intelligens. First-Order Logic. Roar Fjellheim INF5390 Kunstig intelligens First-Order Logic Roar Fjellheim Outline Logical commitments First-order logic First-order inference Resolution rule Reasoning systems Summary Extracts from AIMA Chapter 8:

More information

CSL105: Discrete Mathematical Structures. Ragesh Jaiswal, CSE, IIT Delhi

CSL105: Discrete Mathematical Structures. Ragesh Jaiswal, CSE, IIT Delhi is another way of showing that an argument is correct. Definitions: Literal: A variable or a negation of a variable is called a literal. Sum and Product: A disjunction of literals is called a sum and a

More information

Fractions and Mixed Numbers

Fractions and Mixed Numbers 6 CHAPTER Fractions and Mixed Numbers Worksheet Adding Fractions Find the equivalent fraction. Shade the models. _? 6. _?.? Reteach A Find the equivalent fractions. To get the equivalent fraction, multiply

More information

Symbolic Computation Example Programming Exercises for Prolog

Symbolic Computation Example Programming Exercises for Prolog 2001 July 16 3401 Prolog Programming Exercises Page 1 of 8 Symbolic Computation Example Programming Exercises for Prolog 1. Write a Prolog predicate countbt(tree, Count) to count the number of des in a

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

SEMANTICS. Retrieval by Meaning

SEMANTICS. Retrieval by Meaning SEMANTICS 1 Retrieval by Meaning Query: "Accident of a Mercedes" Retrieved image: Methods for retrieval by meaning: high-level image understanding beyond state-of-the-art except easy cases natural language

More information

mond and a square both go to the number 4.

mond and a square both go to the number 4. A function machine is called one-to-one if every one of its inputs goes to a dierent output. Let's determine which of our functions from last week are one-to-one. 1. Is Katja's function machine one-to-one?

More information

ACCESS for ELLs 2.0 Paper Grade 1 Sample Items

ACCESS for ELLs 2.0 Paper Grade 1 Sample Items ACCESS for ELLs 2.0 Paper Grade 1 Sample Items Grade 1 Sample Items for the Public Speaking Tier A WIDA ACCESS for ELLs Sample Items for the Public (Released 12/2015) 1 Page 2 2 At the Grocery Store Sample

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

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

Visual Prolog Tutorial

Visual Prolog Tutorial Visual Prolog Tutorial Jim Mims April 2008 (with modification by Danjie Zhu) Preface What is Prolog? Programming in Logic. Edinburgh syntax is the basis of ISO standard. High-level interactive language.

More information

IF/Prolog V5.3. User s Guide. Siemens AG Austria

IF/Prolog V5.3. User s Guide. Siemens AG Austria IF/Prolog V5.3 User s Guide Siemens AG Austria Is there anything you would like to tell us about this manual? Please send us your comments. Siemens AG Austria PSE KB B3 Gudrunstrasse 11 A-1100 Vienna Austria

More information

Prolog Programming. Chapter 2. Syntax and Meaning of Prolog Programs 1/16/2010

Prolog Programming. Chapter 2. Syntax and Meaning of Prolog Programs 1/16/2010 Prolog Programming Chapter 2 Syntax and Meaning of Prolog Programs 1/16/2010 1 Chapter 2 Syntax and Meaning of Prolog Programs Data Objects Matching Declarative meaning of Prolog programs Procedural meaning

More information

Part I CHR tutorial. Cambridge University Press Constraint Handling Rules Thom Fruhwirth Excerpt More information

Part I CHR tutorial. Cambridge University Press Constraint Handling Rules Thom Fruhwirth Excerpt More information Part I CHR tutorial We present the essentials of the Constraint Handling Rules (CHR) programming language by the use of examples in this Tutorial part. The first chapter Getting started is a step-by-step

More information

Declarative Programming Prolog CS360

Declarative Programming Prolog CS360 Declaratie Programming Prolog CS360 Terms Numerical literals String literals Ø By default, any string that starts is all lowercase Ø Use single quotes for anything else Atoms Ø Essentially, strings Ø Also,

More information

Wan Hussain Wan Ishak

Wan Hussain Wan Ishak September 1 st Session 2014/2015 (A141) Wan Hussain Wan Ishak School of Computing UUM College of Arts and Sciences Universiti Utara Malaysia (P) 04-9285150 (E) hussain@uum.edu.my (U) http://wanhussain.com

More information

! model construction

! model construction Logics of Image Interpretation 1 Describing Image Interpretation in Logical Terms In 2D images (with possible occlusions) we never see the complete 3D reality.? deduction! model construction "from the

More information

Project activity sheet 3

Project activity sheet 3 1 Macmillan English Project activity sheet 3 Project: Food bar chart Units 13 18 Learning outcomes By the end of the project, children will have: practised language from Units 13 18 through a group project

More information

Lecture 16: Logic Programming in Prolog

Lecture 16: Logic Programming in Prolog Lecture 16: Logic Programming in Prolog COMP 524 Programming Language Concepts Stephen Olivier March 26, 2009 Based on slides by A. Block, notes by N. Fisher, F. Hernandez-Campos, and D. Stotts Goal of

More information

ECE Spring 2018 Problem Set #2 Due: 3/14/18

ECE Spring 2018 Problem Set #2 Due: 3/14/18 ECE 45234 - Spring 2018 Problem Set #2 Due: 3/14/18 The purpose of this problem set is to gain experience with logic-based methods. In the engineering design section you will be simulating the wumpus world.

More information

ACCESSDATA SUPPLEMENTAL APPENDIX

ACCESSDATA SUPPLEMENTAL APPENDIX ACCESSDATA SUPPLEMENTAL APPENDIX dtsearch Search Requests Note: This following dtsearch information was developed by DT Software, Inc. Copyright 1991 1997 DT Software, Inc. www.dtsearch.com. This appendix

More information

CSC 270 Survey of Programming Languages. Basic Constructs of Prolog

CSC 270 Survey of Programming Languages. Basic Constructs of Prolog CSC 270 Survey of Programming Languages Prolog Lecture 1 Facts, Rules, and Queries Basic Constructs of Prolog Prolog has only three basic constructs: Facts statements that are unconditionally true Rules

More information

CSI30. Chapter 1. The Foundations: Logic and Proofs Rules of inference with quantifiers Logic and bit operations Specification consistency

CSI30. Chapter 1. The Foundations: Logic and Proofs Rules of inference with quantifiers Logic and bit operations Specification consistency Chapter 1. The Foundations: Logic and Proofs 1.13 Rules of inference with quantifiers Logic and bit operations Specification consistency 1.13 Rules of inference with quantifiers universal instantiation

More information

Introduction to Python

Introduction to Python Introduction to Python Why is Python? Object-oriented Free (open source) Portable Powerful Mixable Easy to use Easy to learn Running Python Immediate mode Script mode Integrated Development Environment

More information

22c:31 Algorithms. Kruskal s Algorithm for MST Union-Find for Disjoint Sets

22c:31 Algorithms. Kruskal s Algorithm for MST Union-Find for Disjoint Sets 22c:1 Algorithms Kruskal s Algorithm for MST Union-Find for Disjoint Sets 1 Kruskal s Algorithm for MST Work with edges, rather than nodes Two steps: Sort edges by increasing edge weight Select the first

More information

Advanced Logic and Functional Programming

Advanced Logic and Functional Programming Advanced Logic and Functional Programming Lecture 1: Programming paradigms. Declarative programming. From first-order logic to Logic Programming. Programming paradigms Programming paradigm (software engineering)

More information

Prolog Introduction. Gunnar Gotshalks PI-1

Prolog Introduction. Gunnar Gotshalks PI-1 Prolog Introduction PI-1 Physical Symbol System Hypothesis A physical symbol system has the necessary and sufficient means for general intelligent action. Allen Newell and Herbert A. Simon PI-2 Physical

More information

CS 360: Programming Languages Lecture 10: Logic Programming with Prolog

CS 360: Programming Languages Lecture 10: Logic Programming with Prolog CS 360: Programming Languages Lecture 10: Logic Programming with Prolog Geoffrey Mainland Drexel University Section 1 Administrivia Midterm Tuesday Midterm is Tuesday, February 14! Study guide is on the

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

KASHRUTH CERTIFICATION This is to certify that the following products, produced by:

KASHRUTH CERTIFICATION This is to certify that the following products, produced by: , KASHRUTH CERTIFICATION This is to certify that the following products, produced by:, 13904 US-2, P.O. Box 129, Brule, WI 54820 are under the Kashruth certification of the crc (Chicago Rabbinical Council).

More information

CS 380/480 Foundations of Artificial Intelligence Winter 2007 Assignment 2 Solutions to Selected Problems

CS 380/480 Foundations of Artificial Intelligence Winter 2007 Assignment 2 Solutions to Selected Problems CS 380/480 Foundations of Artificial Intelligence Winter 2007 Assignment 2 Solutions to Selected Problems 1. Search trees for the state-space graph given below: We only show the search trees corresponding

More information

Part I Logic programming paradigm

Part I Logic programming paradigm Part I Logic programming paradigm 1 Logic programming and pure Prolog 1.1 Introduction 3 1.2 Syntax 4 1.3 The meaning of a program 7 1.4 Computing with equations 9 1.5 Prolog: the first steps 15 1.6 Two

More information

COMS 6100 Class Notes

COMS 6100 Class Notes COMS 6100 Class Notes Wenbo Dong 20 October 2016 1 Perl There is more than one way to do it. 1.1 Array syntax: @arrayname=(item 1,item 2,item 3...) @ is the beginning of an array. array stores scaler (beginning

More information

ITCS 6150 Intelligent Systems. Lecture 13 First-Order Logic Chapter 8

ITCS 6150 Intelligent Systems. Lecture 13 First-Order Logic Chapter 8 ITCS 6150 Intelligent Systems Lecture 13 First-Order Logic Chapter 8 First-order logic We saw how propositional logic can create intelligent behavior But propositional logic is a poor representation for

More information

Registering as a parent

Registering as a parent Powered by My Learning Registering as a parent 1 Table of Contents Registering using your browser (PC/tablet/mobile)... 2 What to do if you haven t received your activation code.... 4 What to do if you

More information

This chapter explains data types in the KornShell. If You're New to Programming...

This chapter explains data types in the KornShell. If You're New to Programming... 3 Data Types This chapter explains data types in the KornShell. If You're New to Programming... Every variable holds a value. The data type of a variable specifies the kind of values that the variable

More information

Using first order logic (Ch. 8-9)

Using first order logic (Ch. 8-9) Using first order logic (Ch. 8-9) Review: First order logic In first order logic, we have objects and relations between objects The relations are basically a list of all valid tuples that satisfy the relation

More information

A Brief Introduction to Truth-Table Logic. Kent Slinker Pima Community College

A Brief Introduction to Truth-Table Logic. Kent Slinker Pima Community College ` A Brief Introduction to ruth-able Logic Kent Slinker Pima Community College Earlier in this class, we learned that all arguments are either valid or invalid. Additionally, we learned that certain valid

More information

CSCI 4150: Intro. to Artificial Intelligence Midterm Examination

CSCI 4150: Intro. to Artificial Intelligence Midterm Examination CSCI 4150: Intro. to Artificial Intelligence Midterm Examination Tuesday October 17, 000 Name: 1 Assorted search questions The following questions explore differences in the number of nodes evaluated for

More information

Welcome to the Quantitative Trait Loci (QTL) Tutorial

Welcome to the Quantitative Trait Loci (QTL) Tutorial Welcome to the Quantitative Trait Loci (QTL) Tutorial This tutorial will describe how to navigate the section of Gramene that provides information on Quantitative Trait Loci (QTL). QTL are a statistical

More information

Using first order logic (Ch. 8-9)

Using first order logic (Ch. 8-9) Using first order logic (Ch. 8-9) Review: First order logic In first order logic, we have objects and relations between objects The relations are basically a list of all valid tuples that satisfy the relation

More information

nrql Tutorial Systems & Co. KG Blumenau Hamburg Germany nrql Tutorial p.1/55

nrql Tutorial Systems & Co. KG Blumenau Hamburg Germany   nrql Tutorial p.1/55 nrql Tutorial Systems & Co. KG Blumenau 50 22089 Hamburg Germany www.racer-systems.com nrql Tutorial p.1/55 Overview of Tutorial The nrql Query Language Introductory examples - why nrql? Syntax (query

More information

Datalog: Deductive Database Programming

Datalog: Deductive Database Programming Datalog: Deductive Database Programming Version 5.2 Jay McCarthy November 8, 2011 Datalog is a declarative logic language in which each formula is a function-free Horn clause, and

More information

Logic as a Programming Language

Logic as a Programming Language Logic as a Programming Language! Logic can be considered the oldest programming language! Aristotle invented propositional logic over 2000 years ago in order to prove properties of formal arguments! Propositions

More information

CS215 Logic Programming with Prolog

CS215 Logic Programming with Prolog CS215 Logic Programming with Prolog mario camilleri 1991/3 Table of Contents Table of Contents...i 1 Introduction...1 1.1 Texts...1 1.2 Supplementary texts:...1 1.3 Software...2 1.4 Assessment Procedure...2

More information

Chapter 16. Logic Programming. Topics. Unification. Resolution. Prolog s Search Strategy. Prolog s Search Strategy

Chapter 16. Logic Programming. Topics. Unification. Resolution. Prolog s Search Strategy. Prolog s Search Strategy Topics Chapter 16 Logic Programming Summary (resolution, unification, Prolog search strategy ) Disjoint goals The cut operator Negative goals Predicate fail Debugger / tracer Lists 2 Resolution Resolution

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

the rules The Goal Get all three of your monkeys around the board and into the Banana Grove before anyone else can!

the rules The Goal Get all three of your monkeys around the board and into the Banana Grove before anyone else can! the rules Equipment Code Monkey Island Gameboard, 12 monkey figurines (three of each color), 54 Guide cards, 16 Fruit cards, 10 Boost in a Bottle cards. The Goal Get all three of your monkeys around the

More information

Decisions. Arizona State University 1

Decisions. Arizona State University 1 Decisions CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 4 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University

More information

Linkage analysis with paramlink Session I: Introduction and pedigree drawing

Linkage analysis with paramlink Session I: Introduction and pedigree drawing Linkage analysis with paramlink Session I: Introduction and pedigree drawing In this session we will introduce R, and in particular the package paramlink. This package provides a complete environment for

More information

Introduction to Logic Programming in Prolog 1 / 39

Introduction to Logic Programming in Prolog 1 / 39 Introduction to Logic Programming in Prolog 1 / 39 Outline Programming paradigms Logic programming basics Introduction to Prolog Predicates, queries, and rules Understanding the query engine Goal search

More information

Software Paradigms (Lesson 6) Logic Programming

Software Paradigms (Lesson 6) Logic Programming Software Paradigms (Lesson 6) Logic Programming Table of Contents 1 Introduction... 2 2 Facts... 3 3 Predicates (Structured Terms)... 4 3.1 General Structures... 4 3.2 Predicates (Syntax)... 4 3.3 Simple

More information

B Tree. Also, every non leaf node must have at least two successors and all leaf nodes must be at the same level.

B Tree. Also, every non leaf node must have at least two successors and all leaf nodes must be at the same level. B Tree If there is just one item in the node, then the B Tree is organised as a binar search tree: all items in the left sub tree must be less than the item in the node, and all items in the right sub

More information

First-Order Logic (FOL)

First-Order Logic (FOL) First-Order Logic (FOL) FOL consists of the following parts: Objects/terms Quantified variables Predicates Logical connectives Implication Objects/Terms FOL is a formal system that allows us to reason

More information

Principles of Programming Languages Topic: Logic Programming Professor Lou Steinberg

Principles of Programming Languages Topic: Logic Programming Professor Lou Steinberg Principles of Programming Languages Topic: Logic Programming Professor Lou Steinberg 1 Logic Programming True facts: If I was born in year B, then in year Y on my birthday I turned Y-B years old I turned

More information

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

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

More information

ITS336 Lecture 7 Prolog

ITS336 Lecture 7 Prolog Lecture 7 Prolog Prolog is a language for logic programming. Its concept is based on the First Order Logic. 7.1 Prolog Syntax Constant Symbols a word starting with a lowercase letter, or numbers e.g. john,

More information

PROLOG PROgramming in LOGic

PROLOG PROgramming in LOGic PROLOG PROgramming in LOGic 1 Knowledge Based Information Systems (Relational) database systems are very efficient in the handling of data. Information is data together with a suitable interpretation.

More information

Programming Language Concepts Logic Programming Prolog. Janyl Jumadinova 14 March, 2017

Programming Language Concepts Logic Programming Prolog. Janyl Jumadinova 14 March, 2017 Programming Language Concepts Logic Programming Prolog Janyl Jumadinova 14 March, 2017 Background Japan s Fifth Generation project 1982: (https: //en.wikipedia.org/wiki/fifth_generation_computer) These

More information

For Wednesday. No reading Chapter 9, exercise 9. Must be proper Horn clauses

For Wednesday. No reading Chapter 9, exercise 9. Must be proper Horn clauses For Wednesday No reading Chapter 9, exercise 9 Must be proper Horn clauses Same Variable Exact variable names used in sentences in the KB should not matter. But if Likes(x,FOPC) is a formula in the KB,

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

CSC148 Week 6. Larry Zhang

CSC148 Week 6. Larry Zhang CSC148 Week 6 Larry Zhang 1 Announcements Test 1 coverage: trees (topic of today and Wednesday) are not covered Assignment 1 slides posted on the course website. 2 Data Structures 3 Data Structures A data

More information

Lecture 9: A closer look at terms

Lecture 9: A closer look at terms Lecture 9: A closer look at terms Theory Introduce the == predicate Take a closer look at term structure Introduce strings in Prolog Introduce operators Exercises Exercises of LPN: 9.1, 9.2, 9.3, 9.4,

More information

Announcements. The current topic: Prolog. Logic programming. Logic programming. Lab 2 has been marked.

Announcements. The current topic: Prolog. Logic programming. Logic programming. Lab 2 has been marked. The current topic: Prolog! Introduction! Object-oriented programming: Python! Functional programming: Scheme! Python GUI programming (Tkinter)! Types and values Logic programming: Prolog Next up: Introduction

More information

Prolog Programming. Lecture Module 8

Prolog Programming. Lecture Module 8 Prolog Programming Lecture Module 8 Prolog Language Prolog is unique in its ability to infer facts from the given facts and rules. In Prolog, an order of clauses in the program and goals in the body of

More information

INTRODUCTION TO PROLOG

INTRODUCTION TO PROLOG INTRODUCTION TO PROLOG PRINCIPLES OF PROGRAMMING LANGUAGES Norbert Zeh Winter 2018 Dalhousie University 1/44 STRUCTURE OF A PROLOG PROGRAM Where, declaratively, Haskell expresses a computation as a system

More information

Research Report AI A Numerical Equation Solver in Prolog Michael A. Covington Artificial Intelligence Programs The University of Georgia

Research Report AI A Numerical Equation Solver in Prolog Michael A. Covington Artificial Intelligence Programs The University of Georgia Research Report AI 1989 02 A Numerical Equation Solver in Prolog Michael A. Covington Artificial Intelligence Programs The University of Georgia Athens, Georgia 30602 U.S.A. A Numerical Equation Solver

More information

COMP3121/3821/9101/ s1 Assignment 1

COMP3121/3821/9101/ s1 Assignment 1 Sample solutions to assignment 1 1. (a) Describe an O(n log n) algorithm (in the sense of the worst case performance) that, given an array S of n integers and another integer x, determines whether or not

More information

Ex: If you use a program to record sales, you will want to remember data:

Ex: If you use a program to record sales, you will want to remember data: Data Variables Programs need to remember values. Ex: If you use a program to record sales, you will want to remember data: A loaf of bread was sold to Sione Latu on 14/02/19 for T$1.00. Customer Name:

More information

Lists How lists are like strings

Lists How lists are like strings Lists How lists are like strings A Python list is a new type. Lists allow many of the same operations as strings. (See the table in Section 4.6 of the Python Standard Library Reference for operations supported

More information