Februari 04, 2013

An Overview of Rule-Based System

Rule-Based System has slowly become an important part of Web application. This fact has been realized by many since a tremendous amount of resources start to appear on the Web. As this high volume of data and information availability appear on the Web, confusion among Web users increased. This confusion is attributed to information flood, experienced by users. Not only information flood, a lot of different things and inconsistencies happened on the Web, not to mention too many Web browsers with different capabilities in implementing standards and specifications. Different services (see *anything* as a Service) offered on the Internet. All of those things basically trigger a simple question: how can we use Internet effectively and efficiently without drowning ourselves into those confusion? Can we use something like agent (in the real world) to represent us on the Internet and doing many things automatically without our intervention?

Those questions basically are simple questions but the answers have an immense impact and involve multidisciplinary approach. Surely I can not approach the answers from all disciplines, instead I will concentrate on my background in Web Engineering although I will also include other things as well when needed. We will focus our discussion into automated jobs -- done by software agent, be it in integrated into Web application, or as a stand alone headless software agent -- so that the benefit for human is real.

Currently, to answer those important questions, people and researcher from computer science and information systems make use of techniques and methods from Artificial Intelligence field. This advancement in Web is not necessarily a new phenomenon or new method or other new things. It is merely an application of many Artificial Intelligence methods and techniques to the new platform: Web. These things are different in Artificial Intelligence era where data, knowledge, and facts are integrated internally into the system, isolated from external access. On the Web, things are much more uncontrollable, even with many hard work in the field of standards and specifications (see W3C website for more info about this). Web provides data, information, knowledge, and facts, but they seem to be much more uncontrollable and provide bigger uncertainty level (resources probably exist today, but tomorrow they will disappear without notice, resulting DNS lookup failure or 404 HTTP status or probably 500 Internal Server Error). Therefore, working with Web means that we have to understand that we may not have 100 percent success and we may also hope that we still have some successful efforts.

To benefit its users, Web need to be provide resources. In this sense we may have three categories:

  1. Syntactic Web: this Web application is a kind of Web application which only provide resources for human consumable resources. It does not provide (or if provide, it will provide very minimal) machine understandable data. Users can understand what has been written on the Web browser application, but we may not use automatic agent to process them, provide automatic job processing for human.
  2. Semantic Web: this Web application provide machine understandable data format. It enables software agent to understand the data inside so that we may then use software agent to automate job processing.
  3. Pragmatic Web: this Web application provides not only semantic content, but also integrate context into the application, therefore it enables the software agent to understand context of the resources and then enable them to communicate further towards social commitments. Rule-based system is very important in this context.
Now we should understand the importance of semantic content and rules which are integrated into Web application. Therefore, it is important for Web developers to understand how to integrate rule-based system into the Web application. 

To understand the Rule-based system, until now, there are some important Rule-based System which may be used on the Web. 
  1. Deductive Databases System: this system works by making deductions (conclusion) based on rules and facts which is stored in a databases system. One example of this system is Datalog which is syntactically a subset of Prolog.
  2. Rule engines for triples: triple here is RDF data model (Subject-Predicate-Object). RDF is used to make a statement about resources, something like "Bambang creates an article on Pragmatic Web" which consists of resources "Bambang" and "an article on Pragmatic Web" with "creates" as the predicate. 
  3. Prolog-based System: introduces logic programming, took a restricted form of first-order logic.
  4. Production Rule System: in production rule system, the application will implements a notion set of rules and each rule has a condition and a consequential action.
  5. Reactive Rule System: in reactive rule system, the application has the ability to detect an event and then react to that event automatically.
  6. Knowledge-based System: provide knowledge base so that it enables software agent to make intelligent reasoning.
I will discuss those Rule-based system more detail later. Stay tuned.


Posting Komentar