Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Re: [Caml-list] Rule based language [was: productivity improvement]
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2002-07-25 (13:30)
From: sajuma@u...
Subject: Re: [Caml-list] Rule based language
> I did not misunderstand. I use multiplicative AND. All three
> programs give equivalent output when they all finish for all
> cases I looked at. 

If you only looked cases like your "test.input",
they are not very reliable, because all the
satisfiable goals are in the dataset at the beginning,
and other goals are not reachable at all.
I guess none of the other goals is actually on the right side
of the rules.

OTOH my pigeons example shows the difference:

./rules < pigeons.prog
Goal x: found
Goal y: found
Goal z: found

./rules.opt < pigeons.prog
Goal x: (big plan found by dfs)
Goal y: not found
Goal z: not found

For some reason you missed my attachment or
you have changed your program after sending
it to the list.

Here is a more simple example that shows the difference:

ruleset: 1 is a => b;
dataset: a;
goals: g is a and b;

The meaning of Rule 1 is that if "a" is in the dataset, then
it is removed from the dataset, and "b" is added to the

The meaning of goal "g" is that both "a" and "b" are
in the dataset after some sequence of rule activations.
In this case, additive and multiplicate readings are
different, because it is possible to reach both "a" and "b",
but they cannot coexists.
To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: