1. Engine Foundations4 min readBEGINNER
1. Introduction to DSL Syntax & Structural Rules
Understand the strict anatomy of a question, tab indentation, and option blocks to author executable questionnaires.
#dsl#syntax#structure#questions#foundations
What is Daesen DSL?#
Daesen DSL is the deterministic, structured markup standard used by the ingestion engine to convert Microsoft Word (.docx) or plaintext questionnaires into fully functional, interactive survey applications.
Survey Phases ([PRE-SCREENER], [SCREENER], [SURVEY])#
Purpose: Phases partition the questionnaire into modular stages for consent, demographic screening, and core research collection, while driving phase-specific soft termination thresholds (soft terms).
The 3 Canonical Survey Phases:#
| Phase Marker | Phase Identifier | Operational Role in the Survey Flow |
|---|---|---|
[PRE-SCREENER] | pre-screener | Preliminary stage for informed consent, privacy agreements, and baseline eligibility filters. |
[SCREENER] | screener | Qualification stage for respondent profiling, quota validation, and strict inclusion/exclusion criteria (S1, S2, ...). |
[SURVEY] | survey | Main questionnaire body where in-depth data collection and core research objectives are evaluated (Q1, Q2, ...). |
Parsing & Phase Propagation Rules:#
- 1Dedicated Line Declaration: Phase markers must be declared in square brackets on their own line (e.g.
[PRE-SCREENER],[SCREENER],[SURVEY]). Space-separated variants such as[PRE SCREENER]or[PRESCREENER]are also supported. - 2Cascading Propagation: A phase marker assigns that phase to all subsequent questions until the parser encounters another phase marker.
- 3Default Phase Fallback: If no phase marker is present in the document, the engine automatically defaults all questions to the
surveyphase (Global Survey).
text
[PRE-SCREENER]
S0. Do you consent to participate in this confidential market research study?
[SINGLE CODE]
Please select one option.
1. Yes, I consent to proceed
2. No, I decline [CLOSE]
[SCREENER]
S1. What is your primary medical specialty?
[SINGLE CODE]
Please select your specialty.
1. Urology
2. General Surgery
3. Other specialty [SOFT TERM]
[SURVEY]
Q1. Thinking about your surgical procedures over the past month, how many cases did you perform?
[OPEN NUMERIC; 0-500; cases]Live Component Previewsingle choice
ID: S0
Questions Flow (3):
Do you consent to participate in this confidential market research study?
Please select one option.
Answer [S0]:No answer selected / empty
Anatomy of a Valid Question#
Every question requires 4 core parts without intermediate blank lines:
text
S1. What is the size of your organization?
[SINGLE CODE]
Please select one option.
1. 1 - 10 employees
2. 11 - 50 employees
3. 51 - 250 employees
4. 250+ employeesLive Component Previewsingle choice
ID: S1
What is the size of your organization?
Please select one option.
Answer [S1]:No answer selected / empty
The 4 Foundational Parsing Rules:#
- 1Question Identifier Header: Must begin on a new line with an uppercase letter (S for screener or Q for general questionnaire), followed by an integer and a period with a space (
S1.,Q15.). - 2Component Directive Tag: Declared in square brackets on its own line (e.g.
[SINGLE CODE],[MULTICODE],[OPEN ENDED],[OPEN NUMERIC]). - 3Interface Instruction (Optional): Non-numbered line providing clear guidance to the respondent.
- 4Enumerated Options with Tab Indentation (\t): Each answer choice must begin with a tab character (
\t) or Word bullet indentation, followed by the integer and period (\t1.,\t2.).
Question Separation#
To delineate consecutive questions, insert exactly one blank line between them:
text
S1. In which country do you currently reside?
[SINGLE CODE]
Please select one option.
1. Germany
2. Spain
3. France
4. Other [OPEN END]
S2. What is your primary job title within your company?
[OPEN ENDED]
Please specify your corporate position.Live Component Previewsingle choice
ID: S1
Questions Flow (2):
In which country do you currently reside?
Please select one option.
Answer [S1]:No answer selected / empty
Was this article helpful?
Your feedback helps us continuously improve our technical guides.
Have a specific question not covered here?Contact Support