# Tags

**Tags** are keywords defined within your protocol that allow you to refer to:

1. particular files on your computer
2. groups of stimulus files
3. the result of a random selection from a group

Once defined, all three of these types of tags can be used similarly in protocol files. Tags provide a layer of abstraction that allows protocol files to group, select, and reference stimuli (audio, image, and video files on your computer) in dynamic and flexible ways.

Valid tag names...

* must be unique (the same tag name cannot be defined as two separate files/groups)
* must be single "words" that consist of letters, numbers, and underscores (no spaces, and no other symbols)

The first two types of tags - tags denoting particular stimulus files, and tags that are given to name groups of other tags - are defined near the start of your protocol, anywhere after the [starting definitions](https://ldevumd.gitbook.io/bittsy/creating-protocols/starting-definitions) and before your first [STEP statement](https://ldevumd.gitbook.io/bittsy/phases-trials-and-steps#steps). See the following pages for more information on these tags.

{% content-ref url="tags/tags-referencing-files" %}
[tags-referencing-files](https://ldevumd.gitbook.io/bittsy/creating-protocols/tags/tags-referencing-files)
{% endcontent-ref %}

{% content-ref url="tags/groups" %}
[groups](https://ldevumd.gitbook.io/bittsy/creating-protocols/tags/groups)
{% endcontent-ref %}

{% content-ref url="tags/dynamic-tags" %}
[dynamic-tags](https://ldevumd.gitbook.io/bittsy/creating-protocols/tags/dynamic-tags)
{% endcontent-ref %}
