Skip to content

Spatial Regular Expressions

A Spatial Regular Expression (SpRE) is a spatial- and temporal-based querying language that describes a perception scenario of interest. This querying language is based on traditional Regular Expression patterns found in popular tools such as grep.

Example

Find two to five frames where a car and pedestrian are present.

[[:car:] & [:pedestrian:]]{2,5}

Grammar#

The grammar below provides a method for developing valid SpRE patterns.

<spre>   ::= '(' <spre> ')'
         | <spre> '*'
         | <spre> <spre>
         | <spre> '|' <spre>
         | <spre> <range>
         | '[' <s4u> ']'

<s4u>    ::= '(' <s4u> ')'
         | <s4u> '&' <s4u>
         | <s4u> '|' <s4u>
         | 'NE' <class>
         | 'NE' '(' <s4> ')'
         | <s4m> '<' <s4m>
         | <s4m> '>' <s4m>
         | <s4m> '<=' <s4m>
         | <s4m> '>=' <s4m>
         | <class>

<s4m>    ::= '(' <s4m> ')'
         | Real 
         | Integer 
         | '@' ('dist' | 'x' | 'y' | 'area') '(' <s4> ')'
         | '@' 'dist' '(' <s4> ',' <s4> ')' 
         | '-' <s4m>
         | <s4m> '-' <s4m> 
         | <s4m> '*' <s4m> 
         | <s4m> '/' <s4m>

<s4>     ::= '(' <s4> ')'
         | <s4> '&' <s4>
         | <s4> '|' <s4>
         | '!' <s4>
         | <class>

<class>  ::= <object>

<object> ::= '[' ':' <string> ':' ']'

<range>  ::= '{' <integer> '}'
         | '{' <integer> ',' '}'
         | '{' <integer> ',' <integer> '}'