Storm Reference - Document Syntax Conventions
This section covers the following important conventions used within the Storm Reference Documents:
Storm and Layers
The Storm Reference documentation provides basic syntax examples that assume a simple Storm environment - that is, a Cortex with a single Layer. For multi-Layer Cortexes, the effects of specific Storm commands - particularly data modification commands - may vary based on the specific arrangement of read / write Layers, the Layer in which the command is executed, and the permissions of the user.
Storm Syntax Conventions
The Storm Reference documentation provides numerous examples of both abstract Storm syntax (usage statements) and specific Storm queries. The following conventions are used for Storm usage statements:
Items that must be entered literally on the command line are in bold. These items include command names and literal characters.
Items that represent “variables” that must be replaced with a name or value are placed within angle brackets (
< >
) in italics. Most “variables” are self-explanatory, however a few commonly used variable terms are defined here for convenience:<form> refers to a form / node primary property, such as
inet:fqdn
.<valu> refers to the value of a primary property, such as
woot.com
ininet:fqdn=woot.com
.<prop> refers to a node secondary property (including universal properties) such as
inet:ipv4:asn
orinet:ipv4.created
.<pval> refers to the value of a secondary property, such as
4808
ininet:ipv4:asn=4808
.<query> refers to a Storm query.
<inet:fqdn> refers to a Storm query whose results contain the specified form(s)
<tag> refers to a tag (
#sometag
as opposed to asyn:tag
form).
Bold brackets are literal characters. Parameters enclosed in non-bolded brackets are optional.
Parameters not enclosed in brackets are required.
A vertical bar signifies that you choose only one parameter. For example:
a | b
indicates that you must choose a or b.[ a | b ]
indicates that you can choose a, b, or nothing (the non-bolded brackets indicate the parameter is optional).
Ellipses ( … ) signify the parameter can be repeated on the command line.
The
storm
command that must precede a Storm query is assumed and is omitted from examples.
Example:
[ <form> = <valu> [ : <prop> = <pval> … ] ]
The Storm query above adds a new node.
The outer brackets are in bold and are required literal characters to specify a data modification (add) operation. Similarly, the equals signs are in bold to indicate literal characters.
<form> and <valu> would need to be replaced by the specific form (such as
inet:ipv4
) and primary property value (such as1.2.3.4
) for the node being created.The inner brackets are not bolded and indicate that one or more secondary properties can optionally be specified.
<prop> and <pval> would need to be replaced by the specific secondary property and value to add to the node, such as
:loc = us
.The ellipsis (
...
) indicate that additional secondary properties can optionally be specified.
Usage Statements vs. Specific Storm Queries
Examples of specific queries represent fully literal input, but are not shown in bold for readability. For example:
Usage statement:
[ <form> = <valu> [ : <prop> = <pval> …] ]
Example query:
[ inet:ipv4 = 1.2.3.4 :loc = us ]
Type-Specific Behavior
Some data types within the Synapse data model have been optimized in ways that impact their behavior within Storm queries (e.g., how types can be input, lifted, filtered, etc.) See Storm Reference - Type-Specific Storm Behavior for details.
Whitespace
Whitespace may be used in the examples for formatting and readability.