<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Theoretical characterization of Signal Diagnostic Processing Language</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ognjen Savkovic´</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Evgeny Kharlamov</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Guohui Xiao</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gulnar Mehdi</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Elem Gu¨ zel Kalaycı</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Werner Nutt</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mikhail Roshchin</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ian Horrocks</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Free University of Bozen-Bolzano</institution>
          ,
          <addr-line>Bolzano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Siemens AG, Corporate Technology</institution>
          ,
          <addr-line>Munich</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Oxford</institution>
          ,
          <addr-line>Oxford</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper we analyze the theoretical aspects of our semantic rule language, SDRL. Inspired with an industrial collaboration, SDRL is designed to process signals from sensors installed in industrial equipment by filtering, aggregating, and combining sequences of time-stamped measurements recorded by the sensors. In our previous work, we conducted extensive experiments showing scalability of the language on real data. Here instead, we analyze theoretical properties of SDRL. In particular, we show that query answering in SDRL can be reduced to relational algebra with aggregations. To this end, we rely on recently introduced Datalognr MTL that is first order rewritable. First we introduce an extension of Datalognr MTL with aggregate functions. Then we show how to translate query answering in SDRL into the query answering in the extended language.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Large engineering and maintenance companies like Siemens typically rely on rule-based
intelligent diagnostics: diagnostic engineers create and use complex diagnostic rule-sets
to detect abnormalities during equipment run time and sophisticated analytical models
to combine these abnormalities with models of physical aspects of equipment such as
thermodynamics and energy efficacy [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>An important class of rules that are commonly used in Siemens for rule-based
equipment diagnostics are signal processing rules (SPRs). SPRs allow to filter, aggregate,
combine, and compare signals, that are time stamped measurement values, coming
from sensors installed in equipment and trigger error or notification messages when a
certain criterion has been met. Thus, sensors report temperature, pressure, vibration and
other relevant parameters of equipment and SPRs process this data and alert whenever a
certain pattern is detected. Moreover, SPRs can combine data of two types: master data
that contains train engineering specifications, results of previous diagnostic tasks, and
diagnostic event data, and operational data that contains recorded signals from sensors
installed in equipment. Data processed by SPRs is then used by analytical models in
order to ensure safety, efficiency, and to lower the maintenance costs.</p>
      <p>SPRs that are currently offered in most of existing diagnostic systems and used in
Siemens are highly data dependent in the sense that (i) data about specific characteristics
like speed, capacity, and identifiers of individual sensors and pieces of equipment are
explicitly encoded in SPRs and (ii) schema of such data is reflected in the SPRs. As a
result, for a typical simple train diagnostic task an engineer has to write from dozens to
hundreds of SPRs with hundreds of sensor tags, component codes, sensor and threshold
values and equipment configurations and design data.</p>
      <p>Example 1. Consider the diagnostic task: all door sensors indicate that the car doors are
OK, and the main train line pressure is trending upwards for more than 33 seconds.</p>
      <p>The above task can be checked by analyzing the train sensors. For instance, let us
assume that the locomotive L1 has door sensors SKNF X01, SKNF X02, SKNF X03
and SKNF X04, and let MNPRSS be the sensor that measures the main train pressure.
Further, let us assume that the task is verified as OK if the sum of the above sensors
values is equal to 16. Then, the following data dependent SPR written in a syntax similar
to the one of Siemens SPRs can be used to accomplish the task:
$CarDoorsOK = truth (sum (SKNF X01; SKNF X02; SKNF X03; SKNF X04) (1)
: value(=; 16) &amp;&amp;trend(MNPRSS; ’up’) : duration(&gt;; 0:33s))
Here $CarDoorsOK is a Boolean variable. Many of these SPRs differ only on specific
sensor identifiers and the number of speed signals to aggregate. Adapting these SPRs to
another cars will also require to change a lot of identifiers.</p>
      <p>Data dependence of SPRs poses significant challenges for diagnostic engineers in
(i) authoring, and then (ii) reuse, and (iii) maintenance of SPRs. These challenges are
common for large enterprises and Siemens is not an exception.</p>
      <p>
        In our previous work [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ], we proposed a higher-level rule language Semantic
Diagnostic Rule Language (SDRL) that allows to write SPRs and complex diagnostic
tasks in an abstract fashion by exploiting both ontological vocabulary and queries over
ontologies to identify relevant sensors and data values. We implemented SDRL in a
prototypical system and deployed an implementation in Siemens [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Also, we evaluated
usability of our solution with Siemens engineers by checking how fast they are in
formulating diagnostic tasks in SDRL. We also evaluated the efficiency of our solution in
processing diagnostic tasks over train and turbine signals in a controlled environment.
Contributions. In this work, we study the formal properties of the SDRL language.
      </p>
      <p>We prove that the reasoning tasks in SDRL programs can be rewritten into query
answering using linear algebra with aggregates (that is SQL). Further, we analyzed the
upper bound of the complexity of our problem. In particular, we measure the complexity
of the problem in the size of two main components: the program and the data. We expect,
the size of the data largely dominates the size of programs, and while the data can be huge
(typically several GBs) that the size of program can be significantly big (e.g., several
thousands of rules) thus both measures are relevant. 4</p>
      <p>
        To study the two properties from above, we encode the problem of firing a message
in SDRL into the fact-entailment problem [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] over an extended version of the recently
introduced non-recursive metric Datalog, DatalognrMTL [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. The reason for doing this
is twofold. First, DatalognrMTL (inspired by the well-studied Metric Temporal Logic
4 We point out that the notion of “rewriting into linear algebra with aggregates” is very similar
to the formal property of First-order rewritability (e.g., see [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]) but since the latter does not
consider aggregates we use the former.
(MTL) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]) provides a natural way to model rules that reason over time intervals. Second,
DatalognrMTL is a language suitable for OBDA [
        <xref ref-type="bibr" rid="ref5 ref8">5, 8</xref>
        ], that is, it has been shown how to
rewrite queries over the rules in DatalognrMTL into standard SQL over the sources [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        Still, DatalognrMTL cannot be immediately related to our language since it does not
support aggregates and some other logic constructs that we need for our encoding (in
particular, functional symbols, negation and aggregates). So first, we extend DatalogMTL
with functional symbols, aggregation, etc. under reasonable restrictions, without increasing
the complexity. Then to show that our problem is rewritable into linear algebra with
aggregates we do the following encoding. Given a program and a message rule r we
create an extended non-recursive DatalognrMTL program ;r and a proposition mr
only such that: fires r iff “entails” mr. A corollary of this gives us (i) that our
language is suitable for OBDA [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] specification (follows from the encoding); (ii) ways to
reformulate our programs and rules into SQL queries (extending the principles in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]).
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Signal Diagnostic Processing Language SDRL</title>
      <p>In this section, we introduce formally the syntax and semantics of our signal diagnostic
processing language, SDRL. To do so, we first introduce signal processing expressions that
allow one to manipulate basic signals using mathematical functions. Then we introduce
a notion of programs that allow one to compose and combine expressions, and form
message rules. Finally, we provide semantics of our language that formally defines how
SDRL should be executed.
2.1</p>
      <sec id="sec-2-1">
        <title>Signals Processing Expressions</title>
        <p>We introduce signal expressions that filter and manipulate basic signals and create new
more complex signals. Intuitively, in our language we group signals in ontological
concepts and signal expression are defined on the level of concepts. Then, a signal
processing expression is recursively defined as follows:</p>
        <p>C = Q</p>
        <p>C
agg C1
where C is a concept, Q is a CQ with one output variable, 2 f+; ; ; =g, agg 2
fmin; max; avg; sumg, 2 R, 2 f&lt;; &gt;; ; g, align 2 fwithin; after[t]; before[t]g,
t is a period, and direction 2 fup; downg. In the following we will consider well formed
sets of signal expressions, that is, sets where (i) each concept is defined at most once and
(ii) where definitions of new concepts are assumed to be acyclic: if C1 is used to define
C2 (directly or indirectly) then C1 cannot be defined (directly or indirectly) using C2.</p>
        <p>Expressions C = Q and C = fs1; : : : ; smg we call basic signal expressions and
other we call complex signal expressions.</p>
        <p>The formal meaning of signal processing expressions is defined in Table 1.
Example 2. The data-driven rules that can be used to determine that car doors function
well, as in Equation (1), can be expressed with two concepts in SDRL as follows:
DoorsLocked = sum MainCarDoors : value(=; LockedValue)</p>
        <p>PressureUp = CabinPressure : trend(’up’) : duration(&gt;; 33sec)
(2)
(3)
Here, MainCarDoors is a CQ defined over a database. For brevity we do not introduce a
new concept for each expression but we just join them with symbol “ :”. The constant
LockedValue is a parameter for analyzing door of a train, and they are instantiated from
the train configuration when the expressions are evaluated.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Diagnostic Programs and Messages</title>
        <p>We now show how to use signal expressions to compose diagnostic programs and to alert
messages.</p>
        <p>A diagnostic program (or simply program) is a tuple (S; K; M) where S is a set
of basic signals, K a KB, M a set of well formed signal processing expressions such that
each concept that is defined in M does not appear in K.</p>
        <p>
          In order to enjoy favorable semantic and computational characteristics of OBDA, we
consider well-studied ontology language OWL 2 QL that formal basis is DL-LiteR [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>On top of diagnostic programs SDRL allows to define message rules that report
the current status of a system. Formally, they are defined as Boolean combinations of
signal processing expressions:</p>
        <p>D :=</p>
        <p>C j not D1 j D1 and D2:
A message rule is a rule of the form, where D is a concept and m is a (text) message:
message(m) = D:
Example 3. Using Equations (2)–(3) we define the following message:
message(“All car doors OK”) = DoorsLocked and PressureUp:
The message intuitively indicates that the doors are functioning and locked.</p>
        <p>Now we are ready to define the semantics of the rules, expression and programs.
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>Semantics of SDRL</title>
        <p>We now define how to determine whether a program fires a rule r. To this end, we
extend first-order interpretations that are used to define semantics of OWL 2 KBs.</p>
        <p>Formally, our interpretation I is a pair (IFOL; IS ) where IFOL interprets objects
and their relationships (like in OWL 2) and IS —signals. First, we define how both
components of I interprets basic signals in S. Formally, SI = fs1I ; : : : ; sIng where IFOL
‘returns’ the signal id, i.e. sIFOL = os and IS ‘returns’ the signal itself, i.e. sIS = s.</p>
        <p>Now we can define how I interprets KBs. Interpretation of a KB KI extends
the notion of first-order logics interpretation as follows: KIFOL is a first-order logics
interpretation K and KIS is defined for objects, concepts, roles and attributes extending
SI . That is, for each object o we define oIS as s if o is the id of s from S; otherwise
C =
Q</p>
        <p>C1
C1 : value( ; )
C1 : duration( ; t0)
fs1; : : : ; smg
agg C1
all signal ids return by Q evaluated over the KB.
new signal s0 for each signal s in C1 with fs0 = fs.
new signal s0 for each signal s in C1 with fs0 (t) = fs(t)
if fs(t) at time point t; otherwise fs0 (t) = ?.
new signal s0 for each s 2 C1 with fs0 (t) = fs(t) if exists an interval
I s.t.: fs is defined I, t 2 I and size(I) t0; otherwise fs0 (t) = ?.
all enumerated signal fs1; : : : ; smg.
new signal s0 with fs0 (t) = aggs2C1 fs(t), that is, s0 is obtained from
all signals in C1 by applying the aggregate agg at each time point t.
new signal s1 from C1 if: exists a signal s2 from C2 that is aligned
with s1, i.e., for each interval I1 where fs1 is defined there is
an interval I2 where fs2 is defined s.t. I1 aligns with I2.
one signal s0 for each signal s in C1 with fs0 (t) = fs(t) if exists
an interval I around t s.t.: fs is defined I, and fs is an increasing
(decreasing) function on I for direction=up (=down resp.)
(o; f?). Then, for a concept A we define AIS = fsIS j osIFOL 2 AIFOL g. Similarly, we
define IS for roles and attributes.</p>
        <p>Finally, we are ready to define I for signal expressions and we do it recursively
following the definitions in Table 1.</p>
        <p>
          We now illustrate some of them. For example, if C = fs1; : : : ; smg, then CI =
fs1I ; : : : ; sImg; if C = Q then CIFOL = QIFOL where QIFOL is the evaluation of Q over
IFOL and CIS = fs j osIFOL 2 QIFOL g, provided that IFOL is a model of K. Otherwise we
define CI = ;. Similarly, we define interpretation of the other expressions.
Firing a Message Let be a program and ‘r : message(m) = C’ a message rule.
We say that fires message r if for each interpretation I = (IFOL; IS ) of it holds
CIFOL 6= ;, that is, the concept that fires r is not empty. Our programs and rules enjoy the
canonical model property, that is, each program has a unique (Hilbert) interpretation
[
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] which is minimal and can be constructed starting from basic signals and ontology
by following signal expressions. Thus, one can verify CIFOL 6= ; only on the canonical
model and thus one can evaluate SDRL programs and expressions in a bottom-up fashion.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Extended DatalogMTL</title>
      <p>In this part we introduce our extension of DatalogMTL . An atom A in extended
DatalogMTL is either a comparison (e.g., 0) or defined by the following grammar:
A ::= P ( 1; : : : ; m) j &gt; j</p>
      <p>A U% A0 j</p>
      <p>A S% A0 :A
%A
j
%A</p>
      <p>%A
j</p>
      <p>j j
= aggJ i j P ( 1; : : : ; m)K
%A
Here, P is a predicate, % is an interval in reals, is a term (possibly with functional
symbols), agg 2 fmin; max; avg; sumg and brackets J K denote multiset (values can
repeat). A DatalogMTL program</p>
      <p>is a finite set of rules of the following form:
A+</p>
      <p>A1 ^
^ Ak
or
?</p>
      <p>A1 ^
^ Ak;
where A+ is an atom that does not contain any ‘non-deterministic’ operators %, %, U%,
S%, negated atoms, or aggregate operators.</p>
      <p>For our purposes it is sufficient to consider non-recursive programs. Informally, that
are programs where dependency (direct or indirect) between predicates is acyclic. In fact,
it is not trivial to understand how one would even define the semantics of programs with
recursion in case of aggregates and negation. So, from now, we only consider extended
DatalogMTL programs that are non-recursive.</p>
      <p>
        In DatalogMTL , temporal operators are defined over intervals and they take the form
%, % and U%, which refer to the future, and %, % and S%, which refer to the past
where % is an interval. For example, %A is true at t iff an atom A is true in all points of
an interval % in the future from t, while %A is true at t iff there exists a point in the past
not longer than % from t where A is true. For the complete semantics of the temporal
operators and rules, please see [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>A (temporal) data instance is a finite set of facts of the form P (c)@ , where P (c) is
a ground atom and an interval. The fact P (c)@ states that P (c) holds throughout the
interval . Moreover, we simply write P (c)@t for P (c)@[t; t].</p>
      <p>Finally, every satisfiable extended Datalognr MTL program with database D has
the canonical (or minimal) model of and D, M ;D. As usual, the most important
property of canonical model is that if a fact holds in canonical model then it holds in any
other model.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Encoding into Extended DatalogMTL</title>
      <p>We start with an example of the encoding then we show the complete encoding.
Example 4 (Example of Encoding). The query in signal processing expression in
Examples 2 and 3 can be encoded in a modular way, starting from simpler to more complex
expressions. We start with the encoding rules for Example 2. First, we show how to
capture the expression “sum MainCarDoors” in (2). For that we use the following rule:</p>
      <sec id="sec-4-1">
        <title>SumMainCarDoors(car); value(car; v1)</title>
        <p>sumJv j MainCarDoors(x); value(x; v)K = v1:
Intuitively, the rule introduces a new constant car representing the “aggregated main car
door sensor” and assign the average value of all main car door sensors to it. Then, we
encode the second part of (2), value(=; LockedValue), using SumMainCarDoors with:</p>
      </sec>
      <sec id="sec-4-2">
        <title>DoorsLocked(x) SumMainCarDoors(x); value(x; v); v = LockedValue:</title>
        <p>To encode expression (3) in Example 2 we need to use temporal operators. In
particular, to encode CabinPressure : trend(‘up’) we need to copy all intervals of a signal in
CabinPressure on which the signal is trending up. For that we need universal
quantification (“ 8”). This is expressible in Datalog by two rules connected with a negation. First
we compute intervals on which a signal is not trending up with the rule:
notTrendUpCP(x)</p>
        <p>CabinPressure(x); value(x; v1); (0; ](value(x; v2); v1 &gt; v2)
Intuitively, formula (value(x; v1); (0; ](value(x; v2); v1 &gt; v2)) evaluates to true for
some value v1 at a time point t if there exists an interval of a size at most containing t
in which signal x has another value v2 that is smaller than v1. Here, a parameter is a
“small” real number and it is typically selected based on the size of signal sampling.</p>
        <p>We compute the trending-up intervals by eliminating non-trending-up time points:</p>
      </sec>
      <sec id="sec-4-3">
        <title>CabinPressureAux(fcp(x))</title>
        <p>CabinPressure(x); :notTrendUpCP(x)</p>
        <p>Here, the functional symbol fcp is used to create a new signal identifier for each x.
The values of the new signals are the same as originals and they are just copied for each
time-point that is “trending up”:
value(fcp(x); v)</p>
      </sec>
      <sec id="sec-4-4">
        <title>CabinPressureAux(fcp(x)); value(x; v)</title>
        <p>To encode the construct duration we also need temporal operators. In particular, we
encode the construct : duration(&gt;; 33sec) with the rule:</p>
      </sec>
      <sec id="sec-4-5">
        <title>PressureUp(fpu(x))</title>
        <p>[0;33s] [0;33s] CabinPressureAux(x)
Intuitively, the temporal operator [0;33s] selects “an event that lasts for the last 33s”,
and the temporal operator [0;33s] selects “an event happens within the last 33s”. The
nesting [0;33s] [0;33s] of these two operators selects the whole duration of all the events
lasting at least 33s. Similarly as above, the value is transferred with the rule:
value(fpu(x); v)</p>
      </sec>
      <sec id="sec-4-6">
        <title>PressureUp(fpu(x)); value(x; v)</title>
        <p>Finally, to encode message firingfrom Example 3 we introduce two propositionals pdl
and ppu for concepts DoorsLocked and PressureUp, respectively. In particular, pdl is true
if there exists a signal in DoorsLocked that has at least one value. And similarly for ppu.
This is encoded with the rules:
pdl
pup
[0;1)DoorsLocked;
[0;1)PressureUp;
pdl
pup
[0;1)DoorsLocked;
[0;1)PressureUp
Here, [0;1) and [0;1) are used to check if DoorsLocked has at least one signal with
value in the past or in the future, respectively. Then we encode with the firing a message:
message(“All car doors OK”)
pdl; pup
Let (S; K; M) be an SDRL program. We define a corresponding extended Datalognr MTL
program (DS;K; M) where the temporal facts DS;K encodes S and K, and the program
M encodes expressions M. In particular, for each basic signal s = (os; fs) in S:
– if fs(t) = v we add value(s; v)@t to DS;K, and
– if os is an answer of Q over KB K then we add Q(os)@(
1; +1) to DS;K.</p>
        <p>We observe that the signals can be encoded as a finite database instance is due to the
assumption that signals are step functions.</p>
        <p>
          The program M is constructed from M following the encodings in Table 2. The
encoding is obtained by using a unary predicate C for each signal processing expression
C and a binary predicate value which we describe in the next paragraphs. It is important
to note that these predicates are interpreted not like FO-predicates but using point based
semantics (e.g., C (o) is true or false for a constant o at a given time point t). For detailed
semantics of such rules see [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
        </p>
        <p>More formally, for a signal s = (os; fs), the fact C (os) is true at a time point t iff
(i) o 2 CI and (ii) fs(t) is a real number. Condition (ii) simplifies the encoding since
we do not need to define when a signal does not have a real value at a point; otherwise we
have to have the rules that encode the absence of a real value. Further, we use functional
symbols, e.g., fC , to generate fresh signal identifier. E.g., for a signal s, fC (os) represents
a new signal id obtained from s for the expression C.</p>
        <p>To store the value of a signal at a time point we use the predicate value. That is,
value(os; v) is true at point t iff fs(t) = v.</p>
        <p>The encoding rules for trend(up) and trend(down) are based on intervals. For them
we introduce a parameter , a “small” real number, that we use to select an interval
around a time point. In theory, such parameter should converge to 0 to indeed check
the trend of a real function (in fact, one needs the first derivative), however, in practice
we expect that one can select such a priori (e.g., the length of signal sampling since
signals are step functions) that is sufficiently small to check the trend of a function for a
particular time point.</p>
        <p>It is easy to observe that the extended DatalogMTL program is non-recursive.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Formal Properties</title>
      <p>In this part we state the formal properties of the encoding. First we introduce two lemmas
that characterize the encodings of auxiliary predicates value, C ’s and propositional pD’s.
Then we use them to show the main encoding theorem.</p>
      <p>The following lemma establishes the correspondence between a program and auxiliary
predicates value and C ’s.</p>
      <p>Lemma 1. Let = (S; K; M) be an SDRL program and = (DS;K; M) be
the extended DatalogMTL program as defined above. Further, let I be the canonical
interpretation for and let M be the canonical interpretation for . Then, for a signal
processing expression C and a time point t the following are equivalent:
– sI 2 CI and fs(t) = v;
– M; t j= C (os) and M; t j= value(os; v).</p>
      <p>Proof. The proof (in the both directions of “iff”) is based on induction on the number of
rules that are required to generate expression C starting from basis expressions. We show
direction “(”. The opposite one can be shown analogously.</p>
      <p>Induction Base: In this case, C is defined either with C = Q or C = fs1; : : : ; smg.</p>
      <p>Let us assume C = Q, and sI 2 CI and fs(t) = v. Since s is a basic signal, DS;K
must contain the fact value(os; v)@t. Moreover K j= Q(os) hence according to the rule
Expression C
Q
fs1; : : : ; smg</p>
      <p>C1;
C1 : value( ; )
C1 : duration( ; t)
C1 : duration(&lt;; t)
.</p>
      <p>C (fC (x)) C1 (x); : ( [0;t]( [0;t] C1 (x)).
value(fC (x); v) C (fC (x)); value(x; v):
C (c); value(c; v) v = aggJv1 j value(x; v1); C1 (x)K,
where c is a fresh constant, aggJ K is an aggregation operator over bags
C (fC (x1))
value(fC (x1); v)</p>
      <p>C1 (x1) U[0;1) (: C1 (x1) ^ : C2 (x2)) U[0;t] C2 (x2) :</p>
      <p>C (fC (x1)); value(x1; v)
C (fC (x1))
value(fC (x1); v)</p>
      <p>C1 (x1) S[0;1) (: C1 (x1) ^ : C2 (x2)) S[0;t] C2 (x2) :</p>
      <p>C (fC (x1)); value(x1; v)
C (fC (x1))</p>
      <p>C1 (x1) ^ C2 (x2) S[0;1) (: C1 (x1))</p>
      <p>U[0;1) : C1 (x1) :
value(fC (x1); v)</p>
      <p>C (fC (x1)); value(x1; v):
C (fC (x)) C1 (x); : notTrendUpC1 (x)
notTrendUpC1 (x) C1 (x); value(x; v1); (0; ](value(x; v2); v1 &gt; v2)</p>
      <p>where is a “small enough” positive real number
value(fC (x); v) C (fC (x)); value(x; v):
C (fC (x)) C1 (x); : notTrendDownC1 (x)
notTrendDownC1 (x) value(x; v1); (0; ](value(x; v2); v1 &lt; v2)</p>
      <p>where is a “small enough” positive real number
value(fC (x); v) C (fC (x)); value(x; v):
Encoding of D
pD
pD
pD
pD1 ; pD2 :
:pD1 :
[0;1) C (x):
pD
[0;1) C (x):
message(m) = D
message(m)</p>
      <p>pD:
C (x) Q(x); value(x; v) we have that M; t j= C (os). Since, value(x; v)@t 2 DS;K
we also have that M; t j= value(os; v).</p>
      <p>Assume now that C = fsi; : : : ; smg and s = si for some i. Then it must be sI 2 CI .
Next, let us assume that fs(t) = v. Since s is a basic concept, we have that value(os; v)@t
is in DS;K, and thus M; t j= value(os; v). Further, following the encoding rule for C,
C (x) value(x; v), we have that M; t j= C (os).</p>
      <p>Induction Step: Consider now that C is an expression that is created by other
expressions in at most n + 1. For example, let us assume that C C1 : duration( ; t0).
Induction step for the other rules can be shown analogously.</p>
      <p>We assume that sI 2 CI and fs(t) = v for some t and v. Since C is created from
C1 then it must exists s1 such that os = fC (os1 ) and fs1 (t) = v for some interval I that
contains t and is longer t0. Since, C1 is created in at most n steps by induction hypothesis
we have that M; t j= C1 (os1 ) and M; t j= value(os1 ; v). Now we analyze the encoding
rule C (fC (x)) [0;t0] [0;t0] C1 (x). Intuitively, the body of the rule evaluates to
true for some x if there exists a time point in the “past” of t (expressed with condition
[0;t0]) contained in an interval of size t0 (expressed with condition [0;t0]) such that on
that interval C1 (x) is true, i.e, M; t00 j= C1 (x) for all t00 2 I. Since I is such interval
for which C1 (os1 ) is true, we have that encoding rule fires and makes C (fS (os)) true
at point t, i.e., M; t j= C (fS (os1 )). Furthermore, from the rule value(fC (x); v)
C (fC (x)); value(x; v) and the fact that M; t j= C (fS (os1 )); value(s1; v) it holds that
M; t j= value(fC (os1 ); v). This concludes the proof.</p>
      <p>The following lemma defines a correspondence between a Boolean combinations of
signal processing expressions and their encoding rules.</p>
      <p>Lemma 2. Let = (S; K; M) be an SDRL program and = (DS;K; M) be the
extended Datalognr MTL program as defined above. Further, let I be the canonical
interpretation for and M be the canonical interpretation for . Then, for a Boolean
combination of signal processing expression D we have that the following is equivalent:
DI is true
iff</p>
      <p>M; t j= pD for any time point t
Proof. The proof is based on induction on the size of D.</p>
      <p>Induction Base: We assume D = C for complex expression C and assume DI is
true. Then there must exists a signal s such os 2 CI which has at least one value v at
some time point t. From Lemma 1 we have that M; t j= C (os). Thus, from the encoding
rule pD C (x) we have that M; t j= pD.</p>
      <p>Induction Step: We prove induction step for the case D = D1 and D2. Similarly, it
can be shown in case D = :D1. Assume that D is true in I, then also D1 and D2 are
true. Since D1 and D2 are constructed in less steps then D by induction hypothesis we
have that M; t j= pD1 and M; t j= pD2 . Hence, M; t j= pD.</p>
      <p>For an extended DatalogMTL program , ground atom A and a time point t we
define that j= A@t for the canonical model M of it holds M; t j= A Then, directly
from Lemmas 1 and 2 we have the following theorem.</p>
      <p>Theorem 1 (Encoding Theorem). Let be a program and r a message rule. Let
the extended DatalogMTL that encodes as described above and let the grounded
propositional mr be the head of DatalogMTL rule encoding r. Then:
fires r
iff</p>
      <p>
        It is not hard to show the ideas of Theorem 5 in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] can be carried to the extended
Datalognr MTL programs and thus preserve computational properties required by OBDA.
Formally, that means that data complexity [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] for the fact-entailment problem is in AC0.
      </p>
      <p>
        The second observation is that we can extend rewriting techniques developed for
Datalognr MTL in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] that allow us to rewrite our rules into standard SQL. More involving
part of rewriting lies on rewriting algebra of intervals, and for more details we refer [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
Rewriting that includes functional symbols, negation, aggregation, and built-in arithmetic
can be done straightforwardly.
      </p>
      <p>Let be an extended Datalognr MTL program, D a set of facts and A an grounded
atom. As usual, ; D j= A@t for some time point t holds if for the canonical model M
of [ D it holds M; t j= A. The decision problem success is the problem of checking
whether ; D j= A@t. We refer to program (resp. data) complexity if all parameters are
fixed except the program (resp. set of facts).</p>
      <p>Lemma 3. Success problem for extended Datalognr MTL programs is PSPACE-complete
in combined and program complexity and in AC0 in data complexity.</p>
      <p>
        Proof (Proof Idea). Hardness follows from Theorem 5 in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. To show membership it is
sufficient to observe that each derivation in an extended Datalognr MTL program is of
length polynomial in the size of the program. Thus it is in PSPACE.
      </p>
      <p>From Lemma 3 and Theorem 1 we have the following.</p>
      <p>Theorem 2. The problem of checking whether a message rule is fired is
PSPACEcomplete (it is complete already in size of rule signal expressions), and it is in AC0 in the
size of signal data and ontological data.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Related Work</title>
      <p>
        In the Semantic Web community it is common to use rule-based ontological languages
such as SWRL [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], OWL 2 RL [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], SPIN [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and SHACL Rules [
        <xref ref-type="bibr" rid="ref13 ref14 ref15">13–15</xref>
        ] for analytics.
Compared with SDRL, these languages cannot be directly used in the context of signal
analysis as they do not support reasoning of values over the temporal dimension.
      </p>
      <p>
        Works in [
        <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
        ] introduce analytical operations directly into ontological rules
in such a way that OBDA scenario is preserved. They define analytical functions on
concepts, e.g. avg C, in OBDA setting. However, the authors do not consider temporal
dimension of the rules.
      </p>
      <p>
        As discussed above, our work is strongly related to the work on well-studied Metric
Temporal Logic [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. In particular, we use a non-trivial extension of non-recursive
Datalog language DatalognrMTL which is suitable for OBDA scenario.
      </p>
      <p>
        Another related direction is real-time processing of signal data streams. In this
direction, most of the work done so far mainly focused on querying RDF stream data. Many
different approaches such as C-SPARQL [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], SPARQLstream [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and CEQLS [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]
have surfaced in recent years, introducing SPARQL based query processors. Most of
them, apart from C-SPARQL, follow the Data Stream Management Systems (DSMSs)
paradigm and do not provide support for stream reasoning. EP-SPARQL [22] combines
SPARQL with complex event processing features, and includes sequencing and
simultaneity operators. Unlike the others, LARS [23] is an Answer Set Programming based
framework, which enables reasoning by compiling a Knowledge Base together with a
SPARQL-like query into a more expressive logic program.
      </p>
      <p>Acknowledgments This research is supported by the EPSRC projects MaSI3, DBOnto,
ED3; and by the Free University of Bolzano projects QUEST, OBATS and ROBAST.
22. D. Anicic, P. Fodor, S. Rudolph, N. Stojanovic, EP-SPARQL: a unified language for event
processing and stream reasoning, in: WWW, 2011, pp. 635–644.
23. H. Beck, M. Dao-Tran, T. Eiter, M. Fink, LARS: A logic-based framework for analyzing
reasoning over streams, in: AAAI, 2015, pp. 1431–1438.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>G.</given-names>
            <surname>Vachtsevanos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. L.</given-names>
            <surname>Lewis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roemer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hess</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <article-title>Intelligent Fault Diagnosis and Prognosis for Engineering Systems</article-title>
          , Wiley,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>E.</given-names>
            <surname>Kharlamov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Savkovic</surname>
          </string-name>
          , G. Xiao,
          <string-name>
            <given-names>R.</given-names>
            <surname>Penaloza</surname>
          </string-name>
          , G. Mehdi, I. Horrocks,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roshchin</surname>
          </string-name>
          ,
          <article-title>Semantic rules for machine diagnostics: Execution and management</article-title>
          ,
          <source>in: CIKM</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>G.</given-names>
            <surname>Mehdi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Kharlamov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Savkovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Xiao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. G.</given-names>
            <surname>Kalaycı</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Brandt</surname>
          </string-name>
          , I. Horrocks,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roshchin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Runkler</surname>
          </string-name>
          ,
          <article-title>Semantic rule-based equipment diagnostics</article-title>
          ,
          <source>in: ISWC</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>314</fpage>
          -
          <lpage>333</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>G.</given-names>
            <surname>Mehdi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Kharlamov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Savkovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Xiao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. G.</given-names>
            <surname>Kalaycı</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Brandt</surname>
          </string-name>
          , I. Horrocks,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roshchin</surname>
          </string-name>
          , T. Runkler,
          <article-title>Semantic rules for siemens turbines</article-title>
          ,
          <source>in: ISWC (Posters and Demos)</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          , G. De Giacomo,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lembo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lenzerini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Rosati</surname>
          </string-name>
          ,
          <article-title>Tractable reasoning and efficient query answering in description logics: The DL-Lite family</article-title>
          ,
          <source>JAR</source>
          <volume>39</volume>
          (
          <issue>3</issue>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>E.</given-names>
            <surname>Dantsin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Gottlob</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Voronkov</surname>
          </string-name>
          ,
          <article-title>Complexity and expressive power of logic programming</article-title>
          ,
          <source>ACM Comput. Surv</source>
          .
          <volume>33</volume>
          (
          <issue>3</issue>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>S.</given-names>
            <surname>Brandt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. G.</given-names>
            <surname>Kalaycı</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kontchakov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ryzhikov</surname>
          </string-name>
          , G. Xiao,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zakharyaschev</surname>
          </string-name>
          ,
          <article-title>Ontologybased data access with a horn fragment of metric temporal logic</article-title>
          ,
          <source>in: AAAI</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lembo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          , G. De Giacomo,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lenzerini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Rosati</surname>
          </string-name>
          ,
          <article-title>Linking data to ontologies</article-title>
          ,
          <source>J. Data Semantics</source>
          <volume>10</volume>
          (
          <year>2008</year>
          )
          <fpage>133</fpage>
          -
          <lpage>173</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>F.</given-names>
            <surname>Baader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. L.</given-names>
            <surname>McGuinness</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Nardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Patel-Schneider</surname>
          </string-name>
          (Eds.),
          <source>The Description Logic Handbook: Theory</source>
          , Implementation, and
          <string-name>
            <surname>Applications</surname>
          </string-name>
          , Cambridge University Press, New York, NY, USA,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. I. Horrocks,
          <string-name>
            <given-names>P.</given-names>
            <surname>Patel-Schneider</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Boley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tabet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Grosof</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dean</surname>
          </string-name>
          ,
          <string-name>
            <surname>SWRL:</surname>
          </string-name>
          <article-title>A semantic web rule language combining OWL and RuleML</article-title>
          , W3C Member Submission,
          <source>World Wide Web Consortium</source>
          (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>B.</given-names>
            <surname>Motik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. C.</given-names>
            <surname>Grau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Horrocks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fokoue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lutz</surname>
          </string-name>
          ,
          <article-title>Owl 2 web ontology language: Profiles, W3C Recommendation</article-title>
          , World Wide Web Consortium, http://www.w3.org/TR/owl2- profiles/ (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. H.
          <string-name>
            <surname>Knublauch</surname>
            ,
            <given-names>J. A.</given-names>
          </string-name>
          <string-name>
            <surname>Hendler</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Idehen</surname>
          </string-name>
          ,
          <article-title>Spin - overview and motivation, W3C member submission</article-title>
          (
          <year>February 2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. W3C,
          <article-title>SHACL advanced features</article-title>
          , W3C working group note,
          <source>W3C (June</source>
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>J. Corman</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          <string-name>
            <surname>Reutter</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Savkovic</surname>
          </string-name>
          ,
          <article-title>Semantics and validation of recursive SHACL</article-title>
          , in: ISWC,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>J. Corman</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          <string-name>
            <surname>Reutter</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Savkovic</surname>
          </string-name>
          ,
          <article-title>Tractable notion of stratification for SHACL</article-title>
          , in: ISWC,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. E.
          <string-name>
            <surname>Kharlamov</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <article-title>Jime´nez-</article-title>
          <string-name>
            <surname>Ruiz</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Zheleznyakov</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Bilidas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Giese</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Haase</surname>
            , I. Horrocks,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Kllapi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Koubarakis</surname>
            ,
            <given-names>O</given-names>
          </string-name>
          <string-name>
            <surname>¨ . L</surname>
          </string-name>
          . O¨ zc¸ep, M.
          <string-name>
            <surname>Rodriguez-Muro</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Rosati</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Schlatte</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Soylu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Waaler</surname>
          </string-name>
          ,
          <article-title>Optique: Towards OBDA systems for industry</article-title>
          ,
          <source>in: ESWC Satellite Events</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. E. Kharlamov,
          <string-name>
            <given-names>N.</given-names>
            <surname>Solomakhina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O</given-names>
            <surname>¨. L</surname>
          </string-name>
          . O¨zc¸ep, D. Zheleznyakov,
          <string-name>
            <given-names>T.</given-names>
            <surname>Hubauer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lamparter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roshchin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Soylu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Watson</surname>
          </string-name>
          ,
          <article-title>How semantic technologies can enhance data access at siemens energy</article-title>
          ,
          <source>in: ISWC</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>601</fpage>
          -
          <lpage>619</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>R.</given-names>
            <surname>Koymans</surname>
          </string-name>
          ,
          <article-title>Specifying real-time properties with metric temporal logic, Real-Time Syst</article-title>
          .
          <volume>2</volume>
          (
          <issue>4</issue>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>D. F. Barbieri</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Braga</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>E. D.</given-names>
          </string-name>
          <string-name>
            <surname>Valle</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Grossniklaus</surname>
            ,
            <given-names>C-</given-names>
          </string-name>
          <article-title>SPARQL: a continuous query language for RDF data streams</article-title>
          ,
          <source>Int. J. Semantic Computing</source>
          <volume>4</volume>
          (
          <issue>1</issue>
          ) (
          <year>2010</year>
          )
          <fpage>3</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>J. Calbimonte</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Jeung</surname>
            ,
            <given-names>O</given-names>
          </string-name>
          <string-name>
            <surname>´ . Corcho</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Aberer</surname>
          </string-name>
          ,
          <article-title>Enabling query technologies for the semantic sensor web</article-title>
          ,
          <source>Int. J. Semantic Web Inf. Syst</source>
          .
          <volume>8</volume>
          (
          <issue>1</issue>
          ) (
          <year>2012</year>
          )
          <fpage>43</fpage>
          -
          <lpage>63</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>D. L. Phuoc</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Dao-Tran</surname>
            ,
            <given-names>J. X.</given-names>
          </string-name>
          <string-name>
            <surname>Parreira</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Hauswirth</surname>
          </string-name>
          ,
          <article-title>A native and adaptive approach for unified processing of linked streams and linked data</article-title>
          ,
          <source>in: ISWC</source>
          ,
          <year>2011</year>
          , pp.
          <fpage>370</fpage>
          -
          <lpage>388</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>