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 do you mean by directives, Q What do you mean by Directives? Assem...

Q What do you mean by Directives? Assembly languages support numerous statements. This allows you to control the way in which a source program assembles and list. These stateme

What are the advantages of code optimization, What are the advantages of co...

What are the advantages of code optimization? Code optimization tends at enhancing the execution efficiency of a program. It is achieved in two manners. Redundancies in a progr

Describe the modes of wave propagation, Question : a) Describe the foll...

Question : a) Describe the following modes of wave propagation: - Line of sight - Ground waves - Skywaves b) Why can waves with a very low frequency be used for submar

What is enhanced ide, Q. What is Enhanced IDE? The principle behind EID...

Q. What is Enhanced IDE? The principle behind EIDE interface is the same as in IDE interface however this drive has capacities varying from 10.2GB to 20.5GB. The rotation speed

Voice identifier - biometric computer security systems, Voice Identifier - ...

Voice Identifier - Biometric Computer Security Systems Besides fingerprint, another popular security technology is voice identifier. According to VSS organization (2007), voic

Propositional logic - artificial intelligence, Propositional Logic - artifi...

Propositional Logic - artificial intelligence: This is a limited logic, which permit  us to write sentences about propositions - statements about the world - which can either b

How are problems of clock skew minimized, How are problems of clock skew mi...

How are problems of clock skew minimized? Clock skew, when done right, can also benefit a circuit. This can be intentionally introduced to reduce the clock period, at that the

Define terminal symbols, Define Terminal symbols? Terminal symbols: T...

Define Terminal symbols? Terminal symbols: These are literal strings forming the input of a formal grammar and can't be broken down in slighter units without losing literal m

What is macro-expansion, What is macro-expansion? Macro calls lead to m...

What is macro-expansion? Macro calls lead to macro expansion. Throughout macro expansion, the macro call statement is replaced through a sequence of assembly statements.

Types of security features employed in client server network, What are the ...

What are the types of security features employed in client server kinds of network? Security features employed in Client-Server types of network are as illustrated below: a)

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