<!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>Integrating Semantic Knowledge in Data Stream Processing</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Simon Beckstein</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ralf Bruns</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jurgen Dunkel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Leonard Renners</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Applied Sciences and Arts Hannover</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Complex Event Processing (CEP) has been established as a well-suited software technology for processing high-frequent data streams. However, intelligent stream based systems must integrate stream data with semantical background knowledge. In this work, we investigate di erent approaches on integrating stream data and semantic domain knowledge. In particular, we discuss from a software engineering perspective two di erent architectures: an approach adding an ontology access mechanism to a common Continuous Query Language (CQL) is compared with C-SPARQL, a streaming extension of the RDF query language SPARQL.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Nowadays, much information is provided in form of data streams: sensors,
software components and other sources are continuously producing ne-grained data
that can be considered as streams of data. Examples of application elds
exploiting data streams are tra c management, smart buildings, health monitoring, or
nancial trading. Intelligent decision support systems analyze stream data in
real-time to diagnose the actual state of a system allowing adequate reactions
on critical situations.</p>
      <p>
        In recent years, Complex Event Processing (CEP) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] has been established as
a well-suited software technology for dealing with high frequent data streams. In
CEP each data item in a stream is considered as an event. CEP uses Continuous
Query Languages (CQL) to describe patterns in event streams, which de ne
meaningful situations in the application domain.
      </p>
      <p>However, for understanding the business meaning of stream data, the data
items must be enriched with semantical background knowledge. For instance
in tra c management, velocity measures must be related to speci c knowledge
about the road network (e.g. road topology and speed limits). In contrast to
data streams, this background or domain knowledge is usually rather static and
stable, i.e. without frequent changes.</p>
      <p>
        Ontologies de ned by Description Logic (DL) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] provide a well-known
formalism for knowledge representation, that can also be used for describing
background knowledge. DL distinguishes two di erent aspects: (1) the TBox
contains terminological or domain concepts, and (2) the ABox de nes assertional
knowledge or individuals of the concepts that are de ned in the TBox.
Common languages for describing semantic knowledge are the Resource Description
Framework (RDF) for the TBox and the Ontology Language OWL1 for the
ABox. SPARQL [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] provides a standard query language for retrieving
knowledge represented in form of RDF data.
      </p>
      <p>Note that SPARQL was originally developed to process static data and is
therefore not suitable for the processing of data streams. Otherwise, conventional
CEP languages provide no inherent concepts for accessing ontological knowledge.</p>
      <p>In this work, we will investigate di erent approaches on how to integrate
data stream processing and background knowledge bases. In particular, we will
discuss two di erent aspects from a software engineering perspective:
{ How can CQL languages provided by standard CEP systems make use of
ontology models?
{ How useful are recently proposed streaming extensions of SPARQL such as
C-SPARQL?</p>
      <p>The remainder of the paper is organized as follows. The next section discusses
related work and other research approaches. Subsequently, section 3 introduces
brie y CEP. Then, section 4 discusses the di erent types of information that can
be exploited in stream based systems. The following sections 5 and 6 describe
and compare two di erent approaches of integrating background knowledge into
stream processing: The rst approach adds an ontology access mechanism to a
common CQL-based architecture. The second one uses C-SPARQL, a streaming
extension of SPARQL. The nal section 7 provides some concluding remarks and
proposes an outlook for further lines on research.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>In practice, nearly all stream processing systems are using a proprietary
Continuous Query Language (CQL). At present, many mature implementations of
event processing engines already exist. Some well-known representatives are
ESPER2, JBoss Drools Fusion3 or Oracle CEP4. As already discussed, none of
these engines neither target nor support a built-in way to integrate semantic
background knowledge.</p>
      <p>
        Another class of approaches target the integration of RDF ontologies with
stream processing. Di erent SPARQL enhancements have been developed in
order to query continuous RDF streams. Basically, they all extend SPARQL by
sliding windows for RDF stream processing:
{ C-SPARQL provides an execution framework using existing data
management systems and triple stores. Rules distinguish a dynamic and a static part,
which are evaluated by a CQL and a SPARQL engine, respectively [
        <xref ref-type="bibr" rid="ref4 ref5">5, 4</xref>
        ].
1 http://www.w3.org/TR/2012/REC-owl2-primer-20121211/
2 http://esper.codehaus.org/
3 http://jboss.org/drools/drools-fusion.html
4 http://oracle.com/technetwork/middleware/complex-event-processing
{ Streaming-SPARQL simply extends a SPARQL engine to support window
operators [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
{ EP-SPARQL is used with ETALIS, a Prolog based rule engine. The
knowledge (in form of RDF) is transformed into logic facts and the rules are
translated into Prolog rules [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ].
{ CQELS introduces a so called white-box approach, providing native
processing of static data and streams by using window operators and a triple-based
data model [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Beside SPARQL extensions, various proprietary CEP languages have been
proposed for integrating stream processing and ontological knowledge: For
instance, Teymourian et. al. present ideas on integrating background knowledge
for their existing rule language Prova5 (with a corresponding event processing
engine) [
        <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
        ].
      </p>
      <p>In summary, many proposals for SPARQL dialects or even new languages
have been published, but so far not many results of practical experiments have
been proposed.</p>
      <p>This paper examines two di erent approaches for integrating RDF and stream
data from a software engineering perspective. First, we extend the well-known
CQL of ESPER with mechanisms for accessing RDF ontologies. Then, this
approach is compared with C-SPARQL, one of the SPARQL extensions that
integrates SPARQL queries and stream processing.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Complex Event Processing - Introduction</title>
      <p>
        Complex Event Processing (CEP) is a software architectural approach for
processing continuous streams of high volumes of events in real-time [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Everything
that happens can be considered as an event. A corresponding event object
carries general metadata (event ID, timestamp) and event-speci c information, e.g.
a sensor ID and some measured data. Note that single events have no special
meaning, but must be correlated with other events to derive some understanding
of what is happening in a system. CEP analyses continuous streams of incoming
events in order to identify the presence of complex sequences of events, so called
event patterns.
      </p>
      <p>A pattern match signi es a meaningful state of the environment and causes
either creating a new complex event or triggering an appropriate action.</p>
      <p>Fundamental concepts of CEP are an event processing language (EPL), to
express event processing rules consisting of event patterns and actions, as well as
an event processing engine that continuously analyses event streams and executes
the matching rules. Complex event processing and event-driven systems generally
have the following basic characteristics:
5 https://prova.ws/
{ Continuous in-memory processing : CEP is designed to handle a consecutive
input stream of events and in-memory processing enables real-time
operations.
{ Correlating Data: It enables the combination of di erent event types from
heterogenous sources. Event processing rules transform ne-grained simple
events into complex (business) events that represent a signi cant meaning
for the application domain.
{ Temporal Operators: Within event stream processing, timer functionalities as
well as sliding time windows can be used to de ne event patterns representing
temporal relationships.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Knowledge Base</title>
      <p>In most application domains, di erent kinds of knowledge and information can be
distinguished. In the following, the di erent types of knowledge are introduced
by means of a smart building scenario:6 An energy management system that
uses simple sensors and exploits the background knowledge about the building,
environment and sensor placement.</p>
      <p>The main concepts used in the knowledge base are rooms and equipment,
such as doors and windows of the rooms. Rooms and equipment can be attached
with certain sensors measuring the temperature, motion in a room or the state of
a door or a window, respectively. By making use of this background information,
the raw sensor data can be enriched and interpreted in a meaningful manner. For
instance, room occupancies due to rescheduled lectures or ad-hoc meetings can
be identi ed for achieving a situation-aware energy management. In this sample
scenario, we can identify three types of knowledge classi ed according to their
di erent change frequencies:
1. Static knowledge: We de ne static knowledge as the knowledge about the
static characteristics of a domain, that almost never or very infrequently
changes. A typical example in our scenario is the structure of a building and
the sensor installation.</p>
      <p>
        Static knowledge can be modeled by common knowledge representation
formalisms such as ontologies. Because this information does usually not change,
appropriate reasoners can derive implicit knowledge before the start of the
stream processing. OWL can serve as a suitable knowledge representation
language that is supported by various reasoners, for example KAON27 or
FaCT++8.
2. Semi-dynamic knowledge: We consider semi-dynamic knowledge as the
knowledge about the expected dynamic behavior of a system. It can be
represented by static knowledge models, e.g. ontologies, as well. In our scenario,
a class schedule predicts the dynamic behavior of the building: though the
6 More details about the smart building scenario can be found in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
7 http://kaon2.semanticweb.org/
8 http://owl.man.ac.uk/factplusplus/
class schedule can be de ned by static data (e.g facts in an ontology), it
causes dynamic events, e.g. each monday at 8:00 a 'lecture start' event. Of
course, real-time data produced by sensor could outperform the predicted
behavior, e.g. if a reserved class room is not used.
3. High-dynamic knowledge: The third type of knowledge is caused by
unforseeable incidents in the real world. It expresses the current state of the
real world and cannot be represented by a static ontology. Instead the
current state has to be derived from continuous stream of incoming data. This
type of knowledge can be described by an event model specifying the types
of valid events.9 Examples in our scenario are sensor events representing
observations in the physical world, e.g. motion, temperature, or the state of a
window or door, respectively.
      </p>
      <p>The three knowledge types introduced above provide only a basic classi
cation scheme. As already discussed in the introduction (section 1), various types
of information must be integrated and correlated in order to derive complex
events that provide insight to the current state of a system.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Using Semantic Knowledge in Event Processing</title>
      <p>In this section, we will investigate how the di erent types of knowledge
introduced above can be integrated in stream processing { in particular, how
ontological knowledge can be exploited in stream processing.</p>
      <p>We start our discussion with a small part of an ontology for our energy
management scenario (see Figure 1). This sample ontology is used in the
following paragraphs for discussing the di erent knowledge integration approaches.
The model de nes the three concepts 'room', 'sensor' and 'equipment' and their
relationships. It shows that each room can contain sensors and equipment.
Furthermore, it speci es that a certain sensor is either directly located in a certain
room or attached to an equipment located in a room.</p>
      <p>Note that the location of a sensor can be inferred from the location of the
equipment it is attached to. The dashed line describes this implicit property,
which can be expressed as role composition in Description Logic:
isAttacedT o ○ IsEquippedIn ⊑ hasLocation: A DL role composition can be
considered as a rule: If a sensor is attached to an equipment and the equipment
is equipped in a certain room, then the sensor is assumed to be located in the
same room.</p>
      <p>Listing 1.1 de nes two individuals (Window362 and an attached contact
sensor C362W ) using the RDF turtle notation10 . Using the above presented
DL rule, it can be inferred that the contact sensor is located in room 362 and
the triple (:C362W :hasLocation :Room362) can be added to the knowledge
base.</p>
      <p>In the same way, further role and concept characteristics of the ontology can
be used for reasoning purposes.
9 Note that such an event model can also be formally de ned by an OWL ontology.
10 http://www.w3.org/TR/turtle/
As a rst approach of integrating stream data and background knowledge we
have chosen the established event processing engine ESPER. Since it is a regular
CQL based engine it does not natively support the access of additional knowledge
bases. Figure 2 depicts the conceptional architecture of the approach. Di erent
event sources send streams of events via message channels to the ESPER CEP
engine. The event sources provide all events in a format that is processable
by ESPER, for instance simple Java objects (POJOS). The cycle within the
engine should denote that the events are processed in several stages. Each stage
transforms relatively simple incoming events into more complex and meaningful
events.</p>
      <p>Knowledge Access: As already mentioned, ESPER does not inherently
support a speci c access to a knowledge base such as an OWL ontology, but it
provides a very general extension mechanism that allows invoking static Java
methods within an ESPER rule. Such methods can be used for querying a Java
domain model, a database or any other data source. To make our OWL domain
model accessible from ESPER rules, we implemented an adapter class that uses
the Jena Framework11 to query the ontology via SPARQL.</p>
      <p>Events: Because ESPER can only process Java objects, the adapter has to map
RDF triples to Java objects. For instance, the mapping transforms an RDF-URI
identifying a sensor to an ID in the Java object. Each Java class corresponds
with a certain concept of the ontology TBox.</p>
      <p>Queries: ESPER provides its own event processing language that is called
ESPER Event Query Language (EQL). EQL extends SQL with temporal operators
and sliding windows. A simple example is given in Listing 1.2 that shows how
motion in a certain room is detected by an ESPER query.</p>
      <p>SELECT room
FROM pattern [ every mse = MotionSensorEvent ],
method : Adapter . getObject ( mse . sensorID )
AS room</p>
      <p>Listing 1.2. A sample ESPER query</p>
      <p>Actions triggered by a pattern match are implemented in a listener class that
must be registered for an ESPER rule. A listener can call any event handling Java
method or create a new complex event. The example rule looks rather simple,
because the access to the knowledge base is hidden behind the method call
(here: Adapter.getObject(mse.sensorID)). In our case, the adapter executes
a SPARQL query using the Jena framework as shown in Listing 1.3.
11 http://jena.apache.org
PREFIX : &lt; http :// eda . inform .fh - hannover . de / sesame . owl &gt;
PREFIX rdf : &lt; http :// www . w3 . org /1999/02⤦</p>
      <p>Ç/22 - rdf - syntax - ns #&gt;
SELECT ? room ? object
WHERE { :"+ sensorID +" : isAttachedTo ? object ;</p>
      <p>: hasLocation ? room .
}
Listing 1.3. SPARQL query in the Jena-Adapter method Adapter.getObject(sensorID)
5.2</p>
      <p>
        C-SPARQL
As an alternative approach, we investigate a software architecture using
CSPARQL12, a streaming extension of SPARQL. Figure 3 illustrates the main
building blocks of the architecture. The main di erence to the previous approach
is, that all event sources produce a continuous stream of RDF data. This means
that the entire knowledge base of the system uses RDF as uniform description
formalism.
Knowledge access: In this approach, C-SPARQL queries are used for accessing
the homogeneous RDF knowledge base. A single C-SPARQL query can combine
incoming RDF streams with static background knowledge (also represented in
RDF).
12 We used the 'ReadyToGoPack', an experimental implementation of the concept in
[
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ], available on http://streamreasoning.org
Events: The events themselves arrive as continuous streams of RDF triples.
To allow stream processing with RDF triples, they must be extended with a
timestamp. Thus, each event can be described by a quadruple of the following
form:
      </p>
      <p>(⟨subji; predi; obji⟩; ti)
The subject is a unique event identi er, the predicate and object describe event
properties. The timestamp is added by the engine and describes the point of time
the event arrived. Listing 1.4 shows a set of RDF triples describing a simpli ed
temperature sensor event.
: event123 rdf : type</p>
      <p>ÇTemperatureSensorEvent
: event123 : hasSensorId
: event123 : hasValue
:3432
24.7^^ xsd : double</p>
      <p>:⤦</p>
      <p>Listing 1.4. A sample temperature event
Queries: C-SPARQL queries are syntactically similar to SPARQL. Listing 1.5
shows a C-SPARQL query expressing the same pattern as the ESPER query in
Listing 1.2. In contrast to SPARQL, it provides language extensions for temporal
language constructs like (sliding) time and batch windows as shown at the end
of the FROM STREAM-clause. The FROM-clause selects the various data streams
SELECT ? room
FROM STREAM &lt; http :// eda . inform .fh - hannover . de /⤦
ÇMotionSensorEvent . trdf &gt;⤦
Ç[ RANGE 10 s STEP 1s]
FROM &lt; http :// eda . inform .fh - hannover . de⤦</p>
      <p>Ç/ sesame . owl &gt;
WHERE {
? mEvent rdf : type : MotionSensorEvent ;</p>
      <p>: hasSensorID ? sid .</p>
      <p>? sid : hasLocation ? room .
}</p>
      <p>Listing 1.5. A sample C-SPARQL query
that are processed in the query. Each C-SPARQL query can either generate new
triples that can be processed by another query or call a (Java) listener class to
trigger an action.</p>
      <p>An interesting point to mention is that the C-SPARQL engine internally
transforms the query into a dynamic part dealing with the event stream
processing and a static part accessing the background knowledge. These parts are
each individually executed by a suitable engine or query processor. This
behavior is transparent for the user as the entire rule is written in C-SPARQL and the
rule result contains the combined execution outcome.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Comparison</title>
      <p>In this section, we will investigate the capabilities of two introduced approaches
of integrating stream processing and background knowledge. Based on our
practical experiences, we discuss the two architectures from a software engineering
perspective. Table 1 summarizes the results of the comparison. The criteria will
be discussed in more details in the following paragraphs.
Maturity: ESPER is a widely used event processing engine, which is under
development by an active open source community for many years and,
consequently, has reached a stable and market-ready state. It provides a
comprehensive documentation and several guides, as well as tutorials. In contrast,
CSPARQL, and the ready-to-go-pack in particular, is a conceptual prototype. This
means that the implementation is not as mature and, furthermore, it is not as
good documented as ESPER. So far, there are no published experiences about
real-world projects using C-SPARQL.</p>
      <p>Event Pattern Expressiveness: According to its maturity, ESPER provides a
rich set of operators for specifying event patterns, e.g. for de ning di erent types
of sliding windows or various even aggregations operators. The event algebra of
C-SPARQL is less expressive compared to ESPER, but, nevertheless, it supports
all important features for general event processing tasks.</p>
      <p>Conceptual Coherence: C-SPARQL allows the processing of stream data and
the integration of static background knowledge by using only one paradigm (or
language). Listing 1.5 shows a C-SPARQL query that combines event stream
processing and SPARQL queries. In this sense, a C-SPARQL query is self-contained
and coherent: only C-SPARQL skills are necessary for understanding it.</p>
      <p>In contrast, ESPER does not support inherent access to knowledge bases.
Consequently, specialized Java/Jena code must be written to integrate
background data. The ESPER-based architecture combines the ESPER query
language (EQL) for stream processing and Jena/SPARQL code implemented in a
Java adapter class to query knowledge bases. The ESPER rules are not
selfcontained and delegate program logic to the adapter classes. Note that this can
also be viewed as an advantage: hiding a (perhaps) big part of the logic in method
calls results in simpler and easier understandable rules.</p>
      <p>Dynamic Rules: Changing a rule at runtime is di cult in ESPER, because
modifying an ESPER rule can cause a change of the EQL pattern and of the
SPARQL query in the listener class of the corresponding rule. In this case, the
code must be recompiled. C-SPARQL makes changes much easier, because only
the C-SPARQL query must be adjusted. Such queries are usually stored as
strings in a separate le, which can be reloaded at runtime - even for rules
including completely new queries of the knowledge base.</p>
      <p>Heterogeneous knowledge sources: C-SPARQL is limited to ontological
background knowledge stored in RDF format. In contrast, ESPER can be extended
by arbitrary adapters allowing the usage of di erent knowledge sources. For
instance, beside RDF triple stores also relational databases or NoSQL data sources
can be used. However, the access methods have to be implemented and
maintained by hand, as mentioned in the previous paragraph.</p>
      <p>Stream Reasoning Support: Both approaches do not support stream
reasoning, i.e. implicit knowledge is not automatically deduced when new events
arrive. Conventional reasoners can only deal with static data, but not with
highfrequent RDF streams. But, because (static) background knowledge changes
infrequently, a conventional reasoning step can be processed, if a new fact in the
static knowledge base appears.</p>
      <p>
        Considering the two approaches from a conceptional point of view, C-SPARQL
is better suited for inherent reasoning. For instance, SPARQL with RDFS
entailment can be achieved by using materialization or query rewriting [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. These
approaches must be extended to stream processing. First discussions about this
issue can be found in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>In this paper, we have discussed two di erent architectural approaches of
integrating event stream processing and background knowledge.</p>
      <p>The rst architecture uses a CQL processing engine such as ESPER with
an adapter class that performs SPARQL queries on a knowledge base. In this
approach stream processing and knowledge engineering is conceptually and
physically separated.</p>
      <p>The second architecture is based on an extension of SPARQL to process
RDF data streams. C-SPARQL allows integrated rules that process stream data
and query RDF triple stores containing static background knowledge. Thus,
C-SPARQL provides a more homogeneous approach, where query logic, event
patterns and knowledge base access are combined in one rule and is, therefore,
superior from a conceptional point of view.</p>
      <p>Otherwise, CQL engines are well-established in real-world projects and at this
time, they o er higher maturity and better performance. Therefore, CQL-based
systems are (still) superior from a practical point of view.</p>
      <p>
        Generally, the integration of semantic reasoning into stream processing is still
an open issue that is not fully supported by any approach yet. Stream reasoning
is therefore an important and promising research eld to put e ort in and has
several work in progress, for example the appproaches in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgment</title>
      <p>This work was supported in part by the European Community (Europaischer
Fonds fur regionale Entwicklung) under Research Grant EFRE Nr.W2-80115112.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Anicic</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fodor</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rudolph</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stojanovic</surname>
          </string-name>
          , N.:
          <article-title>Ep-sparql: A uni ed language for event processing and stream reasoning</article-title>
          .
          <source>In: Proceedings of the 20th International Conference on World Wide Web</source>
          . pp.
          <volume>635</volume>
          {
          <fpage>644</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Anicic</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rudolph</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fodor</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stojanovic</surname>
          </string-name>
          , N.:
          <article-title>Stream reasoning and complex event processing in etalis</article-title>
          .
          <source>Semantic</source>
          Web pp.
          <volume>397</volume>
          {
          <issue>407</issue>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Barbieri</surname>
            ,
            <given-names>D.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Braga</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Della Valle</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grossniklaus</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Incremental reasoning on streams and rich background knowledge</article-title>
          .
          <source>ESWC</source>
          pp.
          <volume>1</volume>
          {
          <issue>15</issue>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Barbieri</surname>
            ,
            <given-names>D.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Braga</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grossniklaus</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>An execution environment for c-sparql queries</article-title>
          .
          <source>In: Proceedings of the 13th International Conference on Extending Database Technology</source>
          . pp.
          <volume>441</volume>
          {
          <fpage>452</fpage>
          .
          <string-name>
            <surname>EDBT</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Barbieri</surname>
            ,
            <given-names>D.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Braga</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valle</surname>
            ,
            <given-names>E.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grossniklaus</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Querying rdf streams with c-sparql</article-title>
          .
          <source>SIGMOD Rec</source>
          . pp.
          <volume>20</volume>
          {
          <issue>26</issue>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Bolles</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grawunder</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jacobi</surname>
          </string-name>
          , J.:
          <article-title>Streaming sparql - extending sparql to process data streams</article-title>
          .
          <source>In: The Semantic Web: Research and Applications</source>
          , pp.
          <volume>448</volume>
          {
          <issue>462</issue>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Using sparql with rdfs and owl entailment</article-title>
          .
          <source>In: Reasoning Web</source>
          , pp.
          <volume>137</volume>
          {
          <fpage>201</fpage>
          . Lecture Notes in Computer Science, Springer Berlin Heidelberg (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8] Krotzsch,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Simancik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Horrocks</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.:</surname>
          </string-name>
          <article-title>A description logic primer</article-title>
          .
          <source>CoRR</source>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Le-Phuoc</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dao-Tran</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Xavier</given-names>
            <surname>Parreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Hauswirth</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>A native and adaptive approach for uni ed processing of linked streams and linked data</article-title>
          .
          <source>In: The Semantic Web { ISWC</source>
          <year>2011</year>
          , pp.
          <volume>370</volume>
          {
          <issue>388</issue>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Luckham</surname>
            ,
            <given-names>D.C.</given-names>
          </string-name>
          :
          <article-title>The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems</article-title>
          . Addison-Wesley (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Prud'hommeaux</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>Seaborne</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Sparql query language for rdf</article-title>
          , http://www.w3.org/TR/rdf-sparql-query/
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Renners</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bruns</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dunkel</surname>
          </string-name>
          , J.:
          <article-title>Situation-aware energy control by combining simple sensors and complex event processing</article-title>
          . In: Workshop on AI Problems and
          <article-title>Approaches for Intelligent Environments</article-title>
          . pp.
          <volume>29</volume>
          {
          <issue>34</issue>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Teymourian</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Enabling knowledge-based complex event processing</article-title>
          .
          <source>In: Proceedings of the 2010 EDBT/ICDT Workshops</source>
          . pp.
          <volume>37</volume>
          :
          <issue>1</issue>
          {
          <issue>37</issue>
          :
          <article-title>7</article-title>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Teymourian</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rohde</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Fusion of background knowledge and streams of events</article-title>
          .
          <source>In: Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems</source>
          . pp.
          <volume>302</volume>
          {
          <fpage>313</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Volz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Staab</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Incrementally maintaining materializations of ontologies stored in logic databases</article-title>
          .
          <source>In: Journal on Data Semantics II</source>
          , pp.
          <volume>1</volume>
          {
          <fpage>34</fpage>
          . Lecture Notes in Computer Science (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>