Representation in prolog - logic programs, Computer Engineering

Representation in Prolog - Logic Programs : Artificial intelligence

If we impose some more constraints on first order logic, then we get to a representation language known as logic programs. The major limitation we impose is that all the knowledge we want to encode is represented such as Horn clauses. These are implications which containa head anda body, where the predicates in the body are conjoined and they imply the single predicate in the head. Horn clauses are entirely quantified over all the variables appearing in them. So, an instance Horn clause looks like this:

∀x, y, z ( b1(x,y) ∧ b2(x) ∧ ... ∧ bn(x,y,z) -> h(x,y))

We see that the body contain of predicates bi and the head is h(x,y). We may make this look a lot more like the Prolog programs you are used to writing by making a few syntactic changes: firstly, we turn the implication around and write it as :- thus:

∀x, y, z (h(x,y) :- b1(x,y) ∧ b2(x) ... bn(x,y,z))

next, we change the symbols to commas.

∀x, y, z (h(x,y) :- b1(x,y), b2(x), ..., bn(x,y,z))

Lastly, we remove the universal quantification (it is assumed in Prolog), make the variables capital letters (Prolog requires this), and put a complete stop at the end:

h(X,Y) :- b1(X,Y), b2(X), ..., bn(X,Y,Z).

Note that we utilize the notation h/2 to indicate that predicate h has arity 2. Also, we call a set of Horn clauses  aslike a logic program. Representative knowledge with logic programs is less expressive than full first order logic, butstill it can express lots of types of information. In specific, disjunction can be gained by having different Horn clauses with the same head. So, this sentence in first -order logic:

∀x (a(x) ∨ b(x) -> c(x) ∧ d(x))

itcan be written as the following logic program:

c(x) :- a(x).

c(x) :- b(x).

d(x) :- a(x).

d(x) :- b(x).

We also permit ourselves to represent facts as atomic ground predicates. For instance, we can state that:

parent(georgedubya,georgesenior). colour(red). and so on.

Posted Date: 10/2/2012 7:15:25 AM | Location : United States

Related Discussions:- Representation in prolog - logic programs, Assignment Help, Ask Question on Representation in prolog - logic programs, Get Answer, Expert's Help, Representation in prolog - logic programs Discussions

Write discussion on Representation in prolog - logic programs
Your posts are moderated
Related Questions
What is Arithmetic and Logic Unit Arithmetic and Logic Unit: The ALU is the 'core' of any processor. It implements all arithmetic operations (addition, multiplication, subtract

Can you list out some of synthesizable and non-synthesizable constructs? not synthesizable->>>> initial ignored for synthesis. delays  ignored for synthesis. ev

Q. Explain Relative Addressing Scheme? In this addressing technique the register R is the program counter (PC) which contains the address of current instruction being executed.

What is the number of control lines for a 8 - to - 1 multiplexer ? Ans. There are 3 control lines, for an 8 to 1 Multiplexer. The control signals are utilized to steer any one

Compare pre-emptive and non-preemptive scheduling policies. We preempt the currently executing process in preemptive scheduling. In non-preemptive we permit the current process

How would you implement inheritance using VB.NET/C#? When we set out to execute a class using inheritance, we must first start with an existing class from which we will derive

Calculate the number of trunks that can be supported on a time multiplexed space switch given that, 32 channels are multiplexed in each stream, while the control memory access time

Describe the Assume - Assembler directives ASSUME: This directive would be used to map the segment register names with memory addresses.  Syntax is as below: ASSUME SS:

Define Minterm and the Maxterm - Canonical Form? Any Boolean expression perhaps expressed in terms of either minterms or maxterms. The literal is a single variable within a t