Search mechanisms in prolog, Computer Engineering

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.

Posted Date: 1/10/2013 5:56:32 AM | Location : United States

Related Discussions:- Search mechanisms in prolog, Assignment Help, Ask Question on Search mechanisms in prolog, Get Answer, Expert's Help, Search mechanisms in prolog Discussions

Write discussion on Search mechanisms in prolog
Your posts are moderated
Related Questions
Determine about the Web Based Tools HTML, XML, CGI and other open standards As is well known, the Web as well as Intranets speak and understand only one language i.e., th

Q. Show Division and multiplication operation? These operations can be represented as x + y = (N x   × 2 Ex-Ey + N y ) × 2 Ey and x-y = (N x × 2 Ex-Ey -N y ) × 2 Ey

Instruction Issue degree : The major concept in superscalar processing is how many instructions we can issue per cycle. If we issue k number of instructions per cycle in a supersca

Take a look at the code and try to understand the logic, particularly, the way scrambled words are disambiguated, i.e.., whether they are matched successfully against a correct wor

What are the Cycle based simulators Cycle based simulators are more like a high speed electric carving knife in comparison since they focus on a subset of the biggest problem:

What is the maximum size of the memory that can be used in a 16-bit computer and 32 bit computer? The maximum size of the memory that can be used in a 16-bit computer is 2 memo

Distinguish among the functions islower() and tolower().   islower( ) and tolower( ): islower(c) is a character testing function described  in ctype.h header file. This

Highlight the advantages of assembly language. The benefits of assembly language program would be Reduced errors Faster translation times Changes could be made fas

What are the Types of Assemblies? One of the drawback of using Visual Studio.NET and the .NET framework to develop applications has been the lack of cross-platform support. As

What are the different scheduling policies in Linux The Linux scheduler has three different scheduling policies: one for 'normal'Processes, and two for 'real time' processes