This is the multi-page printable view of this section. Click here to print.

# Symbols and Symbol Sets

- 1: Symbols
- 2: Reasoning with Sets
- 3: Symbol Sets

# 1 - Symbols

*Symbols*

## Symbols

Symbols have the following three attributes:

- a symbol (lowercase, no spaces or hyphens..)
- an associated text (free text)
- (internally) a unique identifier

### Using symbols to ensure consistency in representation across Processes

The options in a Select question might involve concepts which have relevance not only in a single Process but across the whole Project.

You can ensure that you *represent* such concepts consistently across Projects by defining symbols at the
Project level and choosing to use them within the Process as option values.

### Using Symbols to compute with

Symbols can be used as the value of options in a select question select question

When the user responds to a select question, the resulting value is a set of symbols.

### Using Symbols for translating system terms

### System Symbols

### Project Symbols

# 2 - Reasoning with Sets

*Set Reasoning*

### Reasoning with Sets in Processes

#### Example

Let us create an example to show reasoning with sets.

Suppose you are creating a nutrition App, and you are interested in people’s diet.

### Asking the user for their **eaten_regularly** set

Suppose you create a Process and ask the user the following multi-select question:

Let us give the value name **eaten_regularly** to this select question.

The values of select questions have the data type symbol set.

So the response value of this question will be **the set of symbols associated
with the options selected by the user**.

### Asking the user for their **finds_expensive** set

Suppose you ask a second question multi-select question with the same options (and importantly, the same associated symbols).

Let us give the value name **finds_expensive** to this select question.

### And now compute

Maybe now you want to calculate: which foods are eaten even though considered expensive?

This will be the intersection of the two sets

**eaten_regularly****finds_expensive**

How do we do this?

#### Defining and updating a set variable

### Reasoning with symbols sets defined at Project level

We can also define symbols and sets project-wide, and reason with them.

For example, we could define Project Symbols for each of the foods, and define Project Symbol Sets with various combinations.

Here is an example of a set called **foods** containing symbols for the foods above

Within a Process, we can choose to associate Project-level symbols with options:

So when we are doing set calculations, we can make use of sets defined at the Project-level:

# 3 - Symbol Sets

*Symbols*

## Symbol Set

Symbols sets are straightforward: they are set of symbols