Towards a Repository of Common Programming Technologies Knowledge

The everyday programming and maintenance activities make use of knowledge about programming-related technologies such as graphical interfaces (GUIs) or XML. Having this knowledge in a machine processable form supports the automation of typical maintenance activities such as concept location and raise the abstraction level at which the current code analyses are performed. In this paper we promote our current project of building a repository of ontologies1 that contain knowledge about programming technologies. We propose a method for extracting these ontologies by analyzing the commonalities of different APIs that address the same domain. We discuss the motivation for such a repository in form of possible usage directions and present our experience with building and using ontologies that share technical knowledge about GUIs and XML. Based on our experience we discuss the challenges of building and evolving the repository and discuss how can the semantic web technologies contribute to this endeavor.

[1]  Marc Ehrig,et al.  Ontology Alignment: Bridging the Semantic Gap , 2006 .

[2]  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).

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

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

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

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

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

[8]  Jan Jürjens,et al.  Extracting Domain Ontologies from Domain Specific APIs , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

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

[10]  Premkumar T. Devanbu,et al.  LaSSIE: a knowledge-based software information system , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

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

[12]  Jan Jürjens,et al.  Evaluating the Reference and Representation of Domain Concepts in APIs , 2008, 2008 16th IEEE International Conference on Program Comprehension.

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

[14]  M. Lindvall,et al.  Knowledge management in software engineering , 2002, IEEE Software.

[15]  Spencer Rugaber,et al.  On the knowledge required to understand a program , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

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

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

[18]  Nicolas Anquetil,et al.  Characterizing the informal knowledge contained in systems , 2001, Proceedings Eighth Working Conference on Reverse Engineering.