1 / 26

Getting Started with Visual Prolog

Getting Started with Visual Prolog. LabLecture # 2. Lecturer : Sheriff Nafisa TA : Mubarakah Otbi, Duaa al Ofi , Huda al Hakami. Lecture Contents. Getting Started with Visual Prolog 5.2. PROgramming in LOGic Sentences: Facts and Rules Queries Variables: General Sentences

brier
Download Presentation

Getting Started with Visual Prolog

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. Getting Started with Visual Prolog LabLecture # 2 Lecturer : Sheriff Nafisa TA : Mubarakah Otbi, Duaa al Ofi , Huda al Hakami

  2. Lecture Contents • Getting Started with Visual Prolog 5.2. • PROgramming in LOGic • Sentences: Facts and Rules • Queries • Variables: General Sentences • From Natural Language to Prolog Programs • Clauses (Facts and Rules) • Predicates (Relations) • Variables (General Clauses) • Goals (Queries) • Comments • Matching

  3. Getting Started with Prolog • We will use Visual Prolog 5.2 Personal Edition . • You can install the executable file of the VP from teachers websites or from Labs. • In the following we will show you how to test goals and build a small Windows application in Visual Prolog 5.2 .

  4. Visual Prolog 5.2 Main Window

  5. Opening an Editor Window • To create a new edit window, you can use the menu command File | New. This will bring up a new editor window with the title "NONAME". • To check, that your system is set up properly, you should try to type in the following text in the window: GOAL write("Hello world"),nl. • This is what is called a GOAL in the Prolog terminology. To execute the GOAL, you should activate the menu item Project | Test Goal. If your system is installed properly, your screen will look like the following:

  6. Running and Testing a Program

  7. Error Handling • If you, like all programmers do, happen to make some errors in your program, the Visual Prolog system will display an error window, which contains a list of errors. You can double click on one of these errors to come to the position of the error in the source text.

  8. What is Prolog ? • Prolog is PROgramming in LOGic. • A computer language designed in Europe to support natural language processing. • It was created by Alain Colmerauer and Robert Kowalski around 1972 as an alternative to the American-dominated Lisp programming languages.

  9. What is Prolog (Con.) • Prolog is based on predicate logic. • Prolog includes an inference engine, which is a process for reasoning logically about information. The inference engine includes a pattern matcher, which retrieves stored (known) information by matching answers to questions. • One important feature of Prolog is dealing with alternatives and find all possible solutions rather than only one. Instead of just proceeding from the beginning of the program to the end, Prolog can actually back up and look for more than one way of solving each part of the problem.

  10. Sentences: Facts and Rules A Prolog programmer defines objects and relations, then defines rules about when these relations are true. For example, the sentence Bill likes dogs. shows a relation between the objects Bill and dogs; the relation is likes. Here is a rule that defines when the sentence Bill likes dogs is true: Bill likes dogs if the dogs are nice.

  11. Facts: What Is Known • In Prolog, a relation between objects is called a predicate. • A fact consists of the relation name followed by the object or objects (enclosed in parentheses), • The fact ends with a period (.).

  12. Facts: What Is Known • Facts can also express properties of objects as well as relations.

  13. Rules: What You Can Infer from Given Facts • Rules enable you to infer facts from other facts. • Another way to say this is that a rule, as conclusions is a conclusion that is known to be true if one or more other conclusions or facts are found to be true. • Here are some rules concerning a "likes" relation: Cindy likes everything that Bill likes. Caitlin likes everything that is green. • Given these rules, you can infer from the previous facts some of the things that Cindy and Caitlin like: Cindy likes Cindy. Caitlin likes Kermit.

  14. Rules: What You Can Infer from Given Facts (Con.) • To encode these same rules into Prolog, you only need to change the syntax a little, like this: likes(cindy, Something):- likes(bill, Something). likes(caitlin, Something):- green(Something). • The :- symbol is simply pronounced "if", and serves to separate the two parts of a rule: the head and the body. • It is meaning "To prove that Cindy likes something, prove that Bill likes that same thing" and "To prove that Caitlin likes something, prove that it is green."

  15. Queries • Once we give Prolog a set of facts, we can proceed to ask questions concerning these facts; this is known as querying the Prolog system. • It is important to notice that the second object--What--begins with a capital letter, while the first object--bill—does not. This is because bill is a fixed constant object—a constants known value--but What is a variable. • Variables always begin with an upper-case letter or an underscore.

  16. Putting Facts, Rules, and Queries Together • Suppose you have the following facts and rules: A fast car is fun. A big car is nice. A little car is practical. Bill likes a car if the car is fun. Diane is a vegetarian and eats only what her doctor tells her to eat. • Write the Prolog Syntax for previous example?

  17. From Natural Language to Prolog Programs • In the first section of this lecture we talked about facts and rules, relations, general sentences, and queries. Those words are all part of a discussion of logic and natural language. Now we're going to discuss the same ideas, but we're going to use more Prolog-ish words, like clauses, predicates, variables, and goals.

  18. Clauses (Facts and Rules) • Basically, there are only two types of phrases that make up the Prolog language; a phrase can be either a fact or a rule. • These phrases are known in Prolog as clauses. • The heart of a Prolog program is made up of clauses.

  19. Predicates (Relations) • The symbolic name of a relation is called the predicate name. The objects that it relates are called its arguments. Ex: likes(bill,cindy) likes is predicate. bill and cindy are the arguments. • Here are some examples of Prolog predicates with zero or more arguments: pred(integer, symbol) person(last, first, gender) run insert_mode birthday(firstName, lastName, date)

  20. Variables (General Clauses) • In a simple query, you can use variables to ask Prolog to find who likes tennis. For example: likes(X, tennis). • Variables in Prolog get their values by being matched to constants in facts or rules. • Until it gets a value, a variable is said to be free; when it gets a value, it becomes bound.

  21. Variables (General Clauses) (Con.) • Anonymous variables enable you to unclutter your programs. If you only need certain information from a query, you can use anonymous variables to ignore the values you don't need. In Prolog, the anonymous variable is represented by a lone underscore ("_"). • Anonymous variables can also be used in facts. • The anonymous variable matches anything.

  22. Goals (Queries) • Up to now, we've been mixing the word query when talking about the questions you ask Prolog, with the more common name goal, which we'll use from now on. • Goals can be simple, such as: likes(ellen, swimming). • or they can be more complex (compound goal), and each part of the compound goal is called a subgoal, such as : likes(Person, reading), likes(Person, swimming).

  23. Compound Goals: Conjunctions and Disjunctions • As you have seen, you can use a compound goal to find a solution where both subgoal A and subgoal B are true (a conjunction), by separating the subgoals with a comma (,) • You can also find a solution where subgoal A or subgoal B is true (a disjunction), by separating the subgoals with a semicolon (;)

  24. Comments • It's good programming style to include comments in your program. • makes the program easy for you and others to understand. • Multiple-line comments must begin with the characters /* (slash, asterisk) and end with the characters */ (asterisk, slash). Ex: /* This is an example of a comment */ • To set off single-line comments, you can use these same characters, or you can begin the comment with a percent sign (%). Ex : % This is also a comment

  25. Matching • identical structures match each other parent(joe,tammy) matches parent(joe,tammy) • a match usually involves one or more free variables parent(joe,X) matches parent(joe,tammy) • Two free variables can even match each other. For example, parent(joe,X) matches parent(joe,Y)

  26. Homework • Download the Homework #1 from the website and solve it ,, deliver it in the next week .. Good Luck ,,

More Related