AAS Query Language#
In industrial Digital Twin environments, large numbers of Asset Administration Shells (AAS), Submodels, and Concept Descriptions are managed across distributed systems. While standard AAS APIs provide structured access to individual elements, advanced use cases require powerful, flexible, and efficient search capabilities across the entire AAS landscape.
The AAS Query Language addresses this need by providing a unified, expressive query mechanism to search for AAS, Submodels, Concept Descriptions, and their descriptors. It enables users to perform complex filtering, logical operations, and semantic-based searches across all registered Digital Twin data.
Internally, the BaSyx query functionality is backed by Elasticsearch, providing scalability, high performance, and fuzzy search capabilities while exposing a domain-specific query interface tailored to the AAS meta-model.
Note
A fully working example of the AAS Query Language is available in the official BaSyx examples on GitHub.
Motivation and Use Case#
As Digital Twin environments grow, organizations quickly face challenges such as:
Finding specific assets among thousands of AAS
Searching Submodels by semantic identifiers or versions
Locating assets by endpoints, asset kind, or metadata
Filtering Concept Descriptions by language or reference relations
Querying registries for deployment, discovery, and orchestration
The AAS Query Language enables all of these scenarios through a single, consistent query interface that works across multiple BaSyx repositories and registries.
Example Setup Overview#
The example provides a preconfigured BaSyx environment with:
Multiple Asset Administration Shells
Several Submodels per AAS
Concept Descriptions
Registries for AAS and Submodels
An integrated Elasticsearch backend
All components are deployed as Docker containers to ensure easy setup and reproducibility.
Running the AAS Query Language Example#
To start the example environment:
Open a terminal in the example folder
Start all BaSyx containers:
docker-compose up -d
Note
Docker must be installed on your system in order to run this example.
Exploring the Query Functionality via Web UI#
After starting the containers, you can interact with the query system using the BaSyx AAS Web UI:
Open the BaSyx Web UI
Navigate to the AAS Query Language Module
Select the target component (Repository or Registry)
Enter your query in the text area
Execute the query and inspect the result set
Inspecting Elasticsearch via Kibana#
The BaSyx query infrastructure uses Elasticsearch as its search backend. To explore the indexed data directly, you can access Kibana:
URL:
http://localhost:5601Username:
elasticPassword:
vtzJFt1b
Kibana allows you to:
Inspect AAS, Submodel, and Concept Description indices
Perform raw Elasticsearch queries
Visualize indexed Digital Twin data
Debug indexing and query behavior
Query Endpoints Overview#
Component |
Endpoint |
|---|---|
AAS Repository |
|
Submodel Repository |
|
Concept Description Repository |
|
AAS Registry |
|
Submodel Registry |
|
Getting Started#
Start the BaSyx Docker environment
Explore the Web UI query module
Inspect Elasticsearch via Kibana
Execute the example queries
Integrate the query endpoints into your own applications
Additional Resources#
For more information about AAS Query Language: