Extracting Domain Ontologies from Domain Specific APIs

Domain specific APIs offer their clients ready-to-use implementations of domain concepts. Beside being interfaces between the worlds of humans and computers, domain specific APIs contain a considerable amount of domain knowledge. Due to the big abstraction gap between the real world and today's programming languages, in addition to the knowledge about their domain, these APIs are cluttered with a considerable amount of noise in form of implementation detail. Furthermore, an API offers a particular view on its domain and different APIs regard their domains from different perspectives. In this paper we propose an approach for building domain ontologies by identifying commonalities between domain specific APIs that target the same domain. Besides our ontology extraction algorithm, we present a methodology for eliminating the noise and we sketch possible usage-scenarios of the ontologies for program analysis and understanding. We evaluate our approach through a set of case-studies on extracting domain ontologies from well-known domain specific APIs.

[1]  Nicolas Anquetil,et al.  Knowledge for Software Maintenance , 2003, SEKE.

[2]  Michael R. Genesereth,et al.  Logical foundations of artificial intelligence , 1987 .

[3]  Mark John Taylor,et al.  Knowledge for software maintenance , 1997, J. Inf. Technol..

[4]  Premkumar T. Devanbu,et al.  LaSSIE—a knowledge-based software information system , 1991, ICSE '90.

[5]  Thomas R. Gruber,et al.  Toward principles for the design of ontologies used for knowledge sharing? , 1995, Int. J. Hum. Comput. Stud..

[6]  Deborah L. McGuinness,et al.  Ontologies Come of Age , 2003, Spinning the Semantic Web.

[7]  Norman Wilde,et al.  The role of concepts in program comprehension , 2002, Proceedings 10th International Workshop on Program Comprehension.

[8]  Jan Jürjens,et al.  The Reality of Libraries , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[9]  Yonggang Zhang,et al.  Empowering Software Maintainers with Semantic Web Technologies , 2007, ESWC.

[10]  Marta Sabou,et al.  Extracting ontologies from software documentation: a semi-automatic method and its evaluation , 2004 .

[11]  Hongji Yang,et al.  Extracting ontologies from legacy systems for understanding and re-engineering , 1999, Proceedings. Twenty-Third Annual International Computer Software and Applications Conference (Cat. No.99CB37032).

[12]  Nicolas Anquetil,et al.  Software maintenance seen as a knowledge management issue , 2007, Inf. Softw. Technol..

[13]  Florian Deißenböck,et al.  From Reality to Programs and (Not Quite) Back Again , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[14]  Gobinda G. Chowdhury,et al.  Spinning the Semantic Web: Bringing the World Wide Web to Its Full Potential , 2004 .

[15]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[16]  Ted J. Biggerstaff,et al.  The concept assignment problem in program understanding , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[17]  Florian Deißenböck,et al.  Programs are Knowledge Bases , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).