Keywords

1 Motivation

Siemens runs several service centers for power plants, each responsible for remote monitoring and diagnostics of many thousands of gas/steam turbines and associated components such as generators and compressors. Diagnosis engineers working at the service centers are informed about any potential problem detected on site. They access a variety of raw and processed data with pre-defined queries in order to isolate the problem and to plan appropriate maintenance activities. For diagnosis situations not initially anticipated, new queries are required, and an IT expert familiar with both the power plant system and the data sources in question (e.g., up to 2.000 sensors in a part of appliance and static data sources) has to be involved to formulate these queries. Thus, unforeseen situations may lead to significant delays of up to several hours or even days.

By enabling diagnosis engineers to formulate complex queries on their own with respect to an expressive domain vocabulary, IT experts will not be required anymore for adding new queries, and manual preprocessing steps can be avoided. Yet they rarely have technical skills and knowledge on formal languages for querying streams. Ontology-based visual query formulation is promising as ontologies provide higher level abstractions closer to end users’ understanding (cf. [4, 9]). Moreover, ontology-based data access (OBDA) technologies extend the reach of ontology-based querying from triple stores to relational databases (cf. [12]).

C-SPARQL [1], SPARQLstream [2], CQELS [5], and STARQL [6] are notable examples of semantic stream query languages. Although several visual tools exist for SPARQL (cf. [9]), the work is very limited for semantic stream query languages. An example is SPARQL/CQELS visual editor designed for Super Stream Collider framework [7]. However, it follows the jargon and structure of the underlying formal language closely and is not appropriate for end users.

In this demo, we present an ontology-based visual query system, namely OptiqueVQS [8], extended for a stream query language, called STARQL [6].

2 System Overview

OptiqueVQS is developed as a part of an OBDA system, Optique [4], which employs data virtualisation to enable in-place querying of legacy relational data sources over ontologies. This is realised through a set of mappings describing the relationships between the terms in the ontology and their representations in the data sources, and a query rewriting mechanisms for translating SPARQL to target language (e.g., SQL) [3, 6]. In this demo, the focus is on visual query formulation and the underlying OBDA framework is out of scope. The following overviews the STARQL query language and OptiqueVQS with stream querying.

2.1 STARQL

STARQL [6] provides an expressive declarative interface to both historical and streaming data. In STARQL, querying historical and streaming data proceeds in an analogous way and in both cases the query may refer to static data. The relevant slices of the temporal data are specified with a window. In the case of historical data, this is a window with fixed endpoints. In the case of streaming data, it is a moving window and it contains a reference to the developing time NOW and a sliding parameter that determines the rate at which snapshots of the data are taken. The contents of the temporal data are grouped according to a sequencing strategy into a sequence of small graphs that represent different states. On top of the sequence, relevant patterns and aggregations are formulated in the HAVING-clause, using a highly expressive template language. In Fig. 1, an example STARQL query is given, which asks for a train with turbine named “Bearing Assembly”, and queries for the journal bearing temperature readings in the generator. It uses a simple “echo” to display the results.

Fig. 1.
figure 1

An example diagnostic task in STARQL.

2.2 OptiqueVQS

OptiqueVQSFootnote 1 [8] is widget-based and supports three-shaped conjunctive queries. In Fig. 2, an example query is shown as a tree in the upper widget (W1), representing typed variables as nodes and object properties as arcs. Typed variables can be added to the query by using the list in the bottom-left widget (W2). If a query node is selected, the faceted widget (W3) at the bottom-right shows controls for refining the corresponding typed variable, e.g. constraining a data property. Once a restriction is set on a data property or a data property is selected for output (i.e., using the eye icon), it is reflected in the label of the corresponding node in the query graph. The user can always jump to a specific part of the query by clicking on the corresponding variable-node in W1.

Fig. 2.
figure 2

OptiqueVQS with stream querying.

Fig. 3.
figure 3

OptiqueVQS with stream querying – template selection.

In W3, dynamic properties (i.e., whose extensions are time dependent) are colored in blue and as soon as one is selected OptiqueVQS switches to STARQL mode. A stream button appears on top of the W1 and lets the user configure parameters such as slide (i.e., frequency at which the window content is updated/moves forward) and window width interval. If the user clicks on the “Result Overview” button, a template selection widget (W4) appears for selecting a template for each stream attribute, which is by default “echo” (see Fig. 3). W4 is normally used for displaying example results in the SPARQL mode. The example query depicted in Fig. 2 and Fig. 3 represents the query example given in Fig. 1 with the exception that a “range” template is selected. The user can register the query in W4 by clicking on the “Register query” button.

Several user experiments have been conducted over OptiqueVQS and the results suggest that OptiqueVQS is viable tool for end-user querying (e.g., [8, 10, 11]).

3 Demonstration Scenario

We will demonstrate OptiqueVQS over anonymised Siemens’ relational stream data gathered from numerous gas and steam turbines and a set of representative diagnostic tasks. OptiqueVQS will run over the Optique platform and attendees will be able to formulate, register, and execute stream queries.