An Ontology for Software

The domain of software is a primary candidate for being formalized in an ontology. On the one hand, the domain is sufficiently complex with different paradigms (e.g., object orientation) and different aspects (e.g., security, legal information, interface descriptions, etc.). On the other hand, the domain is sufficiently stable, i.e., new paradigms and aspects occur rather seldom. Capturing this stable core in a reference ontology for software can be fruitful in order to prevent modeling from scratch. For example, the approaches described in the Chapter “Ontologies and Software Engineering” introduce individual formalizations of at least one paradigm or aspect although they share basic principles. In this chapter, we present such a reference ontology for software, called the Core Software Ontology, which formalizes common concepts in the software engineering realm, such as data, software with its different shades of meaning, classes, methods, etc. As we cannot possibly formalize a complete and comprehensive view of software, the Core Software Ontology is designed for extensibility in different directions. In order to demonstrate the extensibility, the chapter presents three examples of how to extend the core ontology with the notions of libraries, policies, and software components. The reference nature of such an ontology makes it important to clarify the intended meanings of its concepts and associations. Otherwise, users often have a hard time untangling the intended meanings. The prevailing type of ontologies, namely ones which are lightweight and quite often reduced to simple taxonomies, are not eligible for this purpose because they exhibit the following shortcomings (as identified in [10]):

[1]  Michael Grüninger,et al.  The Process Specification Language (PSL) Theory and Applications , 2003, AI Mag..

[2]  Daniel Oberle Semantic Management of Middleware (Semantic Web and Beyond: Computing for Human Experience) , 2006 .

[3]  Aldo Gangemi,et al.  Foundations for service ontologies: aligning OWL-S to dolce , 2004, WWW '04.

[4]  Steffen Staab,et al.  Towards ontologies for formalizing modularization and communication in large software systems , 2006, Appl. Ontology.

[5]  James D. Herbsleb,et al.  Addressing Challenges to Open Source Collaboration With the Semantic Web , 2003 .

[6]  Christopher A. Welty An integrated representation for software development and discovery , 1996 .

[7]  Aldo Gangemi,et al.  Understanding the Semantic Web through Descriptions and Situations , 2003, OTM.

[8]  Dieter Fensel,et al.  UPML: A Framework for Knowledge System Reuse , 1999, IJCAI.

[9]  Anupriya Ankolekar,et al.  A policy framework for trading configurable goods and services in open electronic markets , 2006, ICEC '06.

[10]  Steffen Staab,et al.  On marrying ontological and metamodeling technical spaces , 2007, ESEC-FSE '07.

[11]  Aldo Gangemi,et al.  Task taxonomies for knowledge content , 2004 .

[12]  Steffen Staab,et al.  On marrying ontological and metamodeling technical spaces , 2007, ESEC-FSE '07.

[13]  Daniel Oberle,et al.  Enhancing application servers with semantics , 2004 .

[14]  Steffen Staab,et al.  Improving Design Patterns by Description Logics: A Use Case with Abstract Factory and Strategy , 2008, Modellierung.

[15]  Jerry R. Hobbs,et al.  DAML-S: Semantic Markup for Web Services , 2001, SWWS.

[16]  R. A. Pease,et al.  Object Model Working Group Core Plan Representation , 1996 .

[17]  Aldo Gangemi,et al.  A Constructive Framework for Legal Ontologies , 2003, Law and the Semantic Web.