<!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>Rule-based Programming of User Agents for Linked Data</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tobias Käfer</string-name>
          <email>tobias.kaefer@kit.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andreas Harth</string-name>
          <email>harth@kit.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Karlsruhe Institute of Technology (KIT), Institute AIFB</institution>
          ,
          <addr-line>Karlsruhe</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <abstract>
        <p>State Machines (ASMs) as the formal basis for dealing with changes in Linked Data, which is the combination of the Resource Description Framework (RDF) with the Hypertext Transfer Protocol (HTTP). We provide a synthesis of ASMs and Linked Data and show how the combination aligns with the relevant specifications such as the Request/Response communication in HTTP, the guidelines for updating resource state in the Linked Data Platform (LDP) specification, and the formal grounding of RDF in model theory. Based on the formalisation of Linked Data resources that change state over time, we present the syntax and operational semantics of a small rule-based language to specify user agents that use HTTP to interact with Linked Data as the interface to the environment. We show the feasibility of the approach in an evaluation involving the specification of automation in a Smart Building scenario, where the presented approach serves as a theoretical foundation.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>Data in languages such as RDF (Resource Description Framework)1,
RDFS (RDF Schema)2, and OWL (Web Ontology Language)3 is
widely deployed on the web4 and allow for data representation
and integration. The technologies around Linked Data [3] facilitate
the publication of and access to such data: data publishers make
RDF files available on web servers; user agents can then access the
published RDF files using HTTP (Hypertext Transfer Protocol) 5.
On such read-only web data, developers can build data integration
systems based on queries and ontologies, i. e. approaches grounded
in mathematical logic, where most of the operations are carried
out by query processors and reasoners. However, to integrate such
data from read-only sources is only a first step; many scenarios, for
example on the Web of Things, require to change data. With
HTTPbased write access to Linked Data, we have a uniform interface on
both the data and the interaction level, easing system integration.
But while the W3C’s LDP (Linked Data Platform) specification 6
combines read-only Linked Data (via the HTTP GET operation)</p>
      <sec id="sec-1-1">
        <title>1http://www.w3.org/TR/rdf11-concepts/</title>
        <p>2http://www.w3.org/TR/rdf-schema/
3http://www.w3.org/TR/owl2-overview/
4See e.g. the datasets in the Linking Open Data cloud at http://lod-cloud.net/
5http://www.ietf.org/rfc/rfc7230.txt
6http://www.w3.org/TR/ldp/
with read-write capabilities (HTTP PUT, POST, and DELETE
operations) for the interface to writeable resources, most systems that
interact with LDP servers are still programmed in imperative code.
We would like to specify the behaviour of user agents in a language
grounded in mathematical logic.</p>
        <p>A high-level language for the specification of the behaviour
of user agents would allow expressing executable specifications,
which are shorter and cheaper to create than imperative code, and
which are easier to validate (e. g. with subject matter experts) and
to analyse (e. g. using formal methods). The language could also
serve as execution substrate for agent specifications created using
planning approaches from Artificial Intelligence.</p>
        <p>
          Several approaches exist for specifying user agents on read-only
Linked Data. These user agents process queries and have the ability
to follow links, which can lead to the discovery of additional data
during query processing [5], [16], [12], [
          <xref ref-type="bibr" rid="ref40">38</xref>
          ], [17]. An extension
to read and write capabilities in addition to the following of links,
which is core to web architecture [9], [
          <xref ref-type="bibr" rid="ref32">30</xref>
          ], would allow for user
agents that are able to not only query data but also to efect change.
The choice of a formalism for dynamical aspects on the web should
respect these standards, specifications, and practices as foundations.
How to beneficially combine current technologies around Linked
Data and REST into a unified formalism of dynamics is an open
research problem [18], [
          <xref ref-type="bibr" rid="ref45">43</xref>
          ], [
          <xref ref-type="bibr" rid="ref33">31</xref>
          ], [13].
        </p>
        <p>We present an approach for programming user agents for Linked
Data. Following a hypermedia architectural style, the approach
operates on a set of resources, with a resource’s state described in
RDF. The resource state descriptions contain references to other
resources (links). Resource state can be manipulated via HTTP
operations. To formalise the user agent specifications, which cause
an evolution of Linked Data over time, we build on Abstract State
Machines (ASMs) [11] rooted in mathematical logic. We believe
that ASMs are the right starting point: ASMs encode state in
firstorder logic, which is a superset of the RDF-family of languages; on
top, ASMs require only rules to represent state change, and rules
have been proposed for RDF data processing7,8 In our operational
semantics derived from ASM semantics, the execution of rule-based
programs (user agents) leads to a series of HTTP requests.</p>
        <p>Our contributions are as follows:
• We provide a formal account of the standards around Linked
Data in combination with Abstract State Machines (ASMs).
With the synthesis between Linked Data, which provides a
way to represent and manipulate resource state, and ASMs,
which provides operational semantics based on rules and
stepwise execution of these rules, we are able to specify user</p>
      </sec>
      <sec id="sec-1-2">
        <title>7http://www.w3.org/TeamSubmission/n3/ 8http://www.w3.org/Submission/SWRL/</title>
        <p>agent behaviour with the entire user agent state maintained
in RDF on web-accessible resources.
• We present a syntax for a rule language (based on Notation37,
a superset of the RDF Turtle language) to define conditions
that trigger updates based on HTTP state manipulation
operations. We give an operational semantics of the language
based on the ASM execution semantics.
• We conduct an evaluation of a prototype rule processing
system in a Smart Buildings scenario and show the applicability
of the approach.</p>
        <p>The paper is structured as follows: we start in Section 2 with
an introduction to a Smart Building scenario, in which we set the
examples and the evaluation. We continue in Section 3 with basic
definitions of Linked Data and ASMs. In Section 4, we propose a
synthesis on the level of state representation (interpretations) in
ASMs and RDF model theory. In Section 5, we present an evaluation
using a benchmark and point to successful applications of our
approach. In Section 6, we relate our work to the state of the art
and in Section 7 we conclude with a summary and an outlook.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2 EXAMPLE SCENARIO: RULE-BASED</title>
    </sec>
    <sec id="sec-3">
      <title>CONTROL FOR BUILDING AUTOMATION</title>
      <p>Throughout the paper, we use examples from the Smart Building
domain, inspired by recent work in Building Management Systems:
NIST identified interoperability as a major challenge for the building
industry [10]. To raise interoperability in Building Management
Systems, Balaji et al. developed Brick [2], an ontology to model
buildings and corresponding building management systems.</p>
      <p>We use a description of building 3 at IBM Research Dublin in
Ireland. Balaji et al. provide a static description of this building
using the Brick ontology9. The description covers the building
and the building’s parts (e. g. rooms) and the diferent parts of the
building’s systems (e. g. lights and switches). As there is nothing to
automate in the static description, we introduce dynamics by adding
information about the state of these system parts (e. g. on/of) in
the form of properties from the SSN ontology10. We serve those
properties as writeable Linked Data on localhost.</p>
      <p>In the examples, we use our approach to program an user agent
that controls one light in the building in a straight-forward fashion
(turn the light of if the light is on). In the evaluation, we use more
complex control schemes with up to 30 rules and control the lights
of the entire building.
2.1</p>
    </sec>
    <sec id="sec-4">
      <title>Intuition of the Syntax of a Rule Language</title>
      <p>
        We express rule programs in a subset of the Notation3 (N3) syntax7,
for an example see Figure 1. N3 is a superset of the RDF Turtle
syntax11, hence we can express RDF in N3: In RDF, we use URIs
(Uniform Resource Identifiers 12) as names for resources, for
instance we use the abbreviated13 URI IBM_B3:Lighting_1F_M59
to identify the lights in room 21 on the first floor in wing 42 of
9https://github.com/BuildSysUniformMetadata/GroundTruth/blob/2e48662/
building_instances/IBM_B3.ttl
10http://www.w3.org/TR/vocab-ssn/
11http://www.w3.org/TR/turtle/
12http://www.ietf.org/rfc/rfc3986.txt
13We assume the usual definitions for the prefixes from standardised vocabularies
such as RDF, HTTP, and SSN, which can be found on http://prefix.cc/
building 3. In RDF, we can link resources to each other, thus
forming a graph. For instance, we link said lights to the ssn:Property
http://localhost/Lighting_1F_M59#it (cf. (1) in Figure 1). To
form rules, we use N3’s graph quoting (curly brackets) and
variables (terms starting with question marks). Note that in contrast to
RESTdesc [
        <xref ref-type="bibr" rid="ref45">43</xref>
        ], which also uses the N3 syntax, we do not interpret
the rules as input and output descriptions of HTTP interactions,
but as executable specifications.
      </p>
      <p>We distinguish derivation and request rules. In both types of
rules, the body consists of a set of triple patterns (triples with
variables, cf. basic graph patterns (BGPs) in SPARQL14). In a derivation
rule, the head also consists of a set of triple patterns (cf. (2) in
Figure 1, which defines the inverse to ssn:hasProperty). Derivation
rules are not in the focus of the paper, but are important when
layering higher-level entailment regimes on top of the work presented
in this paper. Here, we use the Simple Interpretation. In a request
rule, the head specifies an HTTP request. The request
specification includes an HTTP method, a request URI, and optionally a set
of triple patterns to form the HTTP body (cf. Figure 1, where (3)
dereferences an end of ssn:isPropertyOf links, and (4) changes
the state of ssn:Properties that fulfil a certain condition).
@prefix IBM_B3: &lt;http://buildsys.org/ontologies/examples/IBM_B3#&gt; .
@prefix brick: &lt;http://buildsys.org/ontologies/Brick#&gt; .
# (1) Language feature: RDF:
IBM_B3:Lighting_1F_M59 a brick:Lighting ;</p>
      <p>ssn:hasProperty &lt;http://localhost/Lighting_1F_M59#it&gt; .
# (2) Language feature: Derivations:
{ ?thing ssn:hasProperty ?property . }
=&gt; { ?property ssn:isPropertyOf ?thing . } .
# Language feature: Conditional requests:
## (3) Defining how to retrieve world state (GET requests):
{ ?y ssn:isPropertyOf ?x . }
=&gt; { [] http:mthd httpm:GET ; http:requestURI ?y . } .
## (4) Defining the logic (PUT, POST, DELETE requests):
{ ?light a brick:Lighting .</p>
      <p>?property a ssn:Property ; foaf:primaryTopicOf ?ir ;</p>
      <p>ssn:isPropertyOf ?light ; rdf:value "off" . }
=&gt; { [] http:mthd httpm:PUT ; http:requestURI ?ir ;
http:body</p>
      <p>{ ?property a ssn:Property ; rdf:value "on" . } . } .</p>
    </sec>
    <sec id="sec-5">
      <title>2.2 Intuition of the Semantics of the Rule</title>
    </sec>
    <sec id="sec-6">
      <title>Language</title>
      <p>We informally give the operational semantics for the rule language
by describing how an interpreter would execute the program in
Figure 1: An interpreter evaluates the triple patterns of the body of
the rules on RDF data that is either given initially (1) or downloaded
as mandated by request rules with GET requests (3). Meanwhile,
the interpreter adds data as mandated by derivation rules (2). The
interpreter executes derivations and GET requests until it calculated
the fixpoint. Last, the interpreter executes the PUT, POST, DELETE
requests of all request rules whose body holds in the data (4). The
14http://www.w3.org/TR/sparql11-query/
interpreter operates in a looped fashion. The rationale behind this
operational semantics is the subject of the paper.
3</p>
    </sec>
    <sec id="sec-7">
      <title>PRELIMINARIES</title>
      <p>In this section, we give foundational definitions of the technologies
around Linked Data with a special focus on the aspects relevant to
our proposed synthesis with Abstract State Machines, whose basic
definitions form the rest of this section.</p>
      <p>We assume a basic knowledge of the technologies Linked Data
is built on: Uniform Resource Identifiers (URIs) 12 for identifying
things, the Hypertext Transfer Protocol (HTTP)5 for interacting
with things, and the Resource Description Framework (RDF)1 for
static descriptions of things. As the technologies are about the
transfer and the description of state information, we first discuss
the relations of diferent kinds of state (e. g. world and resource
state). Next, we go beyond the basics of HTTP and refresh the
reader’s knowledge of the semantics of diferent HTTP requests
and responses. The HTTP semantics are an important building
block in our formalisation. Next, we refresh the reader’s knowledge
of basic RDF model theory. We use model-theoretic semantics to
describe static aspects in our formalisation. Subsequently, we
outline a relation between Linked Data and the semantics of an RDF
Dataset, which we need for our formalisation when it comes to
the relation between a source of data and the data itself. Last, we
introduce Abstract State Machines (ASMs), on which we base our
formalisation of dynamic aspects. If two approaches use the same
term, we introduce subscripts for the origin (·rdf vs. ·asm).
3.1</p>
    </sec>
    <sec id="sec-8">
      <title>State</title>
      <p>We distinguish diferent kinds of state: When successfully
retrieving state using HTTP GET from a URI, we obtain a description the
resource’s state, e. g. the light in a room. The corresponding HTTP
request’s state can e. g. be “successful”. We call the union of the state
information about all resources world state, i. e. all resources in
the world. An application (e. g. implemented as rule program) can
maintain state (e. g. in writeable resources), which then represents
the application’s state, e. g. a note that something just happened.
The application state is a subset of the world state. ASM
terminology uses the term system state, which can be translated to our
terminology as the subset of the world state that is relevant for an
application, e. g. the building description and the weather report.
3.2</p>
    </sec>
    <sec id="sec-9">
      <title>HTTP Semantics</title>
      <p>The Hypertext Transfer Protocol (HTTP) is a protocol to interact
with a resource (called the target) in a request/response fashion5.
In the spirit of Read-Write Linked Data, we consider the request
methods that implement CRUD15: GET, PUT, POST, DELETE.</p>
      <p>As our formalisation is based on world state, we only consider
(of the responses to HTTP requests with diferent methods) the
responses to successful HTTP GET requests:
• We assume the responses to unsuccessful HTTP requests to
be empty: The response to an unsuccessful HTTP request
against a target does not contain information about the
target, but on the request16.
15The basic operations of persistent storage: Create, Read, Update, Delete
16http://www.ietf.org/rfc/rfc7231.txt
• We also consider the responses to successful HTTP PUT, POST,
DELETE requests as empty, as they may be empty or carry
no information about the state of resources6,16.</p>
      <p>We now turn to the individual HTTP request methods and
summarise their semantics16. For legibility, we neglect redirects in this
paper. We sketch in Section 4.2 how they can be re-introduced.</p>
      <p>The GET request is a means to retrieve state information about
the request target. For instance, we can find out whether the lights
are on or not in said room 21 using a GET request to http://
localhost/Lighting_1F_M59#it. By contract, the GET request is
considered safe, i. e. a GET request must not change state.</p>
      <p>The PUT request is a means to overwrite the state information at
the request target. For instance, we can set the lights to be on in said
room 21 using a PUT request to http://localhost/Lighting_
1F_M59#it. For the formalisation in this paper, we assume all
targets that we want to write to, to be writeable.</p>
      <p>The POST request is a means to e. g. append a resource described
in the body to a collection or to send data to a data handling process.
In this paper, we restrict ourselves to the former.</p>
      <p>The DELETE request is a means to delete the request target. For
our considerations, we regard a DELETE request as a PUT request
with an empty message body.
3.3</p>
    </sec>
    <sec id="sec-10">
      <title>RDF Model-Theoretic Semantics</title>
      <p>We use the graph-based data model Resource Description
Framework (RDF) to describe things and their relations1. In an RDF Graph,
typed connections between resources are stated in the form of
triples, e. g. (1) in Figure 1, which relates a light to a ssn:Property.
An RDF Graph is defined follows:</p>
      <p>Definition 1 (RDF Graph, Triple). Let U, B, L be the
respective sets of all URIs, Blank Nodes and Literals. The set of all RDF triples
T is then defined as follows: T = U ∪ B × U × U ∪ B ∪ L. An RDF
Graph G is a set of triples: G = {t |t ∈ T }.</p>
      <p>The RDF standard uses model theory to specify the meaning of
an RDF Graph (e. g. that the URI for the light is interpreted as the
resource that represents the light). We paraphrase the definitions
as they are given in the corresponding W3C Recommendation17.</p>
      <p>Definition 2 (InterpretationRDF, name, vocabularyRDF,
universe). An interpretation is defined as a mapping from U and L
into some set called the universe. Both the mapping and the set can
be constrained. A name is an element from the union U ∪ L. A set
of names is also called vocabulary.</p>
      <p>The basic interpretation for an RDF Graph is the simple
interpretation. The simple interpretation defines the following mappings
and constraints:</p>
      <p>Definition 3 (Simple interpretation, extension). A simple
interpretation is defined using the following sets and mappings: IR
and IP denote the subsets of the universe that contain all resources and
properties respectively. IEXT(p), called the extension of a property
p, is a mapping IP → 2IR×IR that maps p to all pairs in IR that are
connected by p. IS is a mapping U → IR ∪ IP. IL is a partial mapping
L → IR.
17http://www.w3.org/TR/rdf11-mt/</p>
      <p>To not to have to specifically address Blank Nodes, we assume
ground RDF Graphs in this paper. The extension to Blank Nodes
should be straight-forward.
3.4</p>
    </sec>
    <sec id="sec-11">
      <title>RDF Dataset Semantics and Linked Data</title>
      <p>To talk about RDF data from diferent sources, we use the notion
of an RDF Dataset. An RDF Dataset1 is a collection of RDF Graphs.
Each RDF Graph in an RDF Dataset is identified using a name,
which can be a URI, a Blank Node, or empty. The RDF Graph with
the empty name is called the default graph. For legibility, we denote
the default graph with default in this paper.</p>
      <p>While the RDF specification does not impose restrictions on
the relation between the graph name and the RDF Graph in the
RDF Dataset, we use the semantics defined in Section 3.5 of 18 as
abstraction of Linked Data: The graph names are URIs and the RDF
Graph with a given name in the RDF Dataset is the graph that can
be obtained using an HTTP GET request with the graph name as
target. If the request to a graph name fails or returns no RDF data,
the RDF Graph is empty. In the evaluation, we contrast two ways
of constructing the RDF Dataset about the current system state:
Using download of a dump (D1), or following links (D2).
3.5
For the dynamic aspects of our approach, we use Abstract State
Machines (ASMs). Concretely, ASMs help us to define how to evolve
Linked Data, which we interpret as RDF Dataset. Here, we give the
standard definitions for ASMs to make the paper self-contained. The
approach of ASMs has been developed towards the end of the 1980s
with the aim to bridge between the specification and computation
of programs [11]. ASMs are meant to improve on Turing’s thesis.
Turing Machines have proven too low-level to specify algorithms
larger than toy examples. In ASMs however, the level of abstraction
can be adapted to the requirements of the use-case. ASMs have been
extensively used to give operational semantics to programming
languages including C, Prolog, and Java19.</p>
      <p>An ASM consists of an algebraic first-order structure and a set
of transition rules on how to modify the structure. In the following,
we give the basic definitions for ASMs.</p>
      <p>Definition 4 (VocabularyASM, function name, relation
name, characteristic function name, variable, term). The
vocabulary ϒ be defined as a finite set of function names and their
arity n ≥ 0. The vocabulary also contains the nullary function names
undef, and the boolean constants true and false. Moreover, the
vocabulary contains the usual boolean operators as functions. Relation
names and characteristic function names are special function names.
Terms can be defined recursively: Variables are terms. If f is an r -ary
function and t1, . . . , tn are terms, then f (t1, . . . , tn ) is a term.</p>
      <p>For the presentation in this paper, we characterise a function
name with arity &gt; 0 with their correctly sized argument list, e. g. to
talk about an RDF Dataset for Linked Data, we define quad(·, ·, ·, ·),
which defines the function name quad with an arity of 4. We omit
the argument list for nullary function names.
18http://www.w3.org/TR/rdf11-datasets/
19See the annotated ASM bibliography at http://web.eecs.umich.edu/gasm/
index.html</p>
      <p>Definition 5 (Super-universe, function, relation,
characteristic function). The super-universe X is a non-empty set. X
contains e. g. all functions X n → X , true, false, and undef. The
boolean functions behave the usual way on {true, false}. Relations
are functions that map X n → {true, false}. A characteristic
function for a set is a function X → {true, false} that maps to true if
the operand belongs to the set.</p>
      <p>Definition 6 (InterpretationASM, transition rule,
function update, static and dynamic function). An interpretation
I : ϒ → X maps the terms from an ASM vocabulary to a
superuniverse. A transition rule R is a function update, e. g. f (t1, . . . , tn ) :=
t0, or a guarded function update, which has a boolean condition, e. g.
if condition then function update(s). A function update changes
the interpretation of a function name at given arguments. A static
function is not subject to change by the function updates of an ASM,
as opposed to a dynamic function.</p>
      <p>Definition 7 (Value and evaluated form). The value of a term
from the vocabulary ϒ is the term’s referent in the super-universe X
under the current interpretation I. We denote the referent of a term
t under an interpretation I using eval(t , I). If t is a tuple, we have:
eval(t , I) := (eval(t1, I), . . . , eval(tn , I)). If t is a function, we have:
eval(f (t1, . . . , tn ), I) := eval(f , I)(eval (t1, I), . . . , eval (tn , I))).A
function update in its so-called evaluated form is eval(f (t1, . . . , tn ) :=
t0, I) = f (eval (t1, I), . . . , eval (tn , I))) := eval(t0, I).</p>
      <p>Definition 8 (Algebra, state, run, step). A (static) algebra or
state is a triple of a vocabulary, a super-universe, and an interpretation.
A step is a transition from one state to the next by the means of firing
transition rules. A run is a sequence of steps.</p>
      <p>The transition rules to be fired in one step are composed in an
update set.</p>
      <p>Definition 9 (Update set). The update set to be fired in an
interpretation I under the transition rule set T can be defined as
updates(I, T ) := {eval(u, I)|u ∈ T ∧(the condition of u holds in I ∨
u has no condition)}</p>
      <p>In ASM, we assume discrete time. Time progresses from one state
to the next, i. e. in a run, there is an ordered sequence of system
states. There may be multiple transition rules that fire in one state.
If multiple transition rules want to update the interpretation of
a function name for the same arguments, then the system halts
because of the conflict.</p>
      <p>Definition 10 (Abstract State Machine). An Abstract State
Machine (ASM) can be defined as a quadruple of a vocabulary, a
super-universe, an interpretation for time t0, and a set of transition
rules: ASM := (ϒ, X , I0, T )</p>
      <p>We now introduce variables to be able to range over names in
conditions and updates. In ASM, we have to state from which set
of individuals those individuals are to take that are to be bound to
variables. Therefore, a variable declaration is of the following form:</p>
      <sec id="sec-11-1">
        <title>Variable(s) ?varname range(s) over set</title>
      </sec>
      <sec id="sec-11-2">
        <title>End variable scope</title>
        <p>Formally, the variables can be covered by the help of an auxiliary
vocabulary that contains the variables as nullary function names [11].
4</p>
      </sec>
    </sec>
    <sec id="sec-12">
      <title>ABSTRACT STATE MACHINES AND</title>
    </sec>
    <sec id="sec-13">
      <title>LINKED DATA + RULES</title>
      <p>This section is about our proposed synthesis of ASM, and Linked
Data + Rules with the help of RDF model theory and HTTP
semantics. We first describe on a high level the commonalities between
ASM and RDF model theory, which motivate our synthesis, and
then the diferent foci of both approaches. After that, we provide a
synthesis of ASM and Linked Data + Rules. While the
formalisation has the user agent in the focus, which regards Linked Data as
external functions, we next sketch how a server fits into the
picture. Then, we sketch how the synthesis can be used for specifying
computation. Subsequently, we use the synthesis to give
semantics to a rule language and discuss our findings. Last, we derive
requirements for a Linked Data user agent specification language.
4.1</p>
    </sec>
    <sec id="sec-14">
      <title>Overview</title>
      <p>While both, ASMs and RDF are defined in terms of interpretations of
vocabularies into a (super-)universe, the focus of both approaches is
diferent: RDF model theory is about whether diferent RDF Graphs
entail each other or whether models can exist for an RDF Graph.
Therefore, conditions on the universe are in the focus. The
interpretation is static in RDF model theory. ASMs are all about the
evolution of system state, which manifests itself in the evolution of
the interpretation of a vocabulary into a super-universe. Therefore,
the transition function T is in the focus, in which updates to the
interpretation are stated and the conditions under which the updates
happen. Linked Data is about the publication and the updating of
RDF data on the web using HTTP, where the RDF describes the
state of a resource.</p>
      <p>The high-level idea of the synthesis, which is described in the
subsections of Section 4.2, is to (1) define RDF model theory for Linked
Data using RDF Datasets, (2) define ASM functions statement(·, ·, ·)
and quad(·, ·, ·, ·) for Linked Data/RDF Datasets and the functions’
interpretations, (3) define an ASM transition function for Linked
Data/RDF Datasets using rules with HTTP requests in the head
(4) define how the ASM evaluation of the statement(·, ·, ·) function
and the ASM updates to the quad(·, ·, ·, ·) function can be done in
accordance with the semantics of HTTP requests, and (5) use above
definitions in the definition of an ASM.
4.2</p>
    </sec>
    <sec id="sec-15">
      <title>Synthesis</title>
      <p>In this section, we take the definitions from the simple
interpretation from RDF model theory and use them, slightly amended for
RDF Datasets, in the definition of an ASM. The synthesis allows us
to specify the evolution of an RDF Dataset using ASM semantics.
Note that the terms vocabulary and interpretation used in ASM and
RDF model theory mean the same. The term universe in RDF maps
to the term super-universe in ASM.</p>
      <p>4.2.1 Define RDF model theory for Linked Data using RDF Datasets.
We base our considerations on two semantics for RDF Datasets that
have been discussed in Sections 3.2 and 3.5 of a note of the W3C
RDF Working Group18.</p>
      <p>We start out with definitions to simplify our presentation: Like
the W3C Recommendation on model-theoretic semantics for RDF17,
we use as vocabulary the infinite sets of all URIs U and Literals
L in our definitions, in contrast to the fixed vocabulary used by
the Linked Data sources under consideration. Correspondingly, IS
and IL interpret all U and L, and IR has corresponding elements.
We point to17 for how to amend the definitions to finite
vocabularies. To further ease the presentation, we assume ground graphs.
Moreover, be IP = IR, such that we only need to address IEXT
in our considerations. When working with RDF Datasets, we
assume that the same elements of the vocabularies of the diferent
graphs have the same referent when interpreted using IS and IL.
We do not consider redirects in the definitions, although they can
be layered on top by defining a function for the correspondence
between a non-information resource and an information resource.
In the definitions, we also assume all Linked Data sources to be
in N , the named graphs of our RDF Dataset, i. e. we assume
webcompleteness in the terminology of [15]. By restricting N , we can
implement other completeness classes.</p>
      <p>Of the W3C RDF WG Note on RDF Dataset semantics18, two
sections are of particular use for our considerations:
3.5 “Named graph are in a particular relationship with what
the graph name dereferences to” defines an interpretation
for each graph in the RDF Dataset, hence we can define an
extension function per dereferenceable source</p>
      <p>IEXT c := Extension function of the graph available at c
3.2 “Default graph as union or as merge” defines the default
graph of an RDF Dataset as RDF union or merge of all named
graphs in the RDF Dataset. As we assume ground graphs,
there is no diference in RDF union or merge. Hence, we can
define the extension function of the union as:</p>
      <p>IEXT union(p) := Ø IEXT c (p)
c ∈N
The default graph can be regarded as knowledge of the client, e. g.
knowledge that is not available at any n ∈ N . The default graph
can also be used in the case of higher-level entailment regimes for
stating axiomatic triples in case they cannot be dereferenced from
a Linked Data source.</p>
      <p>4.2.2 Define ASM functions quad(·, ·, ·, ·) and statement(·, ·, ·) for
Linked Data/RDF Datasets and the functions’ interpretations. We
define</p>
      <p>
        quad(s, p, o, c) : IR × IR × IR × N → {true, undef}
as the characteristic ASM function for IEXT c . Moreover, be
statement(s, p, o) : IR × IR × IR → {true, undef}
the characteristic ASM function for IEXT union. The statement
function has also been used in [
        <xref ref-type="bibr" rid="ref38">36</xref>
        ] to process RDF using Prolog.
      </p>
      <p>So far, we have defined Linked Data as static ASM functions.
Now, we proceed by introducing dynamics.</p>
      <p>4.2.3 Define how the ASM transition function for Linked Data/RDF
Datasets can be stated. The rules can be given as usual in ASM
in rules of the form if condition then update(s) modifying the
interpretations of function names. We use conjunctions of the
statement(·, ·, ·) function for the conditions (reflecting BGP queries
from SPARQL14) and the conjunctions of the quad(·, ·, ·, ·)
function for the updates. Both the conditions and updates can contain
variables.
4.2.4 Define how the ASM evaluation of the statement(·, ·, ·)
function and the ASM updates to the quad(·, ·, ·, ·) function can be done in
accordance with the semantics of HTTP requests. For the evaluation
of the conditions, we consider the statement(·, ·, ·) function as
making HTTP GET requests to all n ∈ N and to evaluate statement(·, ·, ·)
like an external function in ASM. For the default graph, no request
needs to be made. The updates are done using the quad(·, ·, ·, ·)
function, which takes an additional c as parameter. The updates
correspond to HTTP PUT, POST, DELETE requests.</p>
      <p>We perform the requests ordered in accordance with ASM steps,
i. e. we first evaluate all HTTP GET requests, and collect the updates
that are mandated by the transition functions. After we collected the
updates to be performed, we carry out the corresponding requests
in bulk, i. e. multiple HTTP PUT, POST, DELETE requests at a time.
After all updates in the form of HTTP PUT, POST, DELETE requests
have been performed, we continue with the next ASM step. The
result of the HTTP PUT, POST, DELETE requests is dependent on
server implementations, see Section 4.3.</p>
      <p>4.2.5 Define the ASM. We define the ASM for Linked Data as:</p>
      <p>ASM := (ϒ, X , I0,T )
The vocabulary ϒ contains all RDF names (all URIs and Literals), the
boolean operator ∧, and constant names. We omit (1) the boolean
name false and the boolean operator ¬ because of the open world
assumption, which is typically made on the Semantic Web20, and
(2) the operator ∨, because in a BGP, conditions are only connected
using conjunctions. Disjunctions can be stated by using multiple
rules. We add the function names statement and quad:
ϒ := U ∪ L ∪ {true, undef} ∪ {∧} ∪ {quad, statement}
The super-universe X is a set that contains elements for all RDF
Graphs, and functions X n → X including the boolean and. To be
able to visually tell the elements of ϒ and X from each other, we
use typewriter font for the nullary function names and small caps
for their counterparts in the super-universe.</p>
      <p>X := IR ∪ IP ∪ {true, undef} ∪ { f | f : X n → X }
The interpretation It of an element y of the vocabulary ϒ at time t ,
consists of IS(·) and IL(·) from RDF model-theoretic semantics for
the RDF names, mappings for the boolean true, and undef, and
functions for quad(·, ·, ·, ·) and statement(·, ·, ·), and ∧:
IS(y) if y ∈ U

IL(y) if y ∈ L
It (y) := true if y = true
undef if y = undef


∈ { f | f : X n → X } if y ∈ {quad, statement, ∧}


4.3</p>
    </sec>
    <sec id="sec-16">
      <title>Linked Data Servers</title>
      <p>Although our formalisation is made for the user agent, we show
for completeness the server behaviour, which reflects the update of
the quad(·, ·, ·, ·) function for PUT, POST, and DELETE requests: A
server processing a PUT request to the target information resource
http://localhost/Lighting_1F_M59 with the body
&lt;http://localhost/Lighting_1F_M59#it&gt; rdf:value "on".
20http://www.w3.org/TR/owl2-primer/
sets
to true for the argument</p>
      <p>quad(·, ·, ·, http://localhost/Lighting_1F_M59)
(&lt;http://localhost/Lighting_1F_M59#it&gt;, rdf:value, "on")
and undef for all other triples. A server processing a POST request
with the target of a LDP container, e. g. http://localhost/ldbbc/
and the RDF payload payl first determines a new URI sub that is
subordinate to the container resource, then defines a new graph
by relativising all URIs in the payl against sub and PUTs the new
graph at sub into the RDF Dataset. Moreover, a membership triple
for sub is added to the representation of the container resource.
4.4</p>
    </sec>
    <sec id="sec-17">
      <title>Operational Semantics for the</title>
    </sec>
    <sec id="sec-18">
      <title>Condition-Action Rule Language</title>
      <p>In this section, we give operational semantics to our
conditionaction rule language using the synthesis. We use the program in
Figure 1 as example: The program consists of RDF (1), derivations
(2), and requests (3+4), the latter to interact with the environment.
Remember that in an ASM step, updates are executed after the
update set has been constructed entirely. To construct the update
set, all rules have to be evaluated on the current state.</p>
      <p>In our language, information about the current system state is
given by RDF, by evaluating all derivations, and by evaluating all
GET requests on the Linked Data sources until the fixpoint has
been calculated. In our example, we know from the RDF (1) that
the light IBM_B3:Lighting_1F_M59 has the ssn:Property http:
//localhost/Lighting_1FM59#it. The derivation rule (2) adds
the inverse link to the knowledge. With the inverse information
available, the conditional GET request is triggered (3). The data
obtained using the GET request is added to the knowledge, e. g. that
the light is of. No further knowledge can be derived using rules,
so the fixpoint is calculated. The updates in our language are the
unsafe requests. The conditional PUT, POST, DELETE requests (4)
are collected during the information gathering about the current
state, and are executed after the fixpoint calculation. Note that using
conditional requests, we can do hypermedia-style link following. In
our example, the condition for the last rule holds in the knowledge
after the fixpoint calculation. Hence, the light is turned on.</p>
      <p>To execute programs in our language along the ASM step
semantics, an interpreter operates in nested loops (see Figure 2 for its
algorithm). The algorithm takes as input a rule program and emits
a sequence of sets of safe and unsafe requests, depending on the
available state information. Note that ASM steps in combination
with GET requests implement polling.
4.5</p>
    </sec>
    <sec id="sec-19">
      <title>Discussion: Computation, ASMs, Simple</title>
    </sec>
    <sec id="sec-20">
      <title>Reflex Agents, and Linked Data</title>
      <p>ASMs are a model of computation, i. e. one can specify arbitrary
computation using the model, e. g. algorithms and programs. In
the previous section, we defined an ASM view on Linked Data.
Hence, we now can specify arbitrary computation with the state
of the computation represented in Linked Data. Our ASM-based
formalisation of Linked Data is based on the assumption that we
have exclusive read and write access to all relevant URIs during
Require: assertions ▷ Triples to be asserted in every ASM step
Require: rules ▷ Derivation and request rules
var unsafeRequests: set&lt;request&gt;
var data, oldData: set&lt;triple&gt;
var fixpointReached: boolean
while true do ▷ Loop of the ASM steps
unsafeRequests.clear()
data.clear()
data.add(assertions)
repeat ▷ Loop for determining the update set
ifxpointReached &lt;- true
for rule : rules do
if rule.matches(data) then ▷ Also empty rule bodies
oldData = data.copy()
if rule.type==derivation then</p>
      <p>data.add(rule.match(data).data)
else ▷ So the rule must be an interaction rule
if rule.match(data).request.type==GET then</p>
      <p>
        data.add(rule.match(data).request.execute())
else
an ASM step. When generalising to a setting with multiple agents,
ASMs typically assume circulating exclusive access to the system
state. As there is no central control in a web setting, we cannot
circulate the access right. Thus, there is no general solution to the
problem of concurrent access, but a number of remedies: (1) in
a realistic setting, we do not have the entire Linked Data in our
system state (i. e. web-completeness in the terminology of [15]),
but a considerably smaller subset. (2) on the web, most access is
typically reading, and only little is writing [
        <xref ref-type="bibr" rid="ref34">32</xref>
        ]. (3) if the servers
use ETags21, a client can send conditionally writing requests, which
fail if a concurrent update has happened. (4) with suficiently fast
data processing, the problem can be mitigated.
      </p>
      <p>
        Using our ASM view on Linked Data, we can also implement
simple reflex agents for Linked Data, the simplest agent type in
Russell and Norvig [
        <xref ref-type="bibr" rid="ref36">34</xref>
        ]. Simple reflex agents perceive the
environment and choose their action by matching condition-action rules on
the perceived environment. Then, the agent carries out the action
and repeats. This sense-act cycle aligns with an ASM step of first,
matching rules and second, acting in the form of updates.
21http://www.ietf.org/rfc/rfc7232.txt
4.6
      </p>
    </sec>
    <sec id="sec-21">
      <title>Requirements for a Linked Data User</title>
    </sec>
    <sec id="sec-22">
      <title>Agent Specification Language</title>
      <p>What current languages to specify queries and updates are missing
is a way of expressing the transition function T . In ASM, T is given
using rules in the form if condition then function update(s). T is
then executed in ASM steps. Thus, we need a language
(1) that allows to express conditions on state information
(2) that allows to define updates that send state information,
(3) whose semantics adhere to ASM steps, i. e. one repeatedly
ifrst evaluates all conditions of all rules and collects all
updates, and then one evaluates all updates in bulk.</p>
      <p>
        We chose N3 as rule language in the context of RDF data and gave
ASM-based semantics to N3. Other approaches including SPARQL
updates22 or RUL [
        <xref ref-type="bibr" rid="ref30">28</xref>
        ] as very elaborate ways to address point 1.
They do not implement server interaction using exchange of state
representation, but RPC-style interaction (point 2). They also do
not implement bulk updates, as required by ASM steps (point 3).
5
      </p>
    </sec>
    <sec id="sec-23">
      <title>EVALUATION</title>
      <p>To describe our evaluation, we start out with defining the data and
diferent scenarios for data access. Next, we present diferent
workloads. Then, we describe experimental setup. Next, we present and
discuss our results. Last, we showcase applications of our approach.
5.1</p>
    </sec>
    <sec id="sec-24">
      <title>Data</title>
      <p>We evaluate our approach in the building automation setting of
Section 2. We use the building’s lighting subsystem, as lamps and
switches can be regarded as having a discrete state. We use building
39, as the building’s description includes a lighting subsystem.</p>
      <p>The core classes of the Brick ontology are depicted in Figure 3.
The first part of the ontology, Location and subclasses, allows for
describing a building in terms of the subdivisions provided by the
brickwork, e. g. floors and rooms. The second part of the ontology,
Equipment and subclasses, allows for describing diferent systems
that run the building, where we focus on the lighting system in this
paper. Other systems include water, and HVAC (heating, ventilation,
and air conditioning). The third part of the ontology, Point and
subclasses, allow to talk about sensors and actuators in the building.</p>
      <p>Building 3 is box-shaped with its long side oriented from north
to south. In the RDF description, the building is subdivided into
lfoors and wings. The rooms are assigned to their corresponding
lfoor and wing (also has-part relationships). The lights are directly
assigned to rooms or wings. A light system can consist in (1) an
occupancy sensor that determines whether there are people in its
vicinity, (2) a luminance command, in other words, a switch to
control the lights, and (3) a luminance sensor that we consider to
be triggered by daylight. We provide basic statistics in Table 1.</p>
      <p>We bring the static building description “to life” by adding ssn:
hasProperty links to dynamic Linked Data resources on localhost
representing switches, occupancy sensors, luminance sensors, and
lights. The state of each resource relevant for the evaluation is
on/of for the lights, and a numeric value for the luminance sensors.
22http://www.w3.org/TR/sparql11-update/
:Location
:Equipment
:Point
:Building
:Floor :HVAC_Zone :Lighting_Zone :Room
:Fire_Safety_System :HVAC :Lighting_System
:Water_System
:Alarm :Command :Sensor
:Setpoint
:Status</p>
    </sec>
    <sec id="sec-25">
      <title>Experimental Setup</title>
      <p>We use the engine Linked Data-Fu version 0.9.1223 to run the rule
programs. We use LDBBC version 0.0.624 as LDP Container to
serve the static building data. We implement the following dynamic
sources: (1) an RDF weather API built from a sample file from
OpenWeatherMap25, a JSON-LD context, and a sunset/sunrise simulation
for Dublin, and (2) luminance sensor readings according to time of
day and season. We run the experiments on a laptop with an Intel
Core i7-5600U CPU, 12 GB of RAM, and Ubuntu Linux 17.04. After
the dynamic sources simulated one year, i. e. one minute in
wallclock time, we stop one experiment leading to repetition counts
of up to 7’500 depending on the runtime of one ASM step. The
evaluation system including data and rules can be found online26.
5.4</p>
    </sec>
    <sec id="sec-26">
      <title>Results and Discussion</title>
      <p>We present the results for D1 in Table 2 and for D2 in Table 3.
We report median values as due to firing many requests, there are
23http://linked-data-fu.github.io/
24http://github.com/kaefer3000/ldbbc/
25http://www.openweathermap.org/
26http://github.com/kaefer3000/rwld-brick-benchmark/
high outliers in the 99 % percentile, which spoil mean and standard
deviation. The median, however, is stable. The order of magnitude
of the measurements in varies in Table 3, in contrast to Table 2.
This is owed to the fact that each ASM step, regardless of the data
that is actually needed, the whole building description has to be
transferred in D1, which is 2.3 MB per transfer. Compared to that,
the link following approach D2 can access the building data as
required. This fine granularity comes at the price of additional
requests, which make the processing of the whole building more
expensive. The drop in time between W2 and W3 can be explained
by the reasoning that is employed in W2 to check whether the
current day and hour is a working hour, which is not needed in
W3. The increase between W3 and W4 underestimates the real cost
of the computations, as we go from all lights in W3 to only those
lights with sensors in W4, cf. Table 1. The drop between W4 to W5
can be explained by the smaller number of lights with luminance
sensors. The rise in time for the workloads in Table 2 is due to that
diferent workloads need to access diferent amounts of data.
5.5</p>
    </sec>
    <sec id="sec-27">
      <title>Applicability</title>
      <p>In this section, we give examples of how we applied our approach.</p>
      <sec id="sec-27-1">
        <title>Composition of RESTful services to VR systems We used</title>
        <p>our approach to connect diferent parts of Virtual Reality systems: In
the i-VISION project, we connected a flight simulator to a workflow
analysis software [22] (ca. 90 rules). In a demo [24], we connected a
Microsoft Kinect sensor and APIs from the Web to a 3D engine (ca.
60 rules), where the interpreter running the rules performed about
30 ASM steps per second (i. e. the refresh rate of the Kinect sensor).</p>
      </sec>
      <sec id="sec-27-2">
        <title>Specification of Operational Semantics Similar to previous</title>
        <p>applications of ASMs to define the operational semantics of
programming languages, we currently work on defining the
operational semantics of a workflow language using our approach (ca.
30 rules).</p>
        <p>Turing-Completeness To show the expressiveness of our
approach, we implemented a Turing Machine using Linked Data and
four rules. The rules together with instructions for the set-up can
be found online27. While the Turing-completeness is, of course,
an inherent property of the ASM part of the approach, it persists
despite the restrictions we imposed to make ASM fit Linked Data.
All parts of our approach are necessary: Read-Write Linked Data for
tape and machine state, and request rules executed in ASM steps.
6</p>
      </sec>
    </sec>
    <sec id="sec-28">
      <title>RELATED WORK</title>
      <p>In this section, we discuss related work subdivided by topic.</p>
      <sec id="sec-28-1">
        <title>One-step updates of semantic data In Semantic Data Man</title>
        <p>
          agement, people studied updates to RDF Graphs, e. g.
schemapreserving updates [
          <xref ref-type="bibr" rid="ref30">28</xref>
          ], and standardised updating the data in
a triple store using SPARQL22. To update Linked Data using HTTP
has been proposed in a Design Issues article [4] and detailed out in a
27http://github.com/kaefer3000/ldf-turingmachine
Rooms
W3C recommendation6. In previous work, we proposed a language
and an interpreter for interacting with Read-Write Linked Data [
          <xref ref-type="bibr" rid="ref39">37</xref>
          ].
Those works lack the notion of ASM steps.
        </p>
        <p>
          Automation on the web Unlike automation systems such as
[
          <xref ref-type="bibr" rid="ref44">42</xref>
          ], IFTTT28, and Arktik29, we do not assume centralised
information and event processing, but decentralised information and rule
evaluation on state information. Ripple [
          <xref ref-type="bibr" rid="ref37">35</xref>
          ], and [
          <xref ref-type="bibr" rid="ref29">27</xref>
          ] allow for
readonly scripting and programming with Linked Data. We also cover
writing. Unlike the multi-agent approach of [8], we work without
a central platform for discovery and for distributing notifications.
        </p>
        <p>Descriptive works We monitored [23], analysed [20], and
formally described [14] the dynamics of Linked Data. Those works
are insuficient to specify computation.</p>
        <p>
          Web Service descriptions A focus of Semantic Web Services
are service descriptions and the processing of such descriptions,
with some work on operational semantics [1], [
          <xref ref-type="bibr" rid="ref31">29</xref>
          ], [6], [
          <xref ref-type="bibr" rid="ref35">33</xref>
          ], mainly
used for analysing composed services, instead of execution.
        </p>
      </sec>
      <sec id="sec-28-2">
        <title>Descriptions/formalisations and HTTP Lately, descriptions</title>
        <p>
          in a Semantic Web Services fashion have gained traction again,
especially on the Internet of Things [7], and even when working with
HTTP [
          <xref ref-type="bibr" rid="ref28">26</xref>
          ], [
          <xref ref-type="bibr" rid="ref33">31</xref>
          ], [18]. The descriptions express in a standardised
manner what you can do with a (server) API. Instead, we formally
address user agent specifications. Our approach can be extended
with planning (e. g. [
          <xref ref-type="bibr" rid="ref45">43</xref>
          ], [
          <xref ref-type="bibr" rid="ref35">33</xref>
          ]) if service descriptions are available.
Thus, our Linked Data-based formalisation (which respects the
HTTP message semantics) gives an alternative to BPEL-based
approaches to service composition and execution.
        </p>
      </sec>
      <sec id="sec-28-3">
        <title>Application of ASMs in Semantic Technologies Before the</title>
        <p>
          advent of RDF and Linked Data, the authors of [
          <xref ref-type="bibr" rid="ref43">41</xref>
          ] compared
formalisms to specify dynamics for knowledge bases. Abstract State
Machines (ASMs) stood out for their simplicity and ease of
operationalisation. ASMs have also been used to describe the
communication of services in a choreography in WSMO [
          <xref ref-type="bibr" rid="ref35">33</xref>
          ].
        </p>
      </sec>
      <sec id="sec-28-4">
        <title>Combination of static and dynamic modelling The authors</title>
        <p>of [19] executed queries in linear temporal logic (LTL) over evolving
ontologies, which is complementary to our approach. Similar to
our work, the author of [25] combined approaches for static and
dynamic modelling for object-oriented modelling. While Graph
Rewriting could serve as an alternative to ASM for the specification
of the evolution of RDF Graphs, we think ASM is more compatible
to the Semantic Web stack, as both are based on first-order logic.
28http://ifttt.com/
29http://arktik.io/</p>
      </sec>
    </sec>
    <sec id="sec-29">
      <title>CONCLUSION AND FUTURE WORK</title>
      <p>We have presented a formal approach for capturing the dynamics
of Linked Data with the aim of specifying user agents. To this end,
we gave a synthesis of RDF model theory, ASMs, and HTTP, and
described requirements for implementing the synthesis. We applied
the approach to give semantics to a rule language such that we can
specify Linked Data user agents. We presented application scenarios
and showed our approach to be Turing complete (Section 5.5). We
evaluated our approach in a Smart Building setting.</p>
      <p>In the paper, we took the first step towards autonomous agents
that operate on Linked Data: We presented a formal basis for the
execution of agents. Still, there are more steps to take, a formal
notion of (1) internal state in the agent, and (2) a notion of goals
and capabilities, which we will address in future work.</p>
      <p>
        Yet, we believe our work can already be applied today: Although
experts built the applications in Section 5, the experiments of van
Kleek et al. [
        <xref ref-type="bibr" rid="ref44">42</xref>
        ] or the success of IFTTT [
        <xref ref-type="bibr" rid="ref42">40</xref>
        ] show that rules are a
way of programming that is highly relevant also for end-users.
      </p>
    </sec>
    <sec id="sec-30">
      <title>ACKNOWLEDGMENTS</title>
      <p>We thank Armin Haller for insights into ASMs in WSMO. This work
is partially supported by the German federal ministry for education
and research in AFAP, a Software Campus project (FKZ 01IS12051).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>A</given-names>
            <surname>Ankolekar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F</given-names>
            <surname>Huch</surname>
          </string-name>
          ,
          <source>and KP Sycara</source>
          .
          <year>2002</year>
          .
          <article-title>Concurrent semantics for the web services specification language DAML-S.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <source>In Proc. of the 5th Intl. Conf. on Coordination Models and Languages (Coordination).</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>B</given-names>
            <surname>Balaji</surname>
          </string-name>
          et al.
          <year>2016</year>
          .
          <article-title>Brick: towards a unified metadata schema for buildings</article-title>
          .
          <source>In Proc. of the 3rd Intl. Conf. on Systems for Energy-Eficient Built Environments (BuildSys)</source>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>T</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Linked Data. Design Issues</article-title>
          . http:// www.w3.org/DesignIssues/LinkedData.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>T</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Read-write Linked Data</article-title>
          . Design Issues.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>http://www.w3.org/DesignIssues/ReadWriteLinkedData.</mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>P</given-names>
            <surname>Bouquet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C</given-names>
            <surname>Ghidini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L</given-names>
            <surname>Serafini</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Querying the Web of Data: A formal approach</article-title>
          .
          <source>In Proc. of the 4th Asian Semantic Web Conf. (ASWC).</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <given-names>S</given-names>
            <surname>Chandrasekaran</surname>
          </string-name>
          , JA Miller,
          <source>GA Silver, IB Arpinar, and AP Sheth</source>
          .
          <year>2003</year>
          .
          <article-title>Performance analysis and simulation of composite web services</article-title>
          .
          <source>Electronic Markets</source>
          ,
          <volume>13</volume>
          ,
          <fpage>2</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <given-names>V</given-names>
            <surname>Charpenay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S</given-names>
            <surname>Käbisch</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H</given-names>
            <surname>Kosch</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Introducing thing descriptions and interactions</article-title>
          .
          <source>In Proc. of the 1st WS on SemanticWeb technologies for the Internet of Things (SWIT).</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <given-names>A</given-names>
            <surname>Ciortea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O</given-names>
            <surname>Boissier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          ,
          <source>and AM Florea</source>
          .
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <article-title>Responsive decentralized composition of service mashups for the internet of things</article-title>
          .
          <source>In Proceedings of the 6th International Conference on the Internet of Things (IoT).</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>R</given-names>
            <surname>Fielding</surname>
          </string-name>
          .
          <year>2000</year>
          .
          <article-title>Architectural Styles and the Design of Networkbased Software Architectures</article-title>
          .
          <source>PhD thesis</source>
          . University of California, Irvine, USA.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          2004.
          <article-title>Cost analysis of inadequate interoperability in the us capital facilities industry</article-title>
          .
          <source>NIST</source>
          , (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <given-names>Y</given-names>
            <surname>Gurevich</surname>
          </string-name>
          .
          <year>1995</year>
          .
          <article-title>Evolving algebras 1993: lipari guide</article-title>
          . In Specification and
          <string-name>
            <given-names>Validation</given-names>
            <surname>Methods</surname>
          </string-name>
          . E Börger, editor.
          <source>OUP.</source>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <string-name>
            <given-names>A</given-names>
            <surname>Harth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K</given-names>
            <surname>Hose</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M</given-names>
            <surname>Karnstedt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            <surname>Polleres</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K</given-names>
            <surname>Sattler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J</given-names>
            <surname>Umbrich</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Data summaries for on-demand queries over Linked Data</article-title>
          .
          <source>In Proc. of the 19th Intl. Conf. on World Wide Web (WWW).</source>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <given-names>A</given-names>
            <surname>Harth</surname>
          </string-name>
          and
          <string-name>
            <given-names>T</given-names>
            <surname>Käfer</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Specifying and executing application behaviour with condition-request rules</article-title>
          .
          <source>In Proc. of the WS on Decentralizing the Semantic Web at the 16th Intl.</source>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <given-names>A</given-names>
            <surname>Harth</surname>
          </string-name>
          and
          <string-name>
            <given-names>T</given-names>
            <surname>Käfer</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Towards specification and execution of linked systems</article-title>
          .
          <source>In Proc. of the 28th WS Grundlagen von Datenbanken (GvD)</source>
          .
          <source>GI.</source>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <string-name>
            <given-names>A</given-names>
            <surname>Harth</surname>
          </string-name>
          and
          <string-name>
            <given-names>S</given-names>
            <surname>Speiser</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>On completeness classes for query evaluation on linked data</article-title>
          .
          <source>In Proc. of the 26th Conf. on Artificial Intelligence (AAAI) .</source>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <string-name>
            <given-names>O</given-names>
            <surname>Hartig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C</given-names>
            <surname>Bizer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>JC</given-names>
            <surname>Freytag</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Executing SPARQL queries over the web of Linked Data</article-title>
          .
          <source>In Proc. of the 8th Intl.</source>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <string-name>
            <given-names>O</given-names>
            <surname>Hartig and J Pérez</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>LDQL: A query language for the web of Linked Data</article-title>
          .
          <source>Web Semantics</source>
          ,
          <volume>41</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          <source>AG Hernández and MNM García</source>
          .
          <year>2010</year>
          .
          <article-title>A formal definition of RESTful semantic web services</article-title>
          .
          <source>In Proc. of the First Intl.</source>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          <string-name>
            <given-names>Z</given-names>
            <surname>Huang and H Stuckenschmidt</surname>
          </string-name>
          .
          <year>2005</year>
          .
          <article-title>Reasoning with multiversion ontologies: A temporal logic approach</article-title>
          .
          <source>In Proc. of the 4th Intl. Semantic Web Conf. (ISWC).</source>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          2013.
          <article-title>Observing Linked Data dynamics</article-title>
          .
          <source>In Proc. of the 10th European Semantic Web Conf. (ESWC).</source>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          <string-name>
            <given-names>T</given-names>
            <surname>Käfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            <surname>Harth</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S</given-names>
            <surname>Mamessier</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Towards declarative programming and querying in a distributed CPS: the i-VISION case</article-title>
          .
          <source>In Proc. of the 2nd Intl</source>
          .
          <article-title>WS on modelling, analysis, and control of complex CPS (CPSData).</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          <string-name>
            <given-names>T</given-names>
            <surname>Käfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J</given-names>
            <surname>Umbrich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            <surname>Hogan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>A</given-names>
            <surname>Polleres</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Towards a dynamic Linked Data observatory</article-title>
          .
          <source>In Proc. of the 5th WS on Linked Data on the Web (LDOW).</source>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          <string-name>
            <given-names>FL</given-names>
            <surname>Keppmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T</given-names>
            <surname>Käfer</surname>
          </string-name>
          ,
          <string-name>
            <surname>S Stadtmüller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R</given-names>
            <surname>Schubotz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>A</given-names>
            <surname>Harth</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>High performance Linked Data processing for Virtual Reality environments</article-title>
          .
          <source>In Proc. of Posters &amp; Demos at the 13th Intl. Semantic Web Conf. (ISWC).</source>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          <string-name>
            <given-names>M</given-names>
            <surname>Kifer</surname>
          </string-name>
          .
          <year>1995</year>
          .
          <article-title>Deductive and object data languages: A quest for integration</article-title>
          .
          <source>In Proc. of the 4th Intl. Conf. on Deductive and Object-Oriented Databases (DOOD).</source>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>M</given-names>
            <surname>Lanthaler</surname>
          </string-name>
          and
          <string-name>
            <given-names>C</given-names>
            <surname>Gütl</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Hydra: A vocabulary for hypermedia-driven web APIs</article-title>
          .
          <source>In Proc. of the 6th WS on Linked Data on the Web (LDOW).</source>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>M</given-names>
            <surname>Leinberger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R</given-names>
            <surname>Lämmel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S</given-names>
            <surname>Staab</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>The essence of functional programming on semantic data</article-title>
          .
          <source>In Proc. of the 26th European Symp. on Programming (ESOP).</source>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>M</given-names>
            <surname>Magiridou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S</given-names>
            <surname>Sahtouris</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V</given-names>
            <surname>Christophides</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M</given-names>
            <surname>Koubarakis</surname>
          </string-name>
          .
          <year>2005</year>
          .
          <article-title>RUL: A declarative update language for RDF</article-title>
          .
          <source>In Proc. of the 4th Intl. Semantic Web Conf. (ISWC).</source>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>S</given-names>
            <surname>Narayanan and SA McIlraith</surname>
          </string-name>
          .
          <year>2002</year>
          .
          <article-title>Simulation, verification and automated composition of web services</article-title>
          .
          <source>In Proc. of the 11th Intl. Conf. on World Wide Web (WWW).</source>
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>KR</given-names>
            <surname>Page</surname>
          </string-name>
          , D de Roure, and
          <string-name>
            <given-names>K</given-names>
            <surname>Martinez</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>REST and Linked Data: a match made for domain driven development? In Proc. of the 2nd Intl. WS on RESTful Design (WS-REST)</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>C</given-names>
            <surname>Pautasso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            <surname>Ivanchikj</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S</given-names>
            <surname>Schreier</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>A pattern language for RESTful conversations</article-title>
          .
          <source>In Proc. of the 21st European Conf. on Pattern Languages of Programs (EuroPLoP).</source>
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>C</given-names>
            <surname>Pautasso</surname>
          </string-name>
          and
          <string-name>
            <given-names>O</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>The web as a software connector</article-title>
          .
          <source>IEEE Software</source>
          ,
          <volume>35</volume>
          ,
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>D</given-names>
            <surname>Roman</surname>
          </string-name>
          et al.
          <year>2005</year>
          .
          <article-title>Web service modeling ontology</article-title>
          .
          <source>Applied Ontology</source>
          ,
          <volume>1</volume>
          ,
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>SJ</given-names>
            <surname>Russell</surname>
          </string-name>
          and
          <string-name>
            <given-names>P</given-names>
            <surname>Norvig</surname>
          </string-name>
          .
          <year>1995</year>
          .
          <article-title>Artificial intelligence - a modern approach: the intelligent agent book</article-title>
          . Prentice Hall.
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>J</given-names>
            <surname>Shinavier</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Functional programs as Linked Data</article-title>
          .
          <source>In Proc. of the WS on Scripting for the Semantic Web (SFSW).</source>
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>M</given-names>
            <surname>Sintek</surname>
          </string-name>
          and
          <string-name>
            <given-names>S</given-names>
            <surname>Decker</surname>
          </string-name>
          .
          <year>2002</year>
          .
          <article-title>TRIPLE - A query, inference, and transformation language for the semantic web</article-title>
          .
          <source>In Proc. of the 1st Intl. Semantic Web Conf. (ISWC).</source>
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>S</given-names>
            <surname>Stadtmüller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S</given-names>
            <surname>Speiser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            <surname>Harth</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R</given-names>
            <surname>Studer</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Data-fu: a language and an interpreter for interaction with Read/Write Linked Data</article-title>
          .
          <source>In Proc. of the 22nd Intl. Conf. on World Wide Web (WWW).</source>
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>J</given-names>
            <surname>Umbrich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            <surname>Hogan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            <surname>Polleres</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S</given-names>
            <surname>Decker</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Link traversal querying for a diverse web of data</article-title>
          .
          <source>Semantic Web</source>
          ,
          <volume>6</volume>
          ,
          <fpage>6</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          <source>[39] UNEP and SKANSKA</source>
          .
          <year>2009</year>
          .
          <article-title>Energy eficiency in buildings.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>B</given-names>
            <surname>Ur</surname>
          </string-name>
          , MPY Ho,
          <string-name>
            <given-names>S</given-names>
            <surname>Brawner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S</given-names>
            <surname>Mennicken</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N</given-names>
            <surname>Picard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D</given-names>
            <surname>Schulze</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and ML</given-names>
            <surname>Littman</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Trigger-action programming in the wild: an analysis of 200,000 IFTTT recipes</article-title>
          .
          <source>In Proc. of the 34th Conf. on Human Factors in Computing Systems (CHI).</source>
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [41]
          <string-name>
            <surname>P van Eck</surname>
            ,
            <given-names>J</given-names>
          </string-name>
          <string-name>
            <surname>Engelfriet</surname>
            ,
            <given-names>D</given-names>
          </string-name>
          <string-name>
            <surname>Fensel</surname>
            , F van Harmelen,
            <given-names>Y</given-names>
          </string-name>
          <string-name>
            <surname>Venema</surname>
            , and
            <given-names>M</given-names>
          </string-name>
          <string-name>
            <surname>Willems</surname>
          </string-name>
          .
          <year>2001</year>
          .
          <article-title>A survey of languages for specifying dynamics: A knowledge engineering perspective</article-title>
          .
          <source>Transactions on Knowledge and Data Engineering (TKDE)</source>
          ,
          <volume>13</volume>
          ,
          <fpage>3</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [42]
          <string-name>
            <surname>M van Kleek</surname>
            ,
            <given-names>B Moore</given-names>
          </string-name>
          , DR Karger,
          <string-name>
            <given-names>P</given-names>
            <surname>André</surname>
          </string-name>
          , and m. c. schraefel.
          <year>2010</year>
          .
          <article-title>Atomate it! end-user context-sensitive automation using heterogeneous information sources on the web</article-title>
          .
          <source>In Proc. of the 19th Intl. Conf. on World Wide Web (WWW).</source>
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>R</given-names>
            <surname>Verborgh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T</given-names>
            <surname>Steiner</surname>
          </string-name>
          , D van Deursen,
          <string-name>
            <surname>S Coppens</surname>
          </string-name>
          , JG Vallés, and R van de Walle.
          <year>2012</year>
          .
          <article-title>Functional descriptions as the bridge between hypermedia APIs and the semantic web</article-title>
          .
          <source>In Proc. of the 3rd Intl</source>
          .
          <article-title>WS on RESTful Design (WS-REST)</article-title>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>