Experiment Definition (--expdef)#
SIERRA is capable of reading
--expdef-template from a
number of formats via --expdef plugins. Before diving into the details of
the plugins, it is important to clarify terminology around the different
components in files passed to
--expdef-template:
Attribute - The value part of a <key, value> pair within an --expdef-template which maps to a native primitive such as a bool, int, or string. Attributes cannot contain other attributes.
Element - The value part of a <key, value> pair within an --expdef-template which maps to a sub-tree of configuration. Thus, elements can contain other elements, as well as attributes (depending on markup format).
Tag - The key part of a <key, value> pair within an --expdef-template which maps either to an element or an attribute.
The differences between these components is best illustrated with some simple examples:
<menu id="file" value="File">
<popup>
<menuitem value="New" onclick="CreateNewDoc()" />
<menuitem value="Open" onclick="OpenDoc()" />
<menuitem value="Close" onclick="CloseDoc()" />
</popup>
</menu>
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
menu:
id: file
value: File
popup:
menuitem:
- value: New
onclick: CreateNewDoc()
- value: Open
onclick: OpenDoc()
- value: Close
onclick: CloseDoc()
In the above, {menu, popup, menuitem} are tags, and each identify
unique elements. {id, value, onclick} are tags identifying attributes.
With that understanding in place, the supported formats that come with SIERRA are:
Additional formats can be supported via Experiment Definition Files (--expdef).