Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

Like this presentation? Why not share!

- Prolog basics by shivani saluja 3162 views
- Introduction to Prolog by Chamath Sajeewa 2483 views
- Prolog Programming : Basics by Mitul Desai 1820 views
- Artificial intelligence Prolog Lang... by REHMAT ULLAH 2530 views
- Prolog & lisp by Ismail El Gayar 9222 views
- Introduction on Prolog - Programmin... by Vishal Tandel 865 views

3,552 views

3,339 views

3,339 views

Published on

PROLOG: Introduction To Prolog

Published in:
Technology

No Downloads

Total views

3,552

On SlideShare

0

From Embeds

0

Number of Embeds

56

Shares

0

Downloads

0

Comments

0

Likes

4

No embeds

No notes for slide

- 1. Introduction to Prolog<br />Introduction to prolog<br />
- 2. AGENDA<br />Introduction<br />Syntax<br />Data types<br />Rules and facts<br />Evaluation<br />Examples<br />
- 3. Introduction <br />Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />Prolog is declarative, <br />The program logic is expressed in terms of relations, represented as facts and rules and a computation is initiated by running a query over these relations.<br />The language was first conceived by a group around Alain Colmeraurer in Marseille, France.<br />
- 4. Data types<br />Prolog’s single data type is the term.<br />Terms are either atoms, numbers, variables and compound terms.<br />An atom is a general purpose name with no inherit meaning. Ex: x,blue etc.<br />Numbers can be floats or integers.<br />Variables are denoted by a string consisting of letters, numbers and underscore characters, and beginning with an upper case characters and underscore.<br />A compound term is composed of an atom called “functor” and a number of “arguments”, which are again terms.<br />
- 5. Compound terms are ordinarily written as a functor followed by a comma-separated list of argument terms, which is contained in the parentheses. <br />A List is an ordered collection of terms. It is denoted by square brackets with the terms separated by brackets with the terms separated by commas or in the case of an empty list, [] ex: [1,2,3] or [red, green, blue] etc.<br />Strings are a sequence of characters surrounded by quotes.Ex: “ to be, or not to be”<br />
- 6. Rules and Facts<br />Prolog programs describe relations, defined by means of clauses.<br />There are two types of clauses:<br /><ul><li>Facts
- 7. Roles</li></ul>A role is of the form Head :- Body and is read as head is true if body is true.<br />A rule’s body consists of calls to predicates, which are called the rule’s goals.<br />Classes with empty bodies are called facts.<br />Ex: cat(tom). <br />
- 8. Evaluation<br />Execution of a Prolog program is initiated by the user's posting of a single goal, called the query.<br />Logically, the Prolog engine tries to find a resolution refutation of the negated query. <br />The resolution method used by Prolog is called SLD resolution.<br />
- 9. Ex: mother_child(trude, sally). <br /> father_child(tom, sally). <br /> father_child(tom, erica). <br /> father_child(mike, tom). <br /> sibling(X, Y) :- parent_child(Z, X), parent_child(Z, Y). <br />parent_child(X, Y) :- father_child(X, Y). <br />parent_child(X, Y) :- mother_child(X, Y).<br />Results in the following query being evaluated as true:<br />?- sibling(sally, erica).<br /> Yes<br />
- 10. Loops and Recursion<br />Iterative algorithms can be implemented by means of recursive predicates<br />Negation:<br />The built-in Prolog predicate +/1 provides negation as failure, which allows for non-monotonic reasoning.<br />legal(X) :- + illegal(X). <br /><ul><li> Prolog attempts to prove the illegal(X).
- 11. If a proof for that goal can be found, the original goal (i.e., + illegal(X)) fails.
- 12. If no proof can be found, the original goal succeeds.</li></li></ul><li>Examples:<br />An example of a query:<br />?- write('Hello world!'), nl. <br />Hello world! true. ?-<br />An example Quick Sort sorting algorithm, relating a list to its sorted version:<br />partition([], _, [], []). <br />partition([X|Xs], Pivot, Smalls, Bigs) :-<br /> ( X @< Pivot -> <br /> Smalls = [X|Rest], <br /> partition(Xs, Pivot, Rest, Bigs) <br />; Bigs = [X|Rest], <br /> partition(Xs, Pivot, Smalls, Rest) <br />). <br />quicksort([]) --> [].<br /> quicksort([X|Xs]) --> <br />{ partition(Xs, X, Smaller, Bigger) }, <br />quicksort(Smaller), [X], quicksort(Bigger).<br />
- 13. Visit more self help tutorials<br />Pick a tutorial of your choice and browse through it at your own pace.<br />The tutorials section is free, self-guiding and will not involve any additional support.<br />Visit us at www.dataminingtools.net<br />

No public clipboards found for this slide

×
### Save the most important slides with Clipping

Clipping is a handy way to collect and organize the most important slides from a presentation. You can keep your great finds in clipboards organized around topics.

Be the first to comment