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

What is mini computer, Q. What is Mini computer? The term minicomputer ...

Q. What is Mini computer? The term minicomputer introduced in 1960's when it was realized that numerous computing tasks don't need an expensive modern mainframe computers howev

Difference between commit-work and rollback-work tasks, What is the differe...

What is the difference between Commit-work and Rollback-Work tasks? Commit-Work statement "performs" many functions relevant to synchronized execution of tasks.  Rollback-work

Explain interactive reporting, What is interactive reporting? A classic...

What is interactive reporting? A classical non-interactive report having of one program that makes a single list.  Instead of one extensive and detailed list, with interactive

DBMS, Difference between Paperbase and computer base system?

Difference between Paperbase and computer base system?

Define the state and instance of properties of object, Define the state and...

Define the state and instance of properties of object A state encompasses all properties of object along with values of each of these properties. An instance is a concr

What do you meant by hosts, Q. What do you meant by Hosts? Hosts are in...

Q. What do you meant by Hosts? Hosts are in general, individual machines at a specific location. Resources of a host machine is generally shared and can be utilized by any user

Explain multihomed host, Write short notes on the Multihomed host. A ho...

Write short notes on the Multihomed host. A host computer that connects to multiple networks is termed as multi-homed host. Multihoming is occasionally used to raise reliabilit

How e-commerce works for the shop owner, E-commerce is working in tandem wi...

E-commerce is working in tandem with the real shop and if all the products are online running the e-commerce shop is becoming simpler. Owner log in on the special admin side of the

Can math operations be performed on a void pointer, Can math operations be ...

Can math operations be performed on a void pointer? No. Pointer addition and subtraction are based on advancing the pointer by a number of elements. By explanation, if you have

How much volts a CMOS logic device has approximately, The logic 0 level of ...

The logic 0 level of a CMOS logic device is approximately ? Ans. The low level is 0 volts approx in CMOS logic device.

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