During my spring semester, I am pursuing an independent study under Emma Tosch and Emery Berger of the PLASMA group at UMass. I will be contributing to the SurveyMan project, an automated system for the posting and management of online surveys. My work will involve improving the interface for the creation of surveys. My main goal for the semester is to produce a Python library which will produce a JSON version of the survey, to be passed to the SurveyMan system runtime.
The current format for designing surveys via CSV is not very intuitive, at least not from reading the specification alone without additional background. When trying to create test surveys over the summer, I ran into several situations where quotations and commas in question text lead to formatting issues. I remember having difficulty achieving the proper formatting using Excel, although I can’t remember exactly what the problem was; it may have had to do with the line ending characters. Simply from looking at the CSV specification, it is unclear (at least to me) how to create blocks. If the user wants to create blocks for the question, do they enter the desired block number in the BLOCK column of the question row? I am not familiar with how to specify the values as regular expressions, as shown in the specification, so I’m not sure what the example statements are doing. In terms of branching, I’m not sure I understand what the input of “2-tuple of block identifiers” is referring to. Are these meant to be the two blocks that represent each branch of the survey split? The “true”, “false”, “yes”, “no” values referenced in the regex example don’t make sense to me either, as they are not tuples. Additionally, the nested blocks seem like they could get confusing quickly. Mainly, some aspects of the survey, such as block notation and branching, should be a result of compilation, since users (such as myself) may find it unclear how to specify them properly without further explanation.