Year : 2010 Supporting developers with natural language

The feature list of modern IDEs is growing steadily and mastering these tools becomes more and more demanding, especially for novice programmers. Despite their remarkable capabilities, IDEs often still cannot directly answer the questions that arise during program comprehension tasks. Instead developers have to map their questions to multiple concrete queries that can be answered only by combining several tools and examining the output of each of them manually to distill an appropriate answer. Existing approaches have in common that they are either limited to a set of predefined, hardcoded questions, or that they require to learn a specific query language only suitable for that limited purpose. We present a framework to query for information about a software system using guided-input natural language resembling plain English. For that, we model data extracted by classical software analysis tools with an OWL ontology and use knowledge processing technologies from the Semantic Web to query it. We also present a case study that demonstrates how our framework can be used to answer queries about static source code information for program comprehension purposes. DOI: https://doi.org/10.1145/1806799.1806827 Posted at the Zurich Open Repository and Archive, University of Zurich ZORA URL: https://doi.org/10.5167/uzh-42655 Originally published at: Würsch, M; Ghezzi, G; Reif, G; Gall, H C (2010). Supporting developers with natural language queries. In: 32nd ACM/IEEE International Conference on Software Engineering, Cape Town, South Africa, 2 May 2010 2 May 2010, 165-174. DOI: https://doi.org/10.1145/1806799.1806827 Supporting Developers with Natural Language Queries Michael Würsch, Giacomo Ghezzi, Gerald Reif, and Harald C. Gall {wuersch,ghezzi,reif,gall}@ifi.uzh.ch s.e.a.l. – software architecture and evolution lab Department of Informatics University of Zurich, Switzerland

[1]  E. Prud hommeaux,et al.  SPARQL query language for RDF , 2011 .

[2]  Mariano P. Consens,et al.  Visualizing and querying software structures , 2010 .

[3]  Emily Hill,et al.  Automatically capturing source code context of NL-queries for software maintenance and reuse , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[4]  Harald C. Gall,et al.  Change Analysis with Evolizer and ChangeDistiller , 2009, IEEE Software.

[5]  Gail C. Murphy,et al.  Asking and Answering Questions during a Programming Change Task , 2008, IEEE Transactions on Software Engineering.

[6]  Harald C. Gall,et al.  A Tool for Visual Understanding of Source Code Dependencies , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[7]  Gail C. Murphy,et al.  Answering conceptual queries with Ferret , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[8]  Abraham Bernstein,et al.  How Useful Are Natural Language Interfaces to the Semantic Web for Casual End-Users? , 2007, ISWC/ASWC.

[9]  Harald C. Gall,et al.  Change Distilling:Tree Differencing for Fine-Grained Source Code Change Extraction , 2007, IEEE Transactions on Software Engineering.

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

[11]  Abraham Bernstein,et al.  Repositories with iSPARQL and a Software Evolution Ontology , 2007 .

[12]  Gail C. Murphy,et al.  Questions programmers ask during software evolution tasks , 2006, SIGSOFT '06/FSE-14.

[13]  D. Hyland-Wood,et al.  Toward a Software Maintenance Methodology using Semantic Web Techniques , 2006, 2006 Second International IEEE Workshop on Software Evolvability (SE'06).

[14]  Elnar Hajiyev,et al.  codeQuest: Scalable Source Code Queries with Datalog , 2006, ECOOP.

[15]  Antonio Vallecillo,et al.  An Ontology for Software Measurement , 2006, Ontologies for Software Engineering and Software Technology.

[16]  A. Bernstein,et al.  Ginseng : A Guided Input Natural Language Search Engine for Querying Ontologies , 2006 .

[17]  Axel Korthaus,et al.  KOntoR: An Ontology-enabled Approach to Software Reuse , 2006, SEKE.

[18]  Stefan Seedorf,et al.  Applications of Ontologies in Software Engineering , 2006 .

[19]  Michael W. Godfrey,et al.  Facilitating software evolution research with kenyon , 2005, ESEC/FSE-13.

[20]  Andreas Zeller,et al.  Mining version histories to guide software changes , 2005, Proceedings. 26th International Conference on Software Engineering.

[21]  Thomas Zimmermann,et al.  Preprocessing CVS Data for Fine-Grained Analysis , 2004, MSR.

[22]  Harald C. Gall,et al.  Populating a Release History Database from version control and bug tracking systems , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[23]  Kris De Volder,et al.  Navigating and querying code without getting lost , 2003, AOSD '03.

[24]  Michael Gruninger,et al.  ONTOLOGY Applications and Design , 2002 .

[25]  James A. Hendler,et al.  The Semantic Web" in Scientific American , 2001 .

[26]  Stéphane Ducasse,et al.  FAMIX and XMI , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[27]  Mike Uschold,et al.  A Framework for Understanding and Classifying Ontology Applications , 1999 .

[28]  Roger F. Crew ASTLOG: A Language for Examining Abstract Syntax Trees , 1997, DSL.

[29]  Atul Prakash,et al.  A Query Algebra for Program Databases , 1996, IEEE Trans. Software Eng..

[30]  Scott Henninger,et al.  Using iterative refinement to find reusable software , 1994, IEEE Software.

[31]  Thomas R. Gruber,et al.  A translation approach to portable ontology specifications , 1993, Knowl. Acquis..

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

[33]  Michael McGill,et al.  Introduction to Modern Information Retrieval , 1983 .