<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Integrating Semantic Knowledge in Data Stream Processing</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Simon</forename><surname>Beckstein</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Applied Sciences and Arts Hannover</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ralf</forename><surname>Bruns</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Applied Sciences and Arts Hannover</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Jürgen</forename><surname>Dunkel</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Applied Sciences and Arts Hannover</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Leonard</forename><surname>Renners</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Applied Sciences and Arts Hannover</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Integrating Semantic Knowledge in Data Stream Processing</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">E73A38D488D4F1287C43937D15CD5325</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T04:29+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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 different approaches on integrating stream data and semantic domain knowledge. In particular, we discuss from a software engineering perspective two different 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Nowadays, much information is provided in form of data streams: sensors, software components and other sources are continuously producing fine-grained data that can be considered as streams of data. Examples of application fields exploiting data streams are traffic management, smart buildings, health monitoring, or financial 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) <ref type="bibr" target="#b9">[10]</ref> 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 define 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 traffic management, velocity measures must be related to specific 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 defined by Description Logic (DL) <ref type="bibr" target="#b7">[8]</ref> provide a well-known formalism for knowledge representation, that can also be used for describing background knowledge. DL distinguishes two different aspects: (1) the TBox contains terminological or domain concepts, and (2) the ABox defines assertional knowledge or individuals of the concepts that are defined in the TBox. Common languages for describing semantic knowledge are the Resource Description Framework (RDF) for the TBox and the Ontology Language OWL<ref type="foot" target="#foot_0">1</ref> for the ABox. SPARQL <ref type="bibr" target="#b10">[11]</ref> 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 different approaches on how to integrate data stream processing and background knowledge bases. In particular, we will discuss two different aspects from a software engineering perspective:</p><p>-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 briefly CEP. Then, section 4 discusses the different types of information that can be exploited in stream based systems. The following sections 5 and 6 describe and compare two different approaches of integrating background knowledge into stream processing: The first approach adds an ontology access mechanism to a common CQL-based architecture. The second one uses C-SPARQL, a streaming extension of SPARQL. The final section 7 provides some concluding remarks and proposes an outlook for further lines on research.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Related Work</head><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 ES-PER<ref type="foot" target="#foot_1">2</ref> , JBoss Drools Fusion<ref type="foot" target="#foot_2">3</ref> or Oracle CEP <ref type="foot" target="#foot_3">4</ref> . 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. Different SPARQL enhancements have been developed in order to query continuous RDF streams. Basically, they all extend SPARQL by sliding windows for RDF stream processing:</p><p>-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 <ref type="bibr" target="#b4">[5,</ref><ref type="bibr" target="#b3">4]</ref>.</p><p>-Streaming-SPARQL simply extends a SPARQL engine to support window operators <ref type="bibr" target="#b5">[6]</ref>. -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 <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2]</ref>. -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 <ref type="bibr" target="#b8">[9]</ref>.</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 Prova<ref type="foot" target="#foot_4">5</ref> (with a corresponding event processing engine) <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b13">14]</ref>.</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 different 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Complex Event Processing -Introduction</head><p>Complex Event Processing (CEP) is a software architectural approach for processing continuous streams of high volumes of events in real-time <ref type="bibr" target="#b9">[10]</ref>. Everything that happens can be considered as an event. A corresponding event object carries general metadata (event ID, timestamp) and event-specific 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 signifies 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:</p><p>-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 different event types from heterogenous sources. Event processing rules transform fine-grained simple events into complex (business) events that represent a significant meaning for the application domain. -Temporal Operators: Within event stream processing, timer functionalities as well as sliding time windows can be used to define event patterns representing temporal relationships.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Knowledge Base</head><p>In most application domains, different kinds of knowledge and information can be distinguished. In the following, the different types of knowledge are introduced by means of a smart building scenario:<ref type="foot" target="#foot_5">6</ref> 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 identified for achieving a situation-aware energy management. In this sample scenario, we can identify three types of knowledge classified according to their different change frequencies:</p><p>1. Static knowledge: We define 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. 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 KAON2 7 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 class schedule can be defined 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. <ref type="foot" target="#foot_8">9</ref> 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 classification 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Using Semantic Knowledge in Event Processing</head><p>In this section, we will investigate how the different 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 <ref type="figure" target="#fig_0">1</ref>). This sample ontology is used in the following paragraphs for discussing the different knowledge integration approaches. The model defines the three concepts 'room', 'sensor' and 'equipment' and their relationships. It shows that each room can contain sensors and equipment. Furthermore, it specifies 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:</p><p>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 defines two individuals (Window362 and an attached contact sensor C362W ) using the RDF turtle notation <ref type="foot" target="#foot_9">10</ref> . 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. Listing 1.1. Some sample entries of the domain knowledge</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">ESPER</head><p>As a first 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 <ref type="figure" target="#fig_1">2</ref> depicts the conceptional architecture of the approach. Different 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 specific 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 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 ES-PER 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Listing 1.2. A sample ESPER query</head><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. PREFIX : &lt; http :// eda . inform . fh -hannover . de / sesame . owl &gt; PREFIX rdf : &lt; http :// www . w3 . org /1999/02⤦ /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)</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">C-SPARQL</head><p>As an alternative approach, we investigate a software architecture using C-SPARQL <ref type="foot" target="#foot_11">12</ref> , a streaming extension of SPARQL. Figure <ref type="figure" target="#fig_2">3</ref> illustrates the main building blocks of the architecture. The main difference 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. 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><formula xml:id="formula_0">(⟨subj i , pred i , obj i ⟩, t i )</formula><p>The subject is a unique event identifier, 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 simplified temperature sensor event.</p><p>: 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 behav-ior is transparent for the user as the entire rule is written in C-SPARQL and the rule result contains the combined execution outcome.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Comparison</head><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 <ref type="table" target="#tab_1">1</ref> 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, C-SPARQL, 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 defining different 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. 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 difficult 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 file, 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 different 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 <ref type="bibr" target="#b6">[7]</ref>. These approaches must be extended to stream processing. First discussions about this issue can be found in <ref type="bibr" target="#b14">[15]</ref> and <ref type="bibr" target="#b2">[3]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Conclusion</head><p>In this paper, we have discussed two different architectural approaches of integrating event stream processing and background knowledge.</p><p>The first 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 offer 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 field to put effort in and has several work in progress, for example the appproaches in <ref type="bibr" target="#b2">[3]</ref>.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. OWL ontology relationship</figDesc><graphic coords="6,186.64,115.84,242.08,181.69" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Architecture using ESPER as CEP component</figDesc><graphic coords="7,221.22,115.83,172.92,184.55" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Architecture using C-SPARQL as CEP component</figDesc><graphic coords="8,221.22,361.16,172.92,183.63" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1 .</head><label>1</label><figDesc>Comparison of CQL (ESPER) and C-SPARQL</figDesc><table><row><cell></cell><cell cols="2">ESPER C-SPARQL</cell></row><row><cell>Maturity</cell><cell>+</cell><cell>-</cell></row><row><cell>Event Pattern Expressiveness</cell><cell>+</cell><cell>o</cell></row><row><cell>Conceptual Coherence</cell><cell>-</cell><cell>+</cell></row><row><cell>Dynamic Rules</cell><cell>o</cell><cell>+</cell></row><row><cell>Heterogeneous knowledge sources</cell><cell>o</cell><cell>-</cell></row><row><cell>Stream Reasoning Support</cell><cell>-</cell><cell>o</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">http://www.w3.org/TR/2012/REC-owl2-primer-20121211/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">http://esper.codehaus.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">http://jboss.org/drools/drools-fusion.html</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">http://oracle.com/technetwork/middleware/complex-event-processing</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_4">https://prova.ws/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_5">More details about the smart building scenario can be found in<ref type="bibr" target="#b11">[12]</ref>.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_6">http://kaon2.semanticweb.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="8" xml:id="foot_7">http://owl.man.ac.uk/factplusplus/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="9" xml:id="foot_8">Note that such an event model can also be formally defined by an OWL ontology.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="10" xml:id="foot_9">http://www.w3.org/TR/turtle/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="11" xml:id="foot_10">http://jena.apache.org</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="12" xml:id="foot_11">We used the 'ReadyToGoPack', an experimental implementation of the concept in<ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b4">5]</ref>, available on http://streamreasoning.org</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgment</head><p>This work was supported in part by the European Community (Europäischer Fonds für regionale Entwicklung) under Research Grant EFRE Nr.W2-80115112.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Ep-sparql: A unified language for event processing and stream reasoning</title>
		<author>
			<persName><forename type="first">D</forename><surname>Anicic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Fodor</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Rudolph</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Stojanovic</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 20th International Conference on World Wide Web</title>
				<meeting>the 20th International Conference on World Wide Web</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="635" to="644" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Stream reasoning and complex event processing in etalis</title>
		<author>
			<persName><forename type="first">D</forename><surname>Anicic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Rudolph</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Fodor</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Stojanovic</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Semantic Web</title>
		<imprint>
			<biblScope unit="page" from="397" to="407" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Incremental reasoning on streams and rich background knowledge</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">F</forename><surname>Barbieri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Braga</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ceri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Della Valle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Grossniklaus</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ESWC</title>
		<imprint>
			<biblScope unit="page" from="1" to="15" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">An execution environment for c-sparql queries</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">F</forename><surname>Barbieri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Braga</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ceri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Grossniklaus</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 13th International Conference on Extending Database Technology</title>
				<meeting>the 13th International Conference on Extending Database Technology</meeting>
		<imprint>
			<publisher>EDBT</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="441" to="452" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Querying rdf streams with c-sparql</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">F</forename><surname>Barbieri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Braga</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ceri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">D</forename><surname>Valle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Grossniklaus</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">SIGMOD Rec</title>
				<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="20" to="26" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Streaming sparql -extending sparql to process data streams</title>
		<author>
			<persName><forename type="first">A</forename><surname>Bolles</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Grawunder</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Jacobi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Semantic Web: Research and Applications</title>
				<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="448" to="462" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Using sparql with rdfs and owl entailment</title>
		<author>
			<persName><forename type="first">B</forename><surname>Glimm</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Reasoning Web</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting><address><addrLine>Berlin Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="137" to="201" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">A description logic primer</title>
		<author>
			<persName><forename type="first">M</forename><surname>Krötzsch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Simancik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Horrocks</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2012">2012</date>
			<publisher>CoRR</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">A native and adaptive approach for unified processing of linked streams and linked data</title>
		<author>
			<persName><forename type="first">D</forename><surname>Le-Phuoc</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dao-Tran</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Xavier Parreira</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hauswirth</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Semantic Web -ISWC 2011</title>
				<imprint>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="370" to="388" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">C</forename><surname>Luckham</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Addison-Wesley</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<author>
			<persName><forename type="first">E</forename><surname>Prud'hommeaux</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Seaborne</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/rdf-sparql-query/" />
		<title level="m">Sparql query language for rdf</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Situation-aware energy control by combining simple sensors and complex event processing</title>
		<author>
			<persName><forename type="first">L</forename><surname>Renners</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Bruns</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Dunkel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Workshop on AI Problems and Approaches for Intelligent Environments</title>
				<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="29" to="34" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Enabling knowledge-based complex event processing</title>
		<author>
			<persName><forename type="first">K</forename><surname>Teymourian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Paschke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2010 EDBT/ICDT Workshops</title>
				<meeting>the 2010 EDBT/ICDT Workshops</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="volume">37</biblScope>
			<biblScope unit="page">7</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Fusion of background knowledge and streams of events</title>
		<author>
			<persName><forename type="first">K</forename><surname>Teymourian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Rohde</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Paschke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems</title>
				<meeting>the 6th ACM International Conference on Distributed Event-Based Systems</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="302" to="313" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Incrementally maintaining materializations of ontologies stored in logic databases</title>
		<author>
			<persName><forename type="first">R</forename><surname>Volz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Staab</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Motik</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal on Data Semantics II</title>
		<imprint>
			<biblScope unit="page" from="1" to="34" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
