HQL, the HighQSoft Query Language, is a query language and client library for ASAM ODS 5 and ASAM ODS 6 systems and ASAM ATFx files. It turns generic ASAM ODS interfaces into compact, readable queries that are easier to build, reuse, and maintain across different application models.
HQL is designed for three audiences. Analysts and engineers use it to explore metadata and measured data quickly, without building export tooling first. Developers use it to build integrations and applications with a structured query builder, so queries can be generated and validated in code. Data teams use it to connect ASAM ODS data to MATLAB and Python workflows, with results that fit analysis tasks without manual preparation.
HQL is available as a Java library, a REST web service, and a command line client, and it is also integrated into HighQSoft products. It supports ASAM ODS 5 and ASAM ODS 6, and it can read ASAM ATFx, which helps teams keep one consistent query layer across mixed system landscapes.
HQL lets engineers and analysts query ASAM ODS data using the entities and terms they recognize from their domain and application model. This hides the generic ASAM ODS complexity and makes it easier to ask questions, validate assumptions, and find relevant measurements quickly. It works naturally for interactive exploration using the CLI, in notebooks, or in short scripts, so teams can iterate fast without building export tooling first.
HQL provides a structured query builder so developers can assemble and adapt queries in code without fragile string construction. This makes client logic easier to maintain, supports dynamic queries for different models and projects, and reduces development effort when building gateways, services, and custom applications. Comfort functions and validation patterns help teams ship faster while keeping query logic consistent and easier to review.
HQL acts as a universal access layer because it is available as a Java library and as a REST web service. Teams can standardize access through the service for shared, installation free usage, or embed HQL where Java based integration fits best. This enables script driven analysis and automation in MATLAB and Python with results that are ready for computation and reporting, without detours through manual file exports.
HQL supports ASAM ODS 5 and ASAM ODS 6 and can read ASAM ATFx. This helps teams keep one consistent query layer across mixed server landscapes and simplifies transitions between server generations, because query usage can stay stable while underlying connectivity changes.
HQL supports standard authentication mechanisms used in ASAM ODS environments and can integrate with enterprise authentication patterns where available, including OAuth based access with supported servers. This helps teams provide consistent access for tools, scripts, and services while keeping centralized access control in place.
HQL supports realistic client workflows that mix reading, updates, and controlled write back. Improved transaction handling provides flexibility for applications and services that need predictable session behavior, and it enables teams to implement update scenarios without having to recreate low level transaction patterns.
ASAM ODS interfaces are generic because application models vary, which often leads to verbose calling sequences for simple requests. HQL encapsulates this complexity into compact, SQL like queries that are easy to read, easy to reuse, and consistent across different ASAM ODS systems.
A good way to present this is a short HQL query first, followed by the result shape, and then the equivalent API code as a reference for developers. For example, a query such as hql aounit.name expresses a common request in one line, while the equivalent ASAM ODS call requires multiple steps to resolve model elements, attributes, and query structures.
AoSession aoSession = ...
// Get the model structure.
ApplicationStructure as = aoSession.getApplicationStructure();
ApplElemAccess aea = aoSession.getApplElemAccess();
// Get the application element.
ApplicationElement ae = as.getElementsByBaseType("aounit")[0];
T_LONGLONG aeId = ae.getId();
// Get the name attribute.
ApplicationAttribute attr = ae.getAttributeByBaseName("name");
String aeName = attr.getName();
// Create the query structure.
QueryStructureExt qse = new QueryStructureExt();
// Request the name of the unit. qse.anuSeq = new SelAIDNameUnitId[1];
AIDName aidName = new AIDName(aeId, aeName);
qse.anuSeq[0] = new SelAIDNameUnitId(aidName,
new T_LONGLONG(), AggrFunc.NONE);
// Initialize the other members of the structure.
qse.condSeq = new SelItem[0];
qse.groupBy = new AIDName[0];
qse.joinSeq = new JoinDef[0];
qse.orderBy = new SelOrder[0];
// Get the result.
ResultSetExt[] res = aea.getInstancesExt(qse, 0);
// Get the names.
String[] names = res[0].firstElems[0].values[0].value.u.stringVal();
Run HQL as a centrally available REST endpoint that provides shared access to ASAM ODS data across the organization. This is ideal for analysts using CLI, notebooks, or short scripts, and for MATLAB and Python workflows, because users do not need local installation and teams can standardize one query gateway.
Use HQL as an embedded library when you build client applications, gateways, or integration services. The structured query builder supports dynamic query generation in code and helps keep query logic maintainable across different application models and projects.
Use the command line client for quick exploration, troubleshooting, and prototyping. It is a practical way to test queries, inspect results, and iterate before you embed the same query patterns into scripts, notebooks, or applications.
HighQSoft GmbH
Black-und-Decker-Straße 17b
D-65510 Idstein