Search mechanisms in prolog, Computer Engineering

Assignment Help:

Search mechanisms in Prolog:

Here we can needs this simple Prolog program to describe how Prolog searches as: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(tonyblair, tony).
first_name(georgebush, georgedubya).

second_name(tonyblair, blair).
second_name(georgebush, bush).

If there we loaded this in a Prolog implementation into as Sicstus, or queried the database as:

?- prime_minister(P).

In fact then Sicstus would search in the following manner as: it would run through it is database when pending for it came across a Horn clause or fact for that the head was prime_minister and the arity of the predicate was 1. Than there It would first look at the president clause, so after that reject this to see the name of the head doesn't match with the head in the query. moreover, next it would find the clause as:

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

There fits the bill. After than it would look at the predicates in the body of the clause or see if it could satisfy them. In fact in this case, we see that it would try to find a match for first_name(X, maggie). But, it would fail, it means that there no such information can be found in the database. Because it means that the entire clause fails Sicstus would backtrack, thai is., so it would go back just to looking for a clause with the same head as the query. But it would next find this clause such as:

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

So there then it would look at the body again, than try to find a match for first_name(X, tony). According to that it would look through the datatabase and find X=tonyblair a good assignment hence it means the fact first_name(tonyblair, tony) is found towards the end of the database. as well having assigned X=tonyblair, so it would then look for a match to: second_name(tonyblair, blair), and would succeed. Likewise, the answer tonyblair would make the query succeed, for this would be reported back to us.


Related Discussions:- Search mechanisms in prolog

Real life decoding, We have not considered the time element in our decoding...

We have not considered the time element in our decoding. An important time for decoding is the time from the address strobe (AS) to when the data is required in a read.   Time

Find the complement of following functions, Q. Find the complement of follo...

Q. Find the complement of following functions and reduce to minimum literals 1. (A+C+D) (A+C+D') (A+C'+D)(A+D') 2. ABC(ABC' + AB'C + A'BC) 3. AB + AB' + A'C +A'C'

Ms access database through menu driven selections, Would you like to easily...

Would you like to easily automate your MS Access database through menu driven selections? This can be accomplished by producing a form with customized buttons that point to macr

Program that will blink as led, Take the last two digits of your UTCID. Thi...

Take the last two digits of your UTCID. This is your duty cycle in percent. If your duty cycle is less than 10%, add 30 to your number. Create an assembly program that runs on t

Paging supervisor - computer architecture, Paging supervisor: This par...

Paging supervisor: This part of the operating system built and manages the page tables. If the  due to dynamic address translation hardware a page fault occurs exception then

What is circular shift, What is Circular shift The circular shift is al...

What is Circular shift The circular shift is also called as rotate operation. It circulates bits of the register around two ends and there is no loss of information. This is do

When should we stop testing, When should you stop testing? It is quite ...

When should you stop testing? It is quite complex to determine as many modern software applications are so complex and run in like an interdependent environment that complete t

How debugger works internally, Whenever we compile with -g option, it will ...

Whenever we compile with -g option, it will make a symbol table, and according that table for every function and line it will call ptrace.

What is the importance of hierarchy of operators, Bring out the importance ...

Bring out the importance of hierarchy of operators?  The operators  within  C are grouped  hierarchically according to their precedence(i.e., order of evaluation). Operations w

Implementation of BUS, Q. Implementation of BUS Construction of a bus s...

Q. Implementation of BUS Construction of a bus system for four registers employing 4×1 multiplexers is displayed below. Every register has four bits which are numbered 0 throug

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