9  Glossary


Action is the umbrella term for any goal-directed activity that the SPARK executes. This can be a user-directed activity such as presenting a survey, awarding a badge, or sending a push message; it can be an internal activity such as storing a value as a data source for future use or export, for example to adjust the frequency or type of content based on user engagement levels; or it can be an activity directed at third parties, for example triggering an actuator in a smart home or sending a message to a user’s configured contact. Note that in the LAMP platform, these are called activities. We chose the term ‘action’ because it is the conventional term in the JITAI literature.


A push notification that prompts users to respond to a question set.

Builder, SPARK builder

The front-end view available to Users who are Researchers.


Conditions are a subset of logical expressions: they represent a logical expression with exactly one logical or comparative operator (for example, &&, <=, ==, or !=). Conditions always evaluate to TRUE or FALSE. User-designed decision trees always consist of a combination of conditions.

Data source

Data stored by the SPARK. Examples are data provided by users as responses to a question; data retrieved from third-party APIs or through a device’s API; or data resulting from performing computations on other data sources. Data sources can be used in conditions and decision trees. Two special types of data sources are Stream Data Sources (like the time at a given moment) and State Data Sources (like “morning” or “afternoon”).

Decision tree

A decision tree is the visual representation or one or more logical expressions. In its simplest form, when representing a logical expression that evaluates to TRUE or FALSE, the corresponding decision tree has exactly two terminal nodes, one representing TRUE and one representing FALSE. Instead of TRUE and FALSE, a terminal node can also represent an action the SPARK can take; or the tree can end without taking any action. More complex trees can represent multiple logical expressions and so have multiple terminal nodes, representing the multiple actions that the SPARK may take. Such trees represent multiple logical expressions that are evaluated in sequence, following the flow through the tree from its root to its leaves (i.e. terminal nodes). A decision tree’s evaluation is always triggered by a trigger. Decision trees use basic flowchart symbols, for example representing a logical expression (a decision) using a diamond. In user-designed decision trees, decisions can only be conditions (simple logical expressions with one logical or comparative operator).

Ecological Momentary Assessment (EMA)

The Ecological Momentary Assessment, or EMA, is an empirical method designed to increase the ecological validity of collected data in the social sciences. Operationally, it falls under Intensive Longitudinal Methods.

Experience Sampling Method (ESM)

The Experience Sampling Method, or ESM, is an empirical method designed to obtain data about human experiences during or right after the occurrence of those experiences. Operationally, it falls under Intensive Longitudinal Methods.


An event is an occurrence that can trigger the evaluation of conditions such as decision trees. Each event is always represented as the shift of a State Data Source from one state to another state. These states can be numbers (for example, a counter), or the states can be toggled between two states (for example, “home” or “not home”). To specify a state, users either select states provided by third parties (for example, a push notification from another system) or define a state transition of a State Data Source as an event. Once defined, events can be selected as triggers for decision trees or other conditions. Each event has a label describing it, for example “the time is 11:00 UTC+1”, “geofence A has value TRUE”, “the user’s answer to question set B, question H, is larger than 3”.


In the SPARK, an identifier is a character string that uniquely identifies an action, question, data source, or other entity in a project. Identifiers can only contain Latin letter, Arabic numbers, and underscores, and they must always start with a Latin letter (as a regular expression: [a-zA-Z][a-zA-Z0-9_]). Identifiers must always be unique within a SPARK project.

Intensive Longitudinal Methods

Intensive Longitudinal Methods are empirical methods where instead of collecting data in one or a small number of data collection sessions for each research unit (e.g., a participant or an organization), data is collected over many sessions with the same research units. The data collection sessions can either be conducted at predetermined moments, at randomly picked moments within temporal bounds, in response to other data (such as location or heart rate), or a combination of those. Data collected in an intensive longitudinal study can also be used to inform intervention activities to support, for example, behavior change, in which case the project becomes a Just In Time Adaptive Intervention (JITAI). Examples of intensive longitudinal methods are Ecological Momentary Assessment (EMA), the Experience Sampling Method (ESM), n-of-1 designs, and Single Case Designs.

Just In Time Adaptive Intervention (JITAI)

A Just In Time Adaptive Intervention. This is an application that collects information about its user(s) and uses this information to support them with desired behavior changes. It is similar to an intensive longitudinal study (e.g. an ESM or EMA study), but being an intervention, a JITAI is not designed with an epistemic aim (i.e. with the aim to produce general knowledge). As such, a JITAI need not yield data to be analyzed later on (although it well may).

Logical Expression

A logical expression that evaluates one or more data sources and can then (potentially) initiate an action. All user-defined logic (e.g. decision trees, question set scheduling) are stored in the back-end as logical expressions. Logical expressions are stored with a number of metadata variables, one of which is their origin, another is their evaluation timescale, and another is whether the logical expression is reactive or not, and if so, which data sources trigger its evaluation. A logical expression’s origin can be, for example, a question’s logic expression, a Decision Tree, or a Question Set’s Schedule. For example, if the origin is a Decision Tree, the metadata contains visualization customizations such as manually changed node positions and colors. A logical expression’s evaluation timescale determines how often the expression is evaluated by the SPARK. Reactive expressions are also evaluated when the relevant data sources change (for example, in response to a state switch).

n-of-1 study

A study designed to collect and analyze data from a single research unit (e.g. a participant or an organization). Operationally, it falls under Intensive Longitudinal Methods.

Native app

The native app that participants install from their OS’s app store (that mostly serves the Participant Portal in a native shell, but also exposes the OS’s API to the SPARK projects).


An operator is a symbol representing a calculation or comparison. Logical operators supported by the SPARK are the logical “AND” operator (&& or AND), the logical “OR” operator (|| or OR), and the “NOT” operator (preceding an expression with an exclamation mark (!)). Supported comparative operators are smaller than (<), greater than (>), equal to (==), not equal to (!=), smaller than or equal to (<=), and greater than or equal to (>=). The SPARK also supports the following mathematical operators: addition (+), subtraction (-), multiplication (*), and division (/). In addition, the SPARK supports regular expression matching using the MATCH operator. More details about operators are provided in the Expressions page. When combining multiple operators in a logical expression, parentheses can be used to enforce a particular evaluation precedence (( and )).


Somebody who provides data. (Note: in the LAMP platform, these are called “users”. In the SPARK platform, “Users” have a different meaning, see users in this glossary.)

Participant Portal

The front-end that participants interact with on their device or through their browser. This is what is presented to participants if they use a native app.


A study or intervention built with the SPARK builder and served to participants using the Participant Portal.

Push notification

A notification produced by the SPARK without necessarily requiring prior user input. Push notifications link to actions such as question sets.


A combination of a question text and one or more response options. There are three exceptions: Equation Questions (which just store a value), Text Display Questions (which just show the user something), and Content Presentation Questions (which import and show one or more content items).

Question Logic Tree

A question logic tree is a tree representation of the logical expression that determines whether a question is presented (if it evaluates to TRUE) or not (if it evaluates to FALSE). This is a constrained version of the generic logic tree designer, where every path ends in one of the only actions that can be used, which represent Presenting and Skipping the question. The logic tree’s trigger is always the moment when the SPARK has to determine whether to present the question to the user.

Question Set

A set of one or more questions, one or more of which is/are presented to the user in a given moment/session. Which are presented is determined by the conditional logic that can optionally be applied to a question; this logical expression can be entered directly or as a decision tree.


An account that has the right to access the SPARK builder.

Scheduling Tree

A logic tree (or logical expression) that is tied to a question set and represents the time(s) when the question set is represented to the user.

Server, SPARK server

The full application running on the server, that serves the SPARK builder as well as the Participant Portal.

Single Case Design

A study designed to collect and analyze data from a single research unit (e.g. a participant or an organization). Operationally, it falls under Intensive Longitudinal Methods.

State Data Source

A special type of data source that has a prespecified number of possible values and that changes from one value to another over time. An example is “userLocation”, which might be configured to take values “home”, “work” and “elsewhere”, or “timeOfDay” which might be configured to take values “morning”, “afternoon”, “evening” and “night”. State Data Sources often, but not always, base their value on Stream Data Sources. They can also change state based on, for example, a user’s response to a question (for example, the State Data Source “mood” may be able to take values “happy”, “sad”, and “angry” based on self-reports). Finally, states can be configured to automatically transition into another state after a given period of time. For example, a “No Not Disturb” State Data Source could be configured in a SPARK app. This can be set to “Active” when a user takes a certain action, for example completing a question set, or responding in a certain way to a question. This state would then automatically transition back to “Passive” after one hour. Decision trees could then be prevented from firing an action if a user is in the “Do not disturb hour”.

Stream Data Source

A data source with a constantly changing value, as obtained from the device OS’s API or from a third-party API, such as the time, step count, or temperature. A State Data Source will often be defined to make the Stream Data Source easier to use (for example, the time stream may be parsed into “morning”, “afternoon”, “evening” and “night”; a spatial stream may be parsed into “home”, “work”, and “elsewhere”, etc).


Adjustment of a message or question based on available data sources. This can include adaptation of the content (e.g. adapting words), feeding back user data (e.g. performance), or selecting or omitting messages or questions.


A trigger is an event-handler that triggers the evaluation of logical expression such as a decision tree, potentially executing an activity (e.g. a survey). In decisions trees, it is always represented as the initial node.


Anybody with an account. (Note: in the LAMP platform, the term “users” is used for participants: people who join a project (e.g. a study or intervention) and provide data.)