ExSIDE: Component Based Object Oriented Expert System’s Integrated Development Environment

— This paper describes the design and development of a component-based object oriented Expert System's Integrated Development Environment (ExSIDE). It is integrated with (i) a user-friendly manual and automated knowledge acquisition and management tool (ExSIDE_KAMT);(ii) an independent and customizable runtime module (ExSIDE_RTM); (iii) an object-oriented in-process Component Object Model (COM)-based inference engine (ExSIDE_IE); (iv) an object-oriented out-of-process COM-based inference engine (ExSIDE_IESvr); (v) and a PHP based inference engine (ExSIDE_PHP). ExSIDE_RTM can function independently as an Expert System Shell (ESS) and helps user to develop Expert Systems rapidly. ExSIDE_IE and ExSIDE_IES can be integrated with COM-supporting general purpose and scientific application development tools such as variants of C/C++/C#, BASIC (Visual BASIC ® , REALbasic ® ), Java, MATLAB ® , LabVIEW ® , and Mathematica ® to develop more advanced Expert Systems. Finally, ExSIDE_IE and ExSIDE_PHP can be used with Active Server Pages (ASP) and PHP technologies to generate web based Expert Systems. The unique framework of the ExSIDE enables rapid development of Expert Systems' on PC and web for technical and non-technical users. The overall system was developed successfully, and its usability was demonstrated via five unique Expert Systems case studies discussed in this paper.


I. INTRODUCTION
Since their inception more than 40 years ago, Expert Systems have been developed for identification, classification, and decision support in engineering, medicine, agriculture, business, and education.Liao [1] listed more than 100 expert systems developed for application in various fields between 1995-2004.TABLE 1 presents a list of recently developed Expert Systems.Extract and interpret information from video surveillance images.4 Eldrandaly, K. A.

et. al. (2005) [5]
A COM-based expert system for selecting the suitable map projection in ArcGIS.
5 Ismail, A. et al.(2007) [6] Train managers at all levels of the construction industry using state-ofthe-art tools, techniques and methodologies of project management.
Qiana et.al. (2008) [8] Helps plant operators in monitoring and diagnosing of abnormal situations in refining process of lubricating oil.
(2008) [9] Determine plant diseases and provide methods for treatment and protection.9 H. Heydari Main & M Saadi Mesgari (2009) [10] Assist urban planners in assessing the suitability of different usages for a piece of land.A web-based expert system for nutrition diagnosis according to Nutritional Care Process and Model (NCPM) defined by American Dietetic Association (ADA).

A. Available Expert System Development Tools
Several expert system development tools are available, including Kappa-PC [15]), CLIPS, Jess [16], VisiRule, Drools, and d3web.Among them, Kappa PC and CLIPS are the most frequently used.Most of these tools are expert system shells, which are empty expert systems that the user can customize according to specific needs.Newer expert system shells, such as JavaDON [17] and JessGUI (a graphical user interface or GUI for the Jess shell by [18]), are also included with rich GUI for expert systems development.Some expert systems were developed using symbolic programming languages such as Prolog, e.g., VidMAP [3], and Lisp [19], e.g., TMYCIN [20] and VACE [21].However, learning symbolic programming languages can be challenging to newcomers and users who are not technology savvy.This can hamper the development of expert systems for non-technical field applications.Several attempts were made to bring expert system development process into the general public domain, e.g [22] developed an easy to use web based expert system development tool which they targeted towards non-Artificial Intelligent (AI) experts.JessGUI [18] was an excellent effort in making expert system development easier.However, since it is built on top of Jess, the system development language is primarily restricted to Just Another Vulnerability Announcement (JAVA).
Turban [23] indicated that many expert system development tools have to be supplemented by capabilities provided by other system development tools.Most expert system development tools, especially expert system shells, lack high-quality graphical and numerical computational elements as well as database manipulation facilities and direct hardware interfacing capabilities.Modern scientific application prototyping and development tools, such as MATLAB ® and Mathematica ® , are good at numerical calculations and visualizations.General-purpose programming languages and Integrated Development Environments (IDE), such as Microsoft Visual Studio .Net ® and Real Studio ® , are also used to develop scientific applications.These tools offer flexibility in handling databases, excellent GUI, fast execution speed, and a userfriendly environment for application development.Expert systems can be developed using these tools directly.However, the developer must program the inference engine and develop the knowledge acquisition and management tools.

B. Objectives
The objective of this study is to develop a user-friendly and integrated object-oriented expert system development tool inclusive of an Expert System shell, knowledge acquisition and development tools, and a component-based inference engine that can be used to develop Expert Systems for both desktop and web based applications.The developed system will integrate and unify Expert System development process and enables users to develop Expert Systems using the shell approach and also via direct integration with general-purpose programming IDE and scientific application development tools.The user-friendly User Interface (UI) and knowledge representation will allow technical and non-technical users to develop their own Expert Systems with ease.

C. Theory 1) Main Components of Expert Systems
An expert system consists primarily of an inference engine, a knowledge base, a working memory, and a user interface.The knowledge base consists of a set of explicit rules expressed in the form: if <condition> then <consequence>.The inference engine evaluates the rules, whilst the working memory is used to store current values of parameters, usually obtained via the user interface, to be evaluated against the preset conditions.

2) Decision Tree (DT)
A Decision Tree (DT) is a popular classification algorithm used to derive conclusions.It consists of leaves and nodes.A leaf is the end of a path in the decision tree.Each leaf depicts a possible conclusion.At every node, a decision is made.The outcome of the decision determines the next node or leaf in the path.For classification purposes, the leaves represent the classes that the tree can classify.In a DT, inferences can be made by using the depth first or breadth first approach.A DT can be used as the knowledge base representation and inference mechanism for developing an Expert System [24].

II. MATERIAL & METHOD
The overall system described in this paper is called ExSIDE.TABLE 2 summarizes the implementation strategies for ExSIDE.
TABLE 3 shows ExSIDE's component.Fig. 1 presents the overall system framework.ExSIDE_KAMT can be used to create and manage the Knowledge Base (KB).An Expert System can be easily developed via the shell approach (left path in Fig. 1).The Expert System developed can be run using ExSIDE_RTM as standalone application.Advanced developer can integrate ExSIDE's inference engines (ExSIDE_IE and ExSIDE_IES) with other programming IDE to develop complex standalone teraction between the user and the system is executed in two ways: (i) via question and answer session with an interacting user and (ii) via direct update to the working memory which stores the value for the variables used for comparison at every node of the DT.Mode (i) is designated as Interactive Operation Mode whereas Mode (ii) is designated as Silent Mode Operation Mode.The Interactive Operation Mode can be used when the Expert Systems to be developed is intended to interact lively with a user (e.g.: medical diagnosis application) whereas the Silent Operation Mode is more useful when the inferencing process is to be integrated with data acquired in real-time from data acquisition system (e.g.: online machine diagnosis system.[25], [26]. The KB used in ExSIDE is represented in the form of a DT.It can be constructed manually by a domain expert.The KB can also be generated automatically by ExSIDE.Given a set of training data (X1, X2, X3, .. Xn, Y), where Xn and Y is a vector of m-elements, ExSIDE_KAMT will generate a vector P with q (q<=m) elements representing the identification rules.The vector Xn represents the values for each input variables and vector Y denotes the corresponding identified class.
For shell based Expert System, ExSIDE will generate an independent executable file runnable on Windows based operating system.This executable file is integrated with ExSIDE.RTM.The user interface for the shell based Expert System can be designed using ExSIDE form designer.ExSIDE_RTM also supports scripting, via Microsoft's VBScript technology, to further customize the user interface.For Expert Systems developed using ExSIDE's inference engine, the tool that is used to develop the Expert System (e.g: Microsoft Visual C#) will generate the necessary executable file (or script, if it is used with script based tool e.g.: Matlab) as the Expert System.
ExSIDE can also be used to develop web based Expert Systems using Microsoft Active Server Pages (ASP) and the PHP (Personal Home Page / PHP:Hypertext Preprocessor) technology.ExSIDE's compiler will automatically generate the necessary ASP and PHP codes from the KB.

B. Case Studies: Applications of ExSIDE in Developing Expert Systems and Scientific Application Development Tool
Five case studies of Expert Systems developed using ExSIDE are discussed as in TABLE 4.

C. Case study 1: Power Quality Analysis
The Intelligent Power Quality Assessment Tool (IPQDA) [27] is an Expert System that can be used to evaluate the power quality of a recorded voltage signal [27].
It was developed using Microsoft Visual BASIC 6.0 and an early version of the ExSIDE (SESDT and the SESDT.IE).
Voltage readings were obtained from a data acquisition system.
Fig. 5. IPQDA framework [27] The signal was windowed into three overlapping frames.The data were filtered, and the fundamental frequency was removed.Finally, linear predictive coding (LPC) and the Fast Fourier Transform (FFT)-based coefficients were extracted and fed into the KB for evaluation.Fig. 5 presents the framework for the IPQDA.

D. Case study 1: Intelligent Video Surveillance System (InViSS TM )
ExSIDE and ExSIDE_IES were used to develop an online Expert System-based video event detection, identification, and management system called InViSS TM (Intelligent Video Surveillance System).Fig. 6 shows InViSS TM automatically detecting a person picking up several items.InViSS TM acquires online video images from surveillance cameras, identifies the actors and objects, and recognizes their activities in real-time.ExSIDE_KAMT was used to develop the KB, while ExSIDE_IES evaluates the activities (the person took, moved, swapped, or inspected the objects).InViSS TM KB was automatically generated by ExSIDE_KAMT from 150 annotated video data of actor interaction with object in a monitored environment.Once an anomalous activity is detected, the management module of the InViSS TM takes action.Dengue fever (DF) is a life-threatening disease caused by the mosquito Aedes aegypti, which is common in Asia [28].DF is an acute febrile viral disease frequently presented with headache, bone or joint and muscular pains, and rash as symptoms [29].In a small percentage of dengue infections, a more severe form of the disease, which is the dengue haemorrhagic fever (DHF), occurs.DHF is characterized by acute fever associated with a haemorrhagic diathesis and the tendency to develop shock, which can lead to mortality.Cases of DHF are classified according to WHO specifications into four grades [30].In Grade I, the patient has a fever accompanied by non-specific constitutional symptoms, and the only haemorrhagic manifestation is a positive tourniquet test that results in petechial rash.In Grade II, the patient experiences spontaneous bleeding from any part of the body through the skin.In Grade III, the patient experiences circulatory failure manifested by a rapid and weak pulse, the narrowing of pulse pressure or hypotension, cold and clammy skin, and restlessness.In Grade IV, the patient experiences profound shock with undetectable blood and pulse [31].This case study (Dengue Fever Diagnosis Support System, DFDSS) was implemented using slight variations of the work by [31].They developed a DT that could be used to classify DF and DHF Levels I and II based on clinical symptoms, such as fever, headache, taste aberration, arthralgia, weakness of lower limbs, myalgia, vomiting, retro-orbital pain, abdominal pain, maculopapular rash, petechial rash, bleeding gums, blood-stained saliva, and ecchymosis [31].Fig. 7(left) shows the DT for detecting DF and DHF Levels I and II.DFDSS was designed as shell based Expert System.The system requires continuous user interaction and provides an explanation facility to the user as illustrated in Fig. 7 (right).

IV. CONCLUSION & FUTURE WORK
The desired Expert System IDE was successfully designed, developed, and tested.To summarize, ExSIDE: (i) allows technical and non-technical users to rapidly develop Expert Systems with ease via the graphical KB development and independent runtime module (Case Study 3);

Fig. 3 .Fig. 4 .
Fig. 3. Rules generated from KB manually developed using ExSIDE_KAMT (Left) and Automatic Generation of KB From Measured Training Data using ExSIDE_KAMT

Fig. 7 .
Fig. 7. DF and DF Levels I and II Dengue Fever Diagnostic DT (Left), DF Diagnostic Expert Systems: Introductory page (top right) & diagnostic session (bottom right)

Fig. 8 .
Fig. 8. Web based Dengue fever diagnostic expert systems migrated from case study

TABLE 1 .
RECENTLY DEVELOPED EXPERT SYSTEMS

TABLE 1 .
SUMMARY OF EXSIDE'S IMPLEMENTATION STRATEGIES Expert Systems.Using the same KB, a web application can be generated from ExSIDE in the form of ASP and PHP codes.The Microsoft ® Active Server Pages (ASP) codes uses ExSIDE_IE whereas the Personal Home Page (PHP) codes uses ExSIDE_PHP for inferencing purposes.

TABLE 2 .
MAIN COMPONENTS OF EXSIDE [25]DE was gradually developed since 2003[25]using Microsoft Visual BASIC ® 6.0 programming environment.ExSIDE and its components were developed for execution on Microsoft Windows-based operating systems (e.g., Windows XP 2000, Vista, 7).During the earlier development stage, ExSIDE was known as the Simple Expert Systems Development Tool (SESDT).The system was renamed as ExSIDE to accommodate latest enhancement and upgrades.To date, ExSIDE (and previously SESDT) has been used to develop several Expert Systems

TABLE 3 .
CASE STUDY OF EXPERT SYSTEM