Search mechanisms in prolog - artificial intelligence, Computer Engineering

Assignment Help:

Search mechanisms in Prolog

We can utilize this simple Prolog program to describe how Prolog searches:

president(X) :- first_name(X, georgedubya), second_name(X, bush).

prime_minister(X) :- first_name(X, maggie), second_name(X, thatcher).

prime_minister(X) :- first_name(X, tony), second_name(X, blair).

first_name(tony,tonyblair).

first_name(georgedubya,georgebush).

second_name(tonyblair, blair).

second_name(georgebush, bush).

If we loaded this into a Prolog implementation likeSicstus, and queried the database:

?- prime_minister(P).

then in the following mannerSicstus would search: it would run through it's database until it came across a Horn clause (or fact) for which the head was prime_minister and the arity of the predicate was 1. It would first search at the president clause and reject this because the name of the head does not match with the head in the query. Next it would find that the clause, through:

prime_minister(X) :- first_name(X, maggie), second_name(X, thatcher).

fits the bill. It would then lookin the body of the clause at the predicates and see if it could satisfy them. In this instance, it would try to find a match for first_nameX, maggie). However, it would fail, because no this type of information may be found in the database. That means that the total clause fails, and Sicstus would backtrack, for example, it would go back to looking for a clause with the same head as the query. Of course, it would next find this clause:

prime_minister(X) :- first_name(X, tony), second_name(X, blair).

Then it would look at the body again, and try to discover a match for first_name(X, tony). It would look through the database and   discover   X=tonyblaira  good  assignment,   because  the   factfirst_name(tonyblair, tony) is got towards the end of the database. Similarly, having assigned X=tonyblair, then it would search for a match to: second_name(tonyblair, blair), and would succeed. So, the answer tonyblair would make the query succeed, and this would be reported back to us.

The essential thing to remember is that Prolog implementations search from the top to the bottom of the database, and in the body try each term of a clause in the order in which they appear. We say that Sicstus  has  verified  the  query  prime_minister(P) by  finding  something  which  satisfied  the declaration of what a prime minister is: Tony Blair. It is also good to remembering that Sicstus assumes negation as failure. This means that if it cannot verify a predicate, then the predicate is false. So the query is:

?- \+ president(tonyblair).

Returns an answer of 'true', because Sicstus cannot prove that Tony Blair is a president.


Related Discussions:- Search mechanisms in prolog - artificial intelligence

Why echo suppressor is detrimental to full duplex operation, Echo suppresso...

Echo suppressor is detrimental to full duplex operation because? This disables one of the two pairs in a four-wire trunk line while a signal is detected upon another pair.

Cgi programming, For this assignment you should construct a comprehensive w...

For this assignment you should construct a comprehensive web site for Dangar Winery of Puddledock Road Armidale, makers of fine table wines and ports since 1983. Chief winemaker, A

Determine the level of state decomposition, Determine the level of state de...

Determine the level of state decomposition The level of state decomposition must be determined by judgement. A too fine grained model is unsuitable, such as, modelling all poss

Define terms setup time and hold time violation, Define setup time and hold...

Define setup time and hold time, what will occur when there is setup time and hold tine violation, how to overcome it? For Synchronous flip-flops, we have particular requiremen

Sap system configuration, SAP system configuration includes It include...

SAP system configuration includes It includes :- a) Dialog tasks b) Update tasks.

Explain readers-writers problem, Explain Readers-writers problem. Read...

Explain Readers-writers problem. Readers-writers problem: Assume that a data object (as a file or record) is to be shared between several concurrent processes. The readers ar

Internet programming, Futoshiki is a game played on an N by N (usually 5 by...

Futoshiki is a game played on an N by N (usually 5 by 5) grid and uses the symbols 1 .. N. The objective of the game is to place each symbol on the grid so that it only occurs once

Name the approaches used for generating the control signals, What are the t...

What are the two approaches used for generating the control signals in proper sequence? Hardwired control Micro programmed control

Performance equation of computer system, Performance Equation of computer s...

Performance Equation of computer system: Following equation is frequently used for expressing a computer's performance ability: The CISC approach tries to minimize the

Prolog programming language - artificial intelligence, Prolog Programming L...

Prolog Programming Language - Artificial intelligence: Most of the programming languages are procedural: the programmer specifies exactly the correct instructions (algorithms)

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd