Ed is a duck

Human: Ed is a duck.
Computer: Ok ed is a duck.
Human: Ducks can fly.
Computer: Ok ducks can fly.
Human: Can Ed fly?
Computer: Yes.
Human: But Ed is dead.
Computer: Ok Ed is dead.
Human: Can Ed Fly?
Computer: Yes.
Human: Dead things cannot fly.
Computer: Ok dead things cannot fly.
Human: Can Ed fly?
Computer: No.

Computers are stupid, they do not have any common sense. You or I would know that ed cannot fly as soon as we were told that ed is dead, but a computer lives in a closed world and as such cannot make any assumptions. This is a good thing because the world would be a very different place if computers did make assumptions. However to make a computer give intelligable answers to questions you need a rules engine.

A Rules engine could consist of a set of processes, i.e a process for each rule that you want to assert to be true. The process could consist of reading some information from a system and then making decisions based on the information. In other words procedural programming.

However, this approach is rather tedious. What you might rather do is describe the set of constraints that must hold true, and have a set of processes generated automatically.

Well that sounds nice, but is it even possible? Well actually yes, and that is what Rules Engines, Constraint based programming 5GL’s are all about.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s