Hii Some conditions didnt fully work, some of them just explore one side of the family tree I add some conditions to make it work all way round on the family tree The only thing I cant make work yet (round way) is the cousin part /.Rules./ father(X,Y):- parent(X,Z,Y). Mother(X,Y):- parent(Z,X,Y). Son(X,Y,Z):- male(X),father(Y,X),mother(Z,X). Prolog programs. â explain how Prolog evaluates queries. To represent the above family tree in Prolog we use facts.
![]() Permalink Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign up
Find file Copy path
Anniepoochanged order of males to make it easier to step thru with students57e087aFeb 3, 2014
1 contributor
![]()
Introduction:Prolog is a 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-prologSyntax 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).oddnumber(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 containsthe above fact, so output was 'Yes', otherwiseit would have been 'No'.Query 2:?- oddnumber(7).Output: No.Explanation: As our knowledge base does notcontain the above fact, so output was '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.Reference 1:Reference 2.
![]() Comments are closed.
|
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |