RoboQL Overview#
RoboQL is a query language used to search all data elements in the Roboto platform. It enables users to write succinct and powerful queries for datasets, files, topics, message paths and events. The syntax is easy to learn and succinct enough to be used in a search bar.

Writing Queries#
A RoboQL query consists of conditions, an optional sort clause, and an optional limit clause. Additionally, each RoboQL query operates against a specific entity type, which can be datasets
, files
, topics
, message paths
or events
. The entity type determines the fields that can be referenced in the query, and also which values are valid in a sort clause.
The most basic condition involves comparing a field to a value:
field = "value"
Multiple conditions can be combined with logical operators AND
/ OR
:
field1 = "value1" AND field2 > 100
Conditions can also be grouped with parentheses:
(field1 = "value1" AND field2 > 100) OR (field1 = "value2" AND field2 < 100)
To sort the results, use the SORT BY
clause followed by the field name and direction (ASC
for ascending, DESC
for descending).
field1 = "value" SORT BY field2 ASC
To limit the number of results, use the LIMIT
clause followed by the number of results to return. This generally only makes sense if a SORT BY
clause is also used.
field1 = "value" SORT BY field2 DESC LIMIT 10
The literal *
can be used to specify “no conditions”, for queries like “get the 10 most recent datasets”
* SORT BY created DESC LIMIT 10
Entity References#
Entity references in RoboQL allow you to group multiple conditions that apply to the same entity. This is particularly useful for querying nested data structures and ensuring conditions are evaluated together.
When using entity references, each reference represents a specific instance of an entity. This allows you to construct complex queries that require multiple conditions to be true for the same entity. For example:
(files[0].relative_path CONTAINS ".png" AND files[0].size > 100000) AND
(files[1].relative_path CONTAINS ".jpg" AND files[1].size > 500000)
This query retrieves datasets that have both a PNG file larger than 100KB (files[0]
) and a JPG file larger than 500KB (files[1]
).
Alternatively, entity references can be strings for enhanced readability:
(files[png_file].relative_path CONTAINS ".png" AND files[png_file].size > 100000) AND
(files[jpg_file].relative_path CONTAINS ".jpg" AND files[jpg_file].size > 500000)
In this case, png_file
and jpg_file
are labels for file instances within the dataset, ensuring that conditions grouped under these labels apply to the same files.