1 / 27

Lecturer: Dr. Abeer Mahmoud

Logic Programming in Prolog. Lecturer: Dr. Abeer Mahmoud. acknowledgement. Patrick Blackburn, Johan Bos & Kristina Striegnitz (lecture notes on logic programming in prolog). Lecture 3. Quiz. Define the predicate parent_of Sibling (person have the same parent) Grandparent_of

Download Presentation

Lecturer: Dr. Abeer Mahmoud

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Logic Programming in Prolog Lecturer: Dr. Abeer Mahmoud

  2. acknowledgement Patrick Blackburn, Johan Bos & Kristina Striegnitz (lecture notes on logic programming in prolog)

  3. Lecture 3

  4. Quiz Define the predicate parent_of Sibling (person have the same parent) Grandparent_of Greatgrandparent_of

  5. exercise • Convert the following paragraph into fact or rule: • 1. a person may be a smart buyer for something if the person is a smart and he likes the thing and the thing is valuable and the thing has a discount. • 2. Bob likes all kind of game. Football is a game. Anything anyone plays and not killed by is a game.

  6. smart(ahmed). smart(nada). smart(noha). smart(islam). discount(books). discount(perfumes). a person may be a smart buyer for something if the person is a smart and he likes the thing and the thing is valuable and the thing has a discount. Smart-buyer(X,Y):-smart(X),likes(X,Y),valuable(Y), discount(Y). likes(ahmed, leather-jackets). likes(ahmed, sun-glasses). likes(soha,sun-glasses). likes(islam,books). likes(nada, perfume). valuable(gold). valuable(books). valuable(leather-jackets).

  7. plays(player1,football). plays(player2,tennis). plays(player3,handball). plays(player4,car-racing). Bob likes all kind of game. Football is a game. Anything anyone plays and not killed by is a game. not-killed(football). not-killed(tennis). not-killed(handball). likes(‘Bob’, X):-game(X). game(Anything):- plays(_,Anything),not-killed(Anything)

  8. Prolog Syntax • What exactly are facts, rules and queries built out of? Terms Terms Simple Terms Simple Terms Complex Terms Complex Terms Constants Constants Variables Variables Atoms Atoms Numbers Numbers

  9. Atoms • A sequence of characters of upper-case letters, lower-case letters, digits, or underscore, starting with a lowercase letter • Examples: butch, big_kahuna_burger, playGuitar • An arbitrary sequence of characters enclosed in single quotes • Examples: 'Vincent', 'Five dollar shake', '@$%' • A sequence of special characters • Examples: : , ; . :-

  10. Numbers • Integers: 12, -34, 22342 • Floats: 34573.3234

  11. Variables • If we want to get more interest information about fact or rule, we can use variable to get more than Yes/No answer. • A sequence of characters of upper-case letters, lower-case letters, digits, or underscore, starting with either an uppercase letter or an underscore • Examples: X, Y, Variable, Vincent, _tag

  12. Variables • variable name must begin with capital letter. • *using variable we can get all possible answer about a particular fact or rule.

  13. Variables Always begin with a capital letter ?-likes (john,X). ?- likes (john, Something). But not ?- likes (john,something)

  14. Example of usage of variable Facts: likes(john,flowers). likes(john,mary). likes(paul,mary). Question: ?- likes(john,X) Answer: X=flowers and wait ; mary ; no

  15. Complex Terms • Atoms, numbers and variables are building blocks for complex terms • Complex terms are built out of a functor directly followed by a sequence of arguments • Arguments are put in round brackets, separated by commas

  16. Complex terms are of the form: functor (argument, ..., argument). • Functors have to be atoms. • Arguments can be any kind of Prolog term, e.g., complex terms. date April 13 1988 date(“Aprile”,13,1988)

  17. Examples of complex terms • Examples we have seen before: • playsAirGuitar(jody) • loves(vincent, mia) • jealous(marsellus, W)

  18. Arity • The number of arguments a complex term has is called its arity • Examples:woman(mia) is a term with arity 1loves(vincent,mia) has arity 2father(father(butch)) arity 1

  19. Arity is important • In Prolog you can define two predicates with the same functor but with different arity • Prolog would treat this as two different predicates • In Prolog documentation arity of a predicate is usually indicated with the suffix "/" followed by a number to indicate the arity

  20. Example of Arity • This knowledge base defines • happy/1 • listens2music/1 • playsAirGuitar/1 happy(yolanda). listens2music(mia). listens2music(yolanda):- happy(yolanda). playsAirGuitar(mia):- listens2music(mia). playsAirGuitar(yolanda):- listens2music(yolanda).

  21. summary data type Prolog supports the following data type to define program entries. • Integer: to define numerical value like 1, 20, 0,-3,-50, ect. • Real: to define the decimal value like 2.4, 3.0, 5,-2.67, ect. • Char: to define single character, the character can be of type small letter or capital letter or even of type integer under one condition it must be surrounded by single quota. For example, ‘a’,’C’,’123’. • string : to define a sequence of character like “good” i.e define word or statement entries the string must be surrounded by double quota for example “computer”, “134”, “a”. The string can be of any length and type. • Symbol: anther type of data type to define single character or sequence of character but it must begin with small letter and don’t surround with single quota or double quota.

  22. summary program structure Prolog program structure consists of five segments, not all of them must appear in each program. The following segment must be included in each program predicates, clauses, and goal. • Domains: define global parameter used in the program. I= integer C= char S = string R = real • Data base: define internal data base generated by the program Database Greater (integer) • Predicates: define rule and fact used in the program. Mark(symbol,integer).

  23. summary program structure Prolog program structure consists of five segments, not all of them must appear in each program. The following segment must be included in each program predicates, clauses, and goal. 4. Clauses: define the body of the program.. For the above predicates the clauses portion may contain Mark (a, 20). 5.Goal: can be internal or external, internal goal written after clauses portion , external goal supported by the prolog compiler if the program syntax is correct

  24. summary mathematical and logical operation

  25. summary Other mathematical function

  26. summary Read and write function

  27. Thank You

More Related