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
Q. Show the Process Management for parallel virtual machine? Process Management  int pvm_mytid( void ) Returns the tid of the calling process. Tid values les

Differences between internal and external treatment in boiler

Explain the significance of different fields of an instruction An instruction is a command given to a computer to perform a particular operation on some given data and the form

What is a shell? A shell is an interactive user interface to an operating system services that permits an user to enter commands as character strings or by a graphical user int

Assembly language: An assembly program has a series of instructions--mnemonics that relate to a stream of executable instructions, when translated by an assembler that may be

Why do we need to code a LOOP statement in both the PBO and PAI events for each table in the screen? We require coding a LOOP statement in both PBO and PAI events for every ta

What are the events done by the Kernel after a process is being swapped out from the main memory? When Kernel changes the process out of the primary memory, it performs the fol

Subtraction of 0011.1001 - 0001.1110 using 2's complement method Ans. Firstly 1's complement of 0001.1110 is 1110.0001 and 2's complement is 1110.0010. If a last carry

Define the Information System Growing sophistication in products and markets is driving the organisational requirement for increasing amounts of information. This req

What is NEG instruction Arithmetic sign inversion or two's complement (NEG). NEG instruction two's complements a number which means that arithmetic sign of a signed number cha