Region Expressions

A region expression is a combination of predicates used to match some region or regions of causal histories. Region expressions are used in a variety of modality commands to designate what part of recorded execution the command should be evaluated against. Every region expression must include at least one session. Different conditions in a region expression can be combined with AND, OR, and parentheses.

# Allowed Fields

Region expressions allow the fields session, scope, scope_instance, coordinates, probe, component, and component_id:

#

session
Comparisons
=
,
!=
Session name. At least one session is required in every region expression.
Comparisons: =, !=
More than one session may be used in a single region expression. If more than one session is used, clauses specifying session must be combined with OR, since sessions are non-overlapping by definition.

Example: The union of all of session-a with all of session-b.

'session = "session-a" OR session = "session-b"'

#

scope
Comparisons
=
,
!=
Scope name.
Comparisons: =, !=

Example: The region comprised of the parts of session-a where either scope-a or scope-b was active.

'session = "session-a" AND (scope = "scope-a" OR scope = "scope-b")'

Example: The union of the regions in session-a and session-b where a scope named foo was active.

'scope = "foo" AND (session = "session-a" OR session = "session-b")'

#

scope_instance
Comparisons
=
,
!=
Scope instance ID.
Comparisons: =, !=
Scope instance IDs are allocated on a per-session basis, so field comparisons involving scope instance IDs should be appropriately combined with a session specification.

Example: The region comprised of the parts of session-a where instance 1 of scope-a was active.

'session = "session-a" AND scope = "scope-a" AND scope_instance = 1'

#

coordinates
Comparisons
=
,
!=
,
<
,
>
,
<=
,
>=
Comparisons: =, !=, <, >, <=, >=
coordinates < X means "the region causally preceding coordinates point X, excluding X"
coordinates > X means "the region causally following coordinates point X, excluding X"
coordinates <= X means "the region causally preceding coordinates point X, including X"
coordinates >= X means "the region causally following coordinates point X, including X"

Example: The region comprised of the part of session-a causally following point 7:9:4:2 where a scope bar was active.

'session = "session-a" AND coordinates > 7:9:4:2 AND scope = "bar"'

#

probe
Comparisons
=
,
!=
Probe name or probe id.
Comparisons: =, !=

Example: The region comprised only of data from probe probe-a in session session-a where a scope baz was active.

'session = "session-a" AND scope = "baz" AND probe = "probe-a"'

#

component
Comparisons
=
,
!=
Component name.
Comparisons: =, !=

Example: The region comprised only of data from component component-a in session session-a.

'session = "session-a" AND component = "component-a"'

#

component_id
Comparisons
=
,
!=
Component UUID.
Comparisons: =, !=

Example: The region comprised only of data from the specified component ID in session session-a.

'session = "session-a" AND component_id = "5decd025-a6fc-4cd9-b606-326223d645dd"'