Prolog
Prolog
Installation in Linux :
In prolog, We declare some facts. These facts constitute the Knowledge Base of
the system. We can query against the Knowledge Base. We get output as
affirmative if our query is already in the knowledge Base or it is implied by
Knowledge Base, otherwise we get output as negative. So, Knowledge Base can
be considered similar to database, against which we can query. Prolog facts are
expressed in definite pattern. Facts contain entities and their relation. Entities
are written within the parenthesis separated by comma (, ). Their relation is
expressed at the start and outside the parenthesis. Every fact/rule ends with a
dot (.). So, a typical prolog fact goes as follows :
Format : relation(entity1, entity2, ....k'th entity).
Example :
friends(raju, mahesh).
singer(sonu).
odd_number(5).
Explanation :
These facts can be interpreted as :
raju and mahesh are friends.
sonu is a singer.
5 is an odd number.
Key Features :
1. Unification : The basic idea is, can the given terms be made to represent
the same structure.
2. Backtracking : When a task fails, prolog traces backwards and tries to
satisfy previous task.
3. Recursion : Recursion is the basis for any search in program.
Running queries :
Query 2 : ?- odd_number(7).
Output : No.
Advantages :
1. Easy to build database. Doesn’t need a lot of programming effort.
2. Pattern matching is easy. Search is recursion based.
3. It has built in list handling. Makes it easier to play with any algorithm
involving lists.
Disadvantages :
1. LISP (another logic programming language) dominates over prolog with
respect to I/O features.
2. Sometimes input and output is not easy.
Applications :
Prolog is highly used in artificial intelligence(AI). Prolog is also used for pattern
matching over natural language parse trees.