There are three basic constructs in prolog programming.
a.
Facts
b.
Rules
c.
Queries
Facts
We need to specify the facts about the objects and their relationships.
Facts always starts with lowercase letter and ends with a dot. Fact name can
consist of any letters, numbers and underscore.
For example, below
all are facts
Sun rises in the east
Elephant is bigger than ant
A female can give birth to a baby
Syntax to define
facts
factName(<argument1>,<argument2>,....,<argumentN>
).
Example
bigger(elephant, ant).
a.
In the above snippet, elephant, ant are
objects and bigger is the relationgship between the objects. Relationship is
written first followed by objects separated by comma.
b.
As per the convention, all the relationships
and objects must start with lowercase letter.
c.
The ‘.’ Operator is used to the end the fact,
you can assume it as statement terminator.
A fact can take zero or more arguments.
valuable(diamond): Diamond is valuable
animals(lion, elephant, ant, dog): lion, elephant, ant
and dog are animals.
borrow(krishna, 1000, chamu): krishna borrows 1000 from
chamu.
mother(rama, krishna): rama is mother of Krishna
Whenever you load the facts, these are loaded into Prolog
database, you can query these facts, prolog return true, if the fact exists in
database, else error is thrown.
facts.pl
sun_rises_in_the_east. it_is_raining_today. valuable(diamond). animals(lion, elephant, ant, dog). borrow(krishna, 1000, chamu).
1 ?- consult(facts). true. 2 ?- sun_rises_in_the_east. true. 3 ?- valuable(diamond). true. 4 ?- it_is_not_raining_today. ERROR: Undefined procedure: it_is_not_raining_today/0 (DWIM could not correct goal) 5 ?- valuable(1, 2). ERROR: Undefined procedure: valuable/2 ERROR: However, there are definitions for: ERROR: valuable/1 false.
‘consult’ statement is used to load the prolog facts and
rules to the database.
What are arguments
Objects that are placed in the brackets of each fact are
called arguments.
For example, diamond, lion, elephant, dog, Krishna, 1000,
chamu all are the arguments.
What is predicate?
Name that comes before the brackets of the fact is called
predicate.
For example, valuable, animals, borrow and mother are
predicates.
What is a database?
Collection of facts is called a database.
Rules
It defines the relationship between objects.
For example, a rule can be something like below.
a.
Person ‘x’ is taller than person ‘y’, if
person x’s height is more than person y’s height.
b.
A person is eligible to vote, if he is more
than 18 years old
c.
Two persons are brothers, if they are male
and their parents are same
d.
I will go for a trek, if there is no rain
Queries
Once we define the facts and rules, we can ask prolog
system about something.
For example, we can ask prolog system ‘Is Donkey bigger
than Elephant?’, Prolog return either true or false depending on what facts and
rules we fed to prolog system.
Technically, we should put special symbol ? to query the
prolog system
Syntax
?-askSomething.
Example
?-bigger(elephant, ant).
Above statement asks prolog, is elephant bigger than ant?
Prolog gives you the answer yes or no, depending on the facts it had.
No comments:
Post a Comment