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

Scope of expert system, The scope of the experts system is very limite...

The scope of the experts system is very limited. It cannot work outside the field it is being used. The users knowledge is required to adjust to new situation. To reduce

Illustrate what is universal law of universal gravitation, Q. Illustrate wh...

Q. Illustrate what is the universal law of universal gravitation? Answer:- Declaration that any particle of matter in the universe attracts any other with a force varying

How to set a read or write watch point for a variable, By using Rwatch, Awa...

By using Rwatch, Awatch command in GDB we can set read or write watchpoint for a variable.

Various phases of consumer merchantile model, What are the various phases o...

What are the various phases of consumer merchantile model and also differentiate between prepurchase interaction & post purchase interaction.    There are three phase of consumer

Explain tabulation method for simplifying k maps, Explain Tabulation Method...

Explain Tabulation Method for simplifying k maps? The Tabulation Method (QUINE-McCLUSKEY MINIMIZATION) An expression is represented in the canonical SOP form if not

Conversion of decimal number to binary number, Conversion of Decimal Number...

Conversion of Decimal Number to Binary Number: For converting a decimal number to binary integer part and fractional part are handled separately. Let's describe it with help of

Explain session_start subroutines, Can you give an example of what might be...

Can you give an example of what might be best suited to place in the application_Start and Session_Start subroutines? Application Start - We can place code to initialize var

What is system-software, What is System-software? System-software is co...

What is System-software? System-software is collection of system programs which perform a variety of functions, name are: file editing, IO management, recourse accounting and s

Define deadlock with resource request and allocation graph, Define Deadlock...

Define Deadlock with Resource request and allocation graph (RRAG) Deadlocks can be described through a directed bipartite graph termed as a RRAG that is Resource Request All

Analysis the pc configuration, 1) Identify the software needs of each PC an...

1) Identify the software needs of each PC and whether or not anything needs to change. a. State the changes that you would make (and why) b. If no "change" needs to be made b

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