The Advanced Query Builder acts as the CYBELE platform’s main Data Exploration service, responsible for allowing the end-users to:
a) Explore and combine the underlying datasets of the platform.
b) Create and perform complex queries on top of them.
c) Manage the created queries and use them from other components.
Figure 1- Advanced Query Builder Architectural Positioning
Advanced Query Builder creates an environment through which the user can explore the datasets of the CYBELE platform. Data exploration is facilitated by a set of options for searching and filtering on the semantic information of the available datasets, based on multiple criteria, such as keywords in the title or the description of a dataset, its observed variables, its temporal and spatial coverage, the license type and more.
Figure 2 - Searching and filtering on the available datasets
The user is provided with tools to create custom queries, through an intuitive graphical interface, without writing any Structured Query Language (SQL), but at the same time, having rich expressive capabilities. Filter application on the available fields or directly on the map, aggregation, ordering and grouping operations are defined by just clicking and selecting on the available options. There in no need for knowledge about the underlying data model or the storage and querying technologies. The execution of the created queries is performed by utilising the back-end service of the query execution. The layout of the Advanced Query Builder is designed in such way so as to be user-friendly and easy-to-use. Moreover, the automatic join on common dimensions of the selected variables and the harmonization on different levels on both space and time enable the effortless combination of the selected datasets.
Figure 3 - Advanced Query Builder's Workbench
Queries defined using this component are the main “view” of data for the user. The output of the Advanced Query Builder, effectively a view on the data, is the input for most high-level CYBELE services, such as the Experiment Composition Environment.
In a nutshell, Advanced Query Builder has been effectively designed in order to:
1. Allow users to create complex queries from a simple, easy-to-use GUI, without imposing significant limitations compared to using a query language directly.
2. Use state-of-the-art techniques in order to cope with the volume of the underlying big, and real-time data.
3. Depend on the Common Semantic Data Model in order to facilitate the datasets exploration and combination.
4. Become schema and database agnostic, thus minimizing developer intervention when changes occur in the structure of the data and enable interoperability with other systems and APIs.
5. Build upon common user interface techniques used by popular query building tools such as Oracle Query Builder and MySQL Query Builder to hide the underlying complexity from the end user.
6. Exploit common patterns in order to employ generally accepted optimisations, in order to cope with the volume of CYBELE data.
The code of the Advanced Query Builder is stored at the CYBELE GitLab repository along with the code of the rest of the platform’s services. It can be accessed at the following url: