Prolog is a logic programming language. It has important role in artificial intelligence. Unlike many other programming languages, Prolog is intended primarily as a declarative programming language. In prolog, logic is expressed as relations (called as Facts and Rules). Core heart of prolog lies at the logic being applied. Formulation or Computation is carried out by running a query over these relations.
Installation in Linux :
Open a terminal (Ctrl+Alt+T) and type:
sudo apt-get install swi-prolog
Syntax and Basic Fields :
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 :
A typical prolog query can be asked as :
Query 1 : ?- singer(sonu). Output : Yes. Explanation : As our knowledge base contains
the above fact, so output was 'Yes', otherwise
it would have been 'No'. Query 2 : ?- odd_number(7). Output : No. Explanation : As our knowledge base does not
contain the above fact, so output was 'No'.
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.
1. LISP (another logic programming language) dominates over prolog with respect to I/O features.
2. Sometimes input and output is not easy.
Prolog is highly used in artificial intelligence(AI). Prolog is also used for pattern matching over natural language parse trees.
Reference 1: https://en.wikipedia.org/wiki/Prolog
Reference 2: http://www.swi-prolog.org/
- GIT | An Introduction to Github
- MongoDB : An introduction
- Beginning BootStrap (Part-1) | Introduction and Installation
- Introduction to Apache Maven | A build automation tool for Java projects
- Bloom Filters - Introduction and Python Implementation
- Introduction To Machine Learning using Python
- Introduction to Dimensionality Reduction
- Introduction to React Native
- Artificial Intelligence | An Introduction
- Introduction to TensorFlow
- Apache POI | Introduction
- Visual Cryptography | Introduction
- SAP | An Introduction
- Introduction to Convolution Neural Network
- An introduction to Machine Learning
- Introduction of Firewall in Computer Network
- Introduction to Fragments | Android
- Virtual Private Network (VPN) | An Introduction
- Introduction to Retofit 2 in android | Set 1
- Introduction to Web Scraping
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.
Improved By : ManasChhabra2