From Wikipedia, citations omitted:

In artificial intelligence, an expert system is a computer system that emulates the decision-making ability of a human expert. Expert systems are designed to solve complex problems by reasoning about knowledge, represented mainly as if–then rules rather than through conventional procedural code. The first expert systems were created in the 1970s and then proliferated in the 1980s. Expert systems were among the first truly successful forms of artificial intelligence (AI) software.

An expert system is divided into two subsystems: the inference engine and the knowledge base. The knowledge base represents facts and rules. The inference engine applies the rules to the known facts to deduce new facts. Inference engines can also include explanation and debugging abilities.

CRUD webapps (websites that allows users to Create new entries in a database, Read existing entries in a database, Update entries within the database, and Delete entries from a database) are very common on the Internet. It is a vast field, encompassing both small-scale blogs to large websites such as StackExchange. The biggest commonality with all these CRUD apps is that they have a knowledge base that users can easily add and edit.

CRUD webapps, however, use the knowledge base in many, myriad and complex ways. As I am typing this question on StackOverflow, I see two lists of questions - Questions that may already have your answer and Similar Questions. These questions are obviously inspired by the content that I am typing in (title and question), and are pulling from previous questions that were posted on StackExchange. On the site itself, I can filter by questions based on tags, while finding new questions using StackExchange's own full-text search engine. StackExchange is a large company, but even small blogs also provide content recommendations, filtration, and full-text searching. You can imagine even more examples of hard-coded logic within a CRUD webapp that can be used to automate the extraction of valuable information from a knowledge base.

If we have a knowledge base that users can change, and we have an inference engine that is able to use the knowledge base to generate interesting results...is that enough to classify a system as being an "expert system"? Or is there a fundamental difference between the expert systems and the CRUD webapps?

(This question could be very useful since if CRUD webapps are acting like "expert systems", then studying the best practices within "expert systems" can help improve user experience.)


The key feature of an expert system is that the knowledge base is structured to be traversed by the inference engine. Web sites like Stack Exchange don't really use an inference engine; they do full-text searches on minimally-structured data. A real inference engine would be able to answer novel queries by putting together answers to existing questions; Stack Exchange sites can't even tell if a question is duplicate without human confirmation.


No, I don't think there's any reason to say that - in general - CRUD apps "are" expert systems. A given CRUD app could incorporate an expert system, but by and large CRUD apps are considered among the "dumbest" of applications exactly because they don't feature much intelligence... you can just Create, Read, Update and Delete entities. From what I've seen, the closest you get to seeing anything like an expert system in a typical enterprise CRUD app is some validation / business rules logic built using something like Drools


CRUD applications today can't be considered expert systems.

However,even Even the called so Expert Systems which are currently developed,are implemented using normal programming statements, but what is important is the architecture that is built. Current Expert Systems use only if-then types of rules that produce data results that can be used as inputs to other rules. and an engine to step through them. This is quite limited, and it is greatly fragile.

Just like what @antlersoft elaborates in his answer.

So what I do consider as Expert Systems,are ones which can reason about variables (logical and numerical ones) and can use limited formation of hypotheses and attempt proof of them. But unfortunately, even what you might analyse and describe as Expert System is not really able to form models by itself, so it can easily run up against knowledge boundaries beyond which it cannot go.

Therefore,CRUD web applications today,are not modern version of the Expert Systems


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.