skip to main content
research-article

Surveyor: a DSEL for representing and analyzing strongly typed surveys

Published:13 September 2012Publication History
Skip Abstract Section

Abstract

Polls and surveys are increasingly employed to gather information about attitudes and experiences of all kinds of populations and user groups. The ultimate purpose of a survey is to identify trends and relationships that can inform decision makers. To this end, the data gathered by a survey must be appropriately analyzed.

Most of the currently existing tools focus on the user interface aspect of the data collection task, but pay little attention to the structure and type of the collected data, which are usually represented as potentially tag-annotated, but otherwise unstructured, plain text. This makes the task of writing data analysis programs often difficult and error-prone, whereas a typed data representation could support the writing of type-directed data analysis tools that would enjoy the many benefits of static typing.

In this paper we present Surveyor, a DSEL that allows the compositional construction of typed surveys, where the types describe the structure of the data to be collected. A survey can be run to gather typed data, which can then be subjected to analysis tools that are built using Surveyor's typed combinators. Altogether the Surveyor DSEL realizes a strongly typed and type-directed approach to data gathering and analysis.

The implementation of our DSEL is based on GADTs to allow a flexible, yet strongly typed representation of surveys. Moreover, the implementation employs the Scrap-Your-Boilerplate library to facilitate the type-dependent traversal, extraction, and combination of data gathered from surveys.

References

  1. J. L. Bentley. Programming Pearls: Little Languages. Communications of the ACM, 29(8):711--721, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. Boag, D. Chamberlin, M. F. Fernández, D. Florescu, J. Robie, and J. Siméon, editors. XQuery 1.0: An XML Query Language (2nd Edition), 2010. www.w3.org/TR/xquery/.Google ScholarGoogle Scholar
  3. E. Cooper, S. Lindley, P. Wadler, and J. Yallop. An idiom's guide to formlets. Technical Report EDI-INF-RR-1263, University of Edinburgh, 2008.Google ScholarGoogle Scholar
  4. C. H. Cunningham. A little language for surveys: Constructing an internal DSL in Ruby. In Proceedings of the ACM SouthEast Conference. ACM Press, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. EUSES. End users shaping effective software. http://EUSESconsortium.org.Google ScholarGoogle Scholar
  6. Evers, S., Achten, P., Kuper, J. A functional programming technique for forms in graphical user interfaces. In 16th International Workshop on Implementation and Application of Functional Languages, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. The glorious glasgow haskell compilation system user's guide. http://www.haskell.org/ghc/docs/6.6/html/users_guide/gadt.html (Last accessed: June 2012).Google ScholarGoogle Scholar
  8. J. Hage and P. van Keeken. Neon: a Library for Language Usage Analysis. In Int. Conf. on Software Language Engineering, pages 33--53, 2008.Google ScholarGoogle Scholar
  9. IBM SPSS Software. http://www-01.ibm.com/software/analytics/spss/ (Last accessed: June 2012).Google ScholarGoogle Scholar
  10. R. Ihaka and R. Gentleman. R: A Language for Data Analysis and Graphics. Journal of Computational and Graphical Statistics, 5(3):299--314, 1996.Google ScholarGoogle Scholar
  11. R. Lämmel and S. Peyton Jones. Scrap Your Boilerplate: A Practical Design Pattern for Generic Programming. In ACM SIGPLAN Workshop on Types in Language Design and Implementation, pages 26--37, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. LimeSurvey. http://www.limesurvey.org/ (Last accessed: June 2012).Google ScholarGoogle Scholar
  13. SurveyGizmo. http://www.surveygizmo.com/ (Last accessed: June 2012).Google ScholarGoogle Scholar
  14. SurveyMonkey. http://www.surveymonkey.com/MySurveys.aspx (Last accessed: June 2012).Google ScholarGoogle Scholar

Index Terms

  1. Surveyor: a DSEL for representing and analyzing strongly typed surveys

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 47, Issue 12
        Haskell '12
        December 2012
        157 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2430532
        Issue’s Table of Contents
        • cover image ACM Conferences
          Haskell '12: Proceedings of the 2012 Haskell Symposium
          September 2012
          168 pages
          ISBN:9781450315746
          DOI:10.1145/2364506

        Copyright © 2012 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 13 September 2012

        Check for updates

        Qualifiers

        • research-article
      • Article Metrics

        • Downloads (Last 12 months)1
        • Downloads (Last 6 weeks)0

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader