Traditional approaches to building intelligent information systems employ an ontology to define a representational structure for the data and information of interest within the target domain of the system. At runtime, the ontology provides a constrained template for the creation of the individual objects and relationships that together define the state of the system at a given point in time. The ontology also provides a vocabulary for expressing domain knowledge typically in the form of rules (declarative knowledge) or methods (procedural knowledge). The system utilizes the encoded knowledge, often in conjunction user input, to progress the state of the system towards the specific goals indicated by the users. While this approach has been very successful, it has some drawbacks. Regardless of the implementation paradigm the knowledge is essentially buried in the code and therefore inaccessible to most domain experts. The knowledge also tends to be very domain specific and is not extensible at runtime. This paper describes a variation on the traditional approach that employs an explicit knowledge level within the ontology to mitigate the identified drawbacks.


Software Engineering



URL: https://digitalcommons.calpoly.edu/cadrc/75