Querying Versioned Software Repositories

  • Dietrich Christopeit
  • Michael Böhlen
  • Carl-Christian Kanne
  • Arturas Mazeika
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6909)


Large parts of today’s data is stored in text documents that undergo a series of changes during their lifetime. For instance during the development of a software product the source code changes frequently. Currently, managing such data relies on version control systems (VCSs). Extracting information from large documents and their different versions is a manual and tedious process. We present Qvestor, a system that allows to declaratively query documents. It leverages information about the structure of a document that is available as a context-free grammar and allows to declaratively query document versions through a grammar annotated with relational algebra expressions. We define and illustrate the annotation of grammars with relational algebra expressions and show how to translate the annotations to easy to use SQL views.


Source Code Relational Algebra Parse Tree Node Data Grammar Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abiteboul, S., Cluet, S., Milo, T.: Querying and updating the file. In: VLDB 1993, pp. 73–84 (1993)Google Scholar
  2. 2.
    Aguilera, V., Cluet, S., Veltri, P., Vodislav, D., Wattez, F.: Querying xml documents in xyleme (2000)Google Scholar
  3. 3.
    Chen, Y.-F., Nishimoto, M., Ramamoorthy, C.: The c information abstraction system. IEEE Transactions on Software Engineering 16, 325–334 (1990)CrossRefGoogle Scholar
  4. 4.
    Fischer, M., Pinzger, M., Gall, H.: Populating a release history database from version control and bug tracking systems. In: ICSM 2003 (2003)Google Scholar
  5. 5.
    Kanne, C.-C., Moerkotte, G.: Efficient storage of xml data. In: ICDE 2000 (December 1999)Google Scholar
  6. 6.
    Kemerer, C., Slaughter, S.: An empirical approach to studying software evolution. IEEE Transactions on Software Engineering 25, 493–509 (1999)CrossRefGoogle Scholar
  7. 7.
    Krishnamurthy, R., Li, Y., Raghavan, S., Reiss, F., Vaithyanathan, S., Zhu, H.: Systemt: a system for declarative information extraction. ACM SIGMOMOD Record 37, 33–44 (2008)Google Scholar
  8. 8.
    Müller, H.A., Orgun, M.A., Tilley, S.R., Uhl, J.S.: A reverse-engineering approach to subsystem structure identification. Software Maintenance: Research and Practice 5, 181–204 (1993)CrossRefGoogle Scholar
  9. 9.
    Paul, S., Prakash, A.: Querying source code using an algebraic query language. In: Proceedings International Conference on Software Maintenance ICSM 1994, pp. 127–136 (1994)Google Scholar
  10. 10.
    Storey, M.-A., Müller, H.: Manipulating and documenting software structures using shrimp views. In: Proceedings in Software Maintenance, pp. 275–284 (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Dietrich Christopeit
  • Michael Böhlen
  • Carl-Christian Kanne
  • Arturas Mazeika

There are no affiliations available

Personalised recommendations