An experiment in software retrieval

  • Rolf Adams
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 717)


This paper evaluates a knowledge-based approach for software retrieval. It describes a knowledge-based software information system that uses an expressive terminological knowledge representation to represent software and that offers a natural language query interface. The system is used to implement a cross reference tool for C++ and a tool for locating UNIX commands. The retrieval effectiveness is compared to approaches based on automatic indexing. It is shown that the knowledge-based approach is more precise than three different automatic indexing approaches, while providing excellent recall and adequate runtime performance.


software libraries software reuse software maintenance information retrieval knowledge representation knowledge acquisition terminological reasoning 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    R. Adams. Knowledge representation and acquisition in a natural language software information system (in German). PhD thesis, University of Karlsruhe, Faculty of Computer Science, November 1992.Google Scholar
  2. [2]
    F. Baader and B. Hollunder. A terminological knowledge representation system with complete inference algorithms. In International Workshop on Processing Declarative Knowledge, pages 67–86. Springer-Verlag, 1991.Google Scholar
  3. [3]
    Franz Baader and Bernhard Hollunder. KRIS: Knowledge representation and inference system. ACM SIGART Bulletin, 2(3):8–14, June 1991.Google Scholar
  4. [4]
    H. Beck, S. Gala, and S. Navathe. Classification as a query processing technique in the CANDIDE semantic data model. In International Conference on Data Engineering, pages 572–581, 1989.Google Scholar
  5. [5]
    A. Borgida, R. Brachman, D. McGuinness, and L. Alperin Resnick. CLASSIC: A structural data model for objects. In ACM SIGMOD International Conference on Management of Data, pages 59–67, 1989.Google Scholar
  6. [6]
    R. Brachman, D. McGuinness, P. Patel-Schneider, and L. Resnick. Living with CLASSIC: When and how to use a KL-ONE like language. In John Sowa, editor, Principles of Semantic Networks, pages 401–456. Morgan Kaufmann Publishers, 1991.Google Scholar
  7. [7]
    J. Browne, T. Lee, and J. Werth. Experimental evaluation of a reusability-oriented parallel programming environment. IEEE Transactions on Software Engineering, 16(2):111–120, February 1990.Google Scholar
  8. [8]
    B. Burton, R. Aragon, S. Bailey, K. Koehler, and L. Mayes. The reusable software library. In Tutorial: Software Reuse. Editor: W. Tracz. IEEE Computer Society Press, 1988.Google Scholar
  9. [9]
    Y.-F. Chen, M. Nishimoto, and C. Ramamoorthy. The C information abstraction system. Communications of the ACM, 16(3):325–334, March 1990.Google Scholar
  10. [10]
    P. Devanbu, R. Brachman, and P. Selfridge. LaSSIE — a knowledge-based software information system. Communications of the ACM, 34(5):34–49, May 1991.Google Scholar
  11. [11]
    P. T. Devanbu and D. J. Litman. Plan-based terminological reasoning. In International Conference on Principles of Knowledge Representation and Reasoning, pages 128–138, 1991.Google Scholar
  12. [12]
    Margaret A. Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison Wesley, Reading, Mass., 1990.Google Scholar
  13. [13]
    W. Frakes and B. Nejmeh. An information system for software reuse. In Tutorial: Software Reuse. Editor: W. Tracz. IEEE Computer Society Press, 1988.Google Scholar
  14. [14]
    P. Garg and W. Scacchi. A hypertext system to manage software life-cycle documents. IEEE Software, pages 90–98, May 1990.Google Scholar
  15. [15]
    Keith E. Gorlen, Sanford M. Orlow, and Perry S. Plexico. Data Abstraction and Object-Oriented Programming in C++. Wiley, Chichester, 1991.Google Scholar
  16. [16]
    J. Grass and Y.-F. Chen. The C++ information abstractor. In Usenix C++ Conference Proceedings, pages 265–278, 1990.Google Scholar
  17. [17]
    J. Heinsohn, D. Kudenko, B. Nebel, and H.-J. Profitlich. An empirical analysis of terminological representation systems. In Conference of the American Association of Artificial Intelligence, pages 767–773, 1992.Google Scholar
  18. [18]
    R. Helm and Y. Maarek. Integrating information retrieval and domain specific approaches for browsing and retrieval in object-oriented class libraries. ACM SIGPLAN Notices, 26(11):47–61, November 1991.Google Scholar
  19. [19]
    L. Latour and E. Johnson. Seer: A graphical retrieval system for reusable ada software modules. In International IEEE Conference on Ada Applications and Environments. IEEE Computer Society Press, 1988.Google Scholar
  20. [20]
    Y. Maarek. Software library construction from an IR perspective. SIGIR Forum, 25(2):8–18, Fall 1991.Google Scholar
  21. [21]
    Y. Maarek and F. Smadja. Full text indexing based on lexical relations. An application: Software libraries. In Proceedings of the ACM SIGIR Conference on Research and Development in Information Retrieval, pages 198–206, 1989.Google Scholar
  22. [22]
    Y. S. Maarek, D. M. Berry, and G. E. Kaiser. An information retrieval approach for automatically constructing software libraries. IEEE Transactions on Software Engineering, 17(8):800–813, August 1991.Google Scholar
  23. [23]
    R. MacGregor. A deductive pattern matcher. In Conference of the American Association of Artificial Intelligence, pages 403–408, 1988.Google Scholar
  24. [24]
    Robert MacGregor. Inside the LOOM description classifier. ACM SIGART Bulletin, 2(3):88–92, June 1991.Google Scholar
  25. [25]
    S. Meggendorfer and P. Manhart. A knowledge and deduction based software retrieval tool. In Knowledge-Based Software Engineering Conference, pages 127–133. IEEE Computer Society Press, 1991.Google Scholar
  26. [26]
    P. Patel-Schneider. Small can be beautiful in knowledge representation. In Proceedings of the IEEE Workshop on Principles of Knowledge-Based Systems, pages 11–16. IEEE Computer Society Press, 1984.Google Scholar
  27. [27]
    C. Peltason, A. Schmiedel, C. Kindermann, and J. Quantz. The BACK system revisited. Technical Report 75, Technische Universitaet Berlin, Fachbereich Informatik, Projektgruppe KIT, 1989.Google Scholar
  28. [28]
    L. Prechelt. The SIS project: Software reuse with a natural language approach. Interner Bericht 2/92, University of Karlsruhe, Department of Informatics, 1992.Google Scholar
  29. [29]
    L. Prechelt, F. D. Buo, and R. Adams. Transportable natural language interfaces for taxonomic knowledge representation systems. In International Conference on Artificial Intelligence Applications, 1993.Google Scholar
  30. [30]
    R. Prieto-Diaz and G. Jones. Breathing new life into old software. In Tutorial: Software Reuse. Editor: W. Tracz. IEEE Computer Society Press, 1988.Google Scholar
  31. [31]
    Ruben Prieto-Diaz and Peter Freeman. Classifying software for reusability. IEEE Software, 4(1):6–16, January 1987.Google Scholar
  32. [32]
    J. Quantz and C. Kindermann. Implementation of the BACK system version 4. Technical Report 78, Technische Universitaet Berlin, Fachbereich Informatik, Projektgruppe KIT, December 1990.Google Scholar
  33. [33]
    E. J. Rollins and J. M. Wing. Specifications as search keys for software libraries. In K. Furukawa, editor, Proceedings of the International Conference on Logic Programming, pages 173–187, 1991.Google Scholar
  34. [34]
    G. Salton and M. McGill. Introduction to Modern Information Retrieval. McGraw-Hill Book Company, 1983.Google Scholar
  35. [35]
    P. G. Selfridge. Knowledge representation support for a software information system. In International Conference on Artificial Intelligence Applications, pages 134–140. IEEE Computer Society Press, 1991.Google Scholar
  36. [36]
    T. Syvertsen. CPPREF — an information abstractor for C++. Master's thesis, University of Karlsruhe, April 1992.Google Scholar
  37. [37]
    W. Teitelman. The Interlisp Reference Manual. Xerox Palo Alto Research Center, Palo Alto, California, 1978.Google Scholar
  38. [38]
    W. Teitelman and L. Masinter. The Interlisp programming environment. IEEE Computer, pages 25–33, April 1981.Google Scholar
  39. [39]
    Walter F. Tichy. RCS — a system for version control. Software—Practice and Experience, 15(7):637–654, July 1985.Google Scholar
  40. [40]
    Murray Wood and Ian Sommerville. An information retrieval system for software components. Software Engineering Journal, 3(5):198–207, September 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Rolf Adams
    • 1
  1. 1.Institut fuer Programmstrukturen und DatenorganisationUniversity of KarlsruheKarlsruheGermany

Personalised recommendations