Cognitum | Ontology-Aided Software Engineering

Ontology-Aided Software Engineering (OASE) is a semiotic framework for software development. It extends the existing methodologies with an ability to express the supporting knowledge in (controlled) natural language called OASE-English.

Purposes of OASE

  1. Describing universals: practices and patterns that are the building blocks and the composition mechanisms for building methods out of these elements. OASE permits for description of practices and patterns by allowing for the description of both of them in the OASE-English. Here, an object-oriented program forms a world description (A-Box) that is built on the top of a specific terminology (T-Box). The terminology is a formal representation of object-oriented design ontology (that consists of general rules that regulate the world of object-oriented programming e.g., polymorphism and encapsulation). The requirements (e.g., use of design patterns, architectural limitations, use of generic structures, etc.) can then be considered as software-design integrity-constraints in a form of OASE pseudo-modal expressions.
  2. Simulating software systems. OASE allows for the simulation of software systems in terms of their static structure. OASE-English is a human-machine interface language between the software system and developers; therefore the system can specify the errors that occur in the middle of programmers’ work by using OASE-English to interact with the engineers who can fix the problems found by the system itself. This task is supported by OASE-Annotations and OASE-Assertions which have a form of formal comments and contracts (respectively) written in OASE-English within the source code itself.
  3. Closing the communication gap between stakeholders involved in software development process. Programmers have a feeling that OASE-Validator is leading them by the hand in their daily programmers job. Moreover, OASE-Toolkit is useful as a reusable software library. The properties that are useful for stakeholders involved in a software development process (e.g.: a human-machine interface in controlled natural language, automatic explanations, or decidability of a knowledge base) are also valuable in other fields of interests.
  4.  Method elements are useful outside the area of their origin. OASE is applicable outside the software development process. The application of the Clinical Practice Guideline for lung cancer staging. OASE-Toolkit proves its potential. OASE-Toolkit can be used separately, within a wide range of applications, as ordinal yet powerful software components.
  5.  Allowing for addition or modification of practices, patterns and possibly composition techniques. OASE-English allows for building extensible domain descriptions – domain-specific ontologies. This is due to the fact that OASE-English is a knowledge expression language with the expressive power of SROIQ(D) description logic (a semantic of OWL) .


  • P. Kapłański, Ontology-Aided Software Engineering, PhD Dissertation, 2012
    This thesis is located between the fields of research on Artificial Intelligence (AI), Knowledge Representation and Reasoning (KRR), Computer-Aided Software Engineering (CASE) and Model Driven Engineering (MDE).
    Software industry is knowledge oriented industry. Usually, the knowledge has form of source code, comments, as well as supporting specifications written in natural language. Unfortunately, written specifications prevent from automatic processing of knowledge therein. It is possible to process the knowledge with formal methods but, mainly due to the lack in education about supporting tools, it is very hard to implement in the organization.
    The aim of this thesis is to prove that: 1) It is possible to define a Common, Object Oriented Language by using the Controlled Natural Language as a verbalization of Description Logic. 2) Introduced language is understandable for people and can be automatically processed by machines. It can also be used in many areas of software development where natural language is currently used. 3) The language can be used to aid the software production process with ontology engineering.
    We consider here controlled subject of natural language called OASE-English (developped by the author). OASE-English is a verbalization of Description Logic, that is intended to deal with the software design. It is a formal language that can express knowledge about the computer program in a way that is accessible to a wide group of users (developers, testers, designers, end-users).
    Description logic (the W3C OWL2 formalism) allows for the expression of certain important, static structures of the computer program (inference about the characteristics of these structures is computable and complete).
    We show that static structures are common in software engineering (e.g. UML class diagrams, the structure of design patterns, certain requirements). Moreover we present how one can write contracts, whose consistency is being investigated in the runtime.
    Besides the support for software development, we have discovered that it is possible to use OASE-Tools in terms of components of practical software solutions, that not originate from software engineering itself.
    Keywords:PhD Dissertation, software engineering, description logic, ontology, controlled natural language, methodology, artificial intelligence, knowledge representation and reasoning, model driven engineering, CNL, AI, KRR, MDE, MDA, CASE, OASE.

More information & downloads

  You will find more information here: