Question

What is the difference between a rules engine and an expert system?

Example1: Let's say that I have a program that determines the expiration date of a new driver's license. It takes inputs like visa expiration date, passport number, birthday, etc. It determines the expiration date of the driver's license from this input. It can even give an error if the input did not have enough valid identifications to allow a new driver's license.

Example2: Let's say I am making an online version of the game Monopoly. I want the ability to change the rules of the game (say $400 for passing go or no one can buy properties until they land on the same property twice, etc). I have a module in the code to handle these rules.

Are these both rules engines or are they expert systems? They both seem so similar. Is it just a synonym?

Was it helpful?

Solution

The "inference engine" (what I believe you are calling the "rules engine") is part of an expert system. The other part is the "knowledge base" (your list of rules, the stuff it knows it true, that stuff it has so far figured out, etc.)

The inference engine is the part that actually uses your rules and the known facts to infer things.

In your two examples above, you are talking about expert systems. Sort of.

I'll give you a third example. GNU make is an inference engine. If given a set of build rules and dated files, it can figure out what needs to be rebuilt, but it has to be told all that stuff. Your build system that includes the makefiles, associated scripts, and make itself is an expert system.

I found a detailed explanation online here, but it is perhaps a bit too detailed for a neophyte.

OTHER TIPS

An "expert system" typically means a particular application that embodies a set of expert knowledge about a given problem domain. An expert system may or may not use a rule engine as part of its implementation.

I think the difference is semantic and just a little bit more.

An "expert system" implies that the system includes coding for picking the expert's brains, i.e. for transforming an expert's domain knowledge into the program's internal rule set.

Take that away, and I'd say what's left is a "rule engine". Though it's also possible to build an expert system that's not based on a rule engine.

This is probably old. But the terminology rules engine, is sometimes a name that is given to semantic reasoners or reasoning engines. They can be seen as an extension or a generalization of inference engines.

And as answered by T.E.D, the inference engine is only a part of an expert system, the other being the knowledge base. The knowledge base is the axioms or truths of the entire system, and the inference engine is what will take these axioms to derive new "truths".

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top