In this weblog series I'll show how to create an expert system for automated error analysis using semantic technology. The aim is store information about an error situation in an wiki. An expert system reads information about an error from an SAP system and classify the error condition. The result is a number of wiki pages (in the best case there is only one) that contain a more detailed description of the error situation - and hopefully a guideline what to do. So a wiki is a knowledge database of an expert system as well knowledge management tool for administrators that can be used in collaborative way.
So what are the functional requirements of an expert system?
- An expert system must have the possibility to "look inside an SAP system". This is simple because it is simple to expose protocols using REST web services.
- An expert system has to be able to extract the error information from a wiki.
- And last but not least it has to be able to classify the protocol using the knowledge base from the wiki.
The use case
SAP systems possess very powerful monitoring capabilities. The Solution Manager is a central hub for error diagnosis in a system landscape. The systems can communicate using different protocols.
Within an SAP system information about error situation can be found on different places: dumps can be found in transaction st22 and error messages can be found in the business application log (in short BAL) using transaction slg1:
Here we have a lot of red error messages which indicates a problem. Each message can be identified using a message class and message number:
As seen above in a protocol a message is contained in a protocol that is associated to an BAL object resp. subobject.
An error protocol can be quite long because of repetitions but usually a relatively small number of error messages can be significant for an error. Here these are the following to error numbers:
|BAL Object||BAL Subobject||Message Class||Message Number||Type|
Here we can use any mediawiki or an add on. Using categorization we can regulate the knowledge database. Here I am using a semantic wiki because of its superior classification techniques.
The expert system
The expert system I'll introduce within this blog is a Groovy application that reads a BAL protocol from an SAP system and extracts the knowledge database from a wiki, i.e. a mediawiki. From these data it constructs an ontology. This ontology contains a set of classes and each class corresponds to an error situation. Using a reasoner like Pellet we classify the error messages.
In the next part I will explain how to design a knowledge base using OWL DL. Later I discuss how to extract data form a wiki, build the ontology and how to do reasoning.
The vision: automated monitoring of an IT landscape
Of course this is only a prototype but you don't need much fantasy to imagine how a product would look like: an expert system constantly reads data from SAP and non-SAP systems using various protocols (think of SNMP for example), classifies those messages and helps an administrator to do his job.
Outline of this blog series
In the next part I present an introduction in ontologies. Then I dicuss data extraction from a wiki and how systems can expose data about their status. In the last part of this series I show how to perform reasoning and put everything together into a prototype.