<!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>Towards Specification and Execution of Linked Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Andreas Harth</string-name>
          <email>harth@kit.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <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>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute AIFB, Karlsruhe Institute of Technology (KIT)</institution>
          ,
          <addr-line>Kaiserstr.12, 76131 Karlsruhe</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>62</fpage>
      <lpage>67</lpage>
      <abstract>
        <p>We introduce the formalism of Linked Systems for specifying and executing dynamical systems that operate over ReadWrite Linked Data. Linked Systems cover user agents (components that emit HTTP requests) and servers (components that receive HTTP requests). The formalisation is inspired by automata theory and the concepts of state transition systems and state machines. For the proposed formalism to scale to the web, we try to minimise the burden on component providers. We thus assume a Read-Write Linked Data interface that offers only a few operations: resources identified via URIs can be created and deleted, and the state of resources is expressed in RDF and can be read and updated. Our near-term goal is to provide executable specifications of autonomous behaviour expressed in a rule-based language, without requiring formal service descriptions of the operations on resources. In the long term, we plan to use our formalism as basis for applying techniques from the fields of formal verification and artificial intelligence (AI) planning.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>Users can gain access to arbitrary content and
functionality on the web with a browser in one unified user interface.
On mobile devices, however, the dominant user interface
to content and functionality are apps. Each tailored app
communicates with a backend server, often via web
protocols. Universal user interfaces are desirable so that users
can comfortably access any network-accessible component
or combinations of components. Potential future universal
user interfaces could be dialogue systems, such as chatbots
and virtual assistants, or virtual reality environments.</p>
      <p>A fundamental research challenge has been to find the
appropriate abstractions for interfaces to networked
components to facilitate the interaction with components and
enable the interoperation between them. Realising the overall
goal of enabling flexible access to content and functionality
from a large number of sources requires at least the following
from component providers:
1. A uniform protocol to decentralised components, to
be able to manipulate and interact with components
without writing adaptors.
2. A uniform data model, a suitable knowledge
representation language and an associated query language, to
be able to represent, integrate and query data on a
global scale.
3. A uniform description of the behaviour of components,
to be able to apply techniques from the fields of formal
verification and AI planning.</p>
      <p>
        With these uniform interfaces we could specify and
execute systems that operate autonomously; perform static
analysis, verification and simulation of these systems; and
automatically generate these systems, given component
descriptions and a goal. While these uniform interfaces been
available in closed systems (for example, in the field of
artificial intelligence), such a level of elaboration has been
elusive on the web, which is an open decentralised system with
many contributors. Different communities, however, work
towards providing (parts of) elaborate uniform interfaces in
open environments:
1. The followers of the architectural style
Representational State Transfer (REST) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] encourage people to
use the abstraction of resources, on which a constrained
set of operations (e.g. reading and writing, creating
and deleting) can be executed. Hyperlinks provide
connections between resources that provide data and
functionality. The Richardson Maturity Model (RMM)1
introduces different levels of adherence to the REST
ideas. RESTful interfaces, however, do not require a
certain syntax for the representation of resource state.
2. The Linked Data community follows a different (but
similar) set of principles [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] to publish and access data
on the web that mandate the Resource Description
Framework (RDF) as a graph-structured data model
for representing resource state. The Linked Data
principles, however, only cover read-access to resource state.
The combination of the higher RMM levels and Linked
Data leads to Read-Write Linked Data [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], in which
resources are linked and resource state represented in
RDF can be manipulated.
      </p>
      <sec id="sec-1-1">
        <title>1http://martinfowler.com/articles/</title>
        <p>richardsonMaturityModel.html
3. Finally, different communities concerned with
dynamical systems (for instance, control systems and
cyberphysical systems) abstract from specific protocols and
often use a simple data model. Formal descriptions of
services or actions – the “laws” of a system – are
central to the applied verification methods, such as model
checking or simulation. The Semantic Web
community had attempted to create a respectable amount of
fully-described services, and the REST community is
working towards having standardised input and output
descriptions for APIs widely available.</p>
        <p>Currently, we cannot assume that elaborate uniform
interfaces to components are commonplace on the open web.
Today, many APIs provide a resource-oriented modelling with
constrained operations (REST). Linked Data is popular for
read-access to RDF data. Read-Write Linked Data, as the
combination of the two popular paradigms, could provide
access to a sizable amount of components with a limited
additional burden for component providers, for example as
specified in the W3C Linked Data Platform
recommendation2 with editors from IBM and Oracle.</p>
        <p>Thus, in this paper, we focus on manual specification of
systems that operate on components which have a
ReadWrite Linked Data interface, but do not provide formal
service descriptions. The goal is to have a formal model of
systems that are able to use and provide Read-Write Linked
Data resources. We present an approach for executable
formal specifications. The approach can be extended to
support formal verification and AI planning in case a
sufficient amount of components with formal service descriptions
should become available.</p>
        <p>
          We have applied prototypes that implement the proposed
formalism for specifying interactive systems based on a
ReadWrite Linked Data interface in several settings. In the
German ARVIDA project3, we break up monolithic industrial
Virtual and Augmented Reality (VR and AR) systems into
components with a Read-Write Linked Data interface, and
specify and execute VR applications based on these
interfaces. In the European i-VISION project4, we provide means
to connect a workflow analysis software with a flight
simulator to perform Human Factors analysis of aircraft
cockpits in a VR environment at run-time; the components are
also based on Read-Write Linked Data interfaces. We have
demonstrated that the execution of the system specifications
achieved update rates sufficient for an immersive experience
in the VR environment [
          <xref ref-type="bibr" rid="ref11 ref12">11, 12</xref>
          ].
        </p>
        <p>We begin the remainder of the paper with related work
in Section 2, introduce necessary definitions in Section 3,
formalise the notion of a Linked System in Section 4, and
conclude with a summary and a list of open issues in
Section 5.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>RELATED WORK</title>
      <p>Dynamical systems are fundamental to many fields. Fields
concerned with the “real” world – such as physics, control
theory, and cyber-physical systems – study primarily
continuous-time systems. In the digital world of computation,
discrete-time systems are common, with a monotonically
increasing sequence of integers denoting time (often written
2http://www.w3.org/TR/ldp</p>
      <sec id="sec-2-1">
        <title>3http://www.arvida.de/</title>
      </sec>
      <sec id="sec-2-2">
        <title>4http://www.ivision-project.eu/</title>
        <p>as t). Given the enormous breadth of dynamical systems,
we can only provide a subjective selection of related work of
the discrete-time variants.</p>
        <p>
          In computational systems, Harel and Pneuli [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] introduce
the dichotomy between a transformational system “that
accepts inputs, performs transformations on them and
produces output” and reactive systems that in contrast “are
repeatedly prompted by the outside world and their role is
to continuously respond to external inputs”. The goal of our
work is to provide a formalism to specify reactive systems5
that combine both user agents (systems that emit requests)
and servers (systems that accept requests) into a single
representation.
        </p>
        <p>
          Formal models are popular for describing reactive systems
in closed environments [
          <xref ref-type="bibr" rid="ref1 ref15 ref2 ref5">5, 2, 15, 1</xref>
          ]. These approaches
require full descriptions of the “laws” of the systems, to be
able to generate the entire state space for a given
vocabulary if the systems have finite domains, or to use simulation
for infinite domains. However, often the data representation
is limited: either variables with values in the case of the
cyber-physical systems community, or propositional logic in
the case of the model checking and automata communities.
        </p>
        <p>McCarthy’s situation calculus is an early formalism to
describe dynamical systems in the area of artificial
intelligence. The situation calculus includes actions that can be
performed in the world and fluents that describe the
(changing) state of the world. As we conceptually operate on a
single ternary triple predicate for representing state, we do
not have the possibility to identify fluents (predicates that
change over time). Also, we assume the open web as task
environment rather than a closed system, and distinguish
between user agents and servers.</p>
        <p>
          Abstract State Machines (ASMs) [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] use first-order
structures (functions and relations) over a fixed vocabulary to
represent state. ASMs heavily inspired our approach, but
our formalism is targeted for the web: we use RDF instead
of first-order structures. We further do not make the
assumption of a fixed vocabulary, as on the web we want to
follow links during runtime, which may lead to hitherto
unknown URIs. Instead of arbitrary external functions to
interact with the environment, we limit the external functions
to HTTP requests with create-read-update-delete (CRUD)
methods.
        </p>
        <p>
          Approaches for Web Service Composition [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] are based
on XML-based WS-* standards, such as WSDL for
interface description to remote procedure calls [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. We use a
resource-based abstraction with CRUD operations instead.
These approaches use BPEL (Web Services Business Process
Execution Language), an industry standard for specifying
service compositions. We rather use a formal model based
on state transition systems as the foundation.
        </p>
        <p>
          The Guard-Stage-Milestone (GSM) framework for
artifactcentric workflows [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] provides a business process view on
dynamical systems. Instead of a fixed data schema (that is,
the information model as attribute/value pairs) partitioned
into data (static) and status attributes (fluent), we use the
semistructured RDF triples data model without the
distinction of fixed and fluent partitions. GSM systems operate on
incoming events and outgoing events. In contrast to GSM
and also our earlier work [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], we distinguish between
ac5Or interactive systems, that in contrast to newer definitions
of reactive systems do not have the strict timing requirement
to react at the pace of the environment.
tions and events, and user agents and servers. While GSM
assumes a fixed representation of different steps and
milestones in the system, we do not assume a fixed model but
provide the possibility to model such representations in RDF
triples. In GSM, updates to the world state are visible
immediately. In our model, updates to the world state are only
visible in the next step once a new sensing round accessing
the resource state has been carried out.
        </p>
        <p>
          Semantic Web Services [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] assume a fully described task
environment, and use expressive first-order logic, similar to
ASMs, to represent the state. In Semantic Web Services,
AI planning based on descriptions is central for combining
arbitrary network-accessible functions (via SOAP) into an
executable plan. Instead of arbitrary functions, we assume
a resource-oriented CRUD interface. We share the
longterm vision of Semantic Web Services and Agents in the
Semantic Web [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. But we focus on the part that we feel
is widely deployable today, namely specifying and executing
systems combining comparably simple Read-Write Linked
Data components without descriptions.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>PRELIMINARIES</title>
      <p>
        In the following, we provide definitions for web interfaces
based on a common access protocol and a common
knowledge representation language. We assume Read-Write Linked
Data [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], which informally can be alternatively viewed as
the combination of Linked Data [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and HTTP CRUD
operations, or as Web APIs on an RMM level of at least 2 that
serve RDF in one of its various syntaxes.
3.1
      </p>
    </sec>
    <sec id="sec-4">
      <title>Resources and URIs</title>
      <p>The following definitions build on the notions of a resource
a URI, an identifier for a resource.</p>
      <p>Definition 1 (Resource, URI). A resource is an
abstract notion for things of discourse, be they abstract or
concrete, physical or virtual (e.g., a document on the web, a
car, or the set of the natural numbers). A Uniform
Resource Identifier (URI) is a character string that identifies
a resource.</p>
      <p>A URI has a scheme, which is the beginning of the
character string until the first colon. The scheme specifies how to
interpret the rest of the URI. We focus on the http scheme
(the considerations analogously apply to the https scheme).
Moreover, we provide an analogy for http URIs with the
scheme file. Collections (e. g. lists, sets) are a particular
kind of resources, treated later.
3.2</p>
    </sec>
    <sec id="sec-5">
      <title>Hypertext Transfer Protocol</title>
      <p>While a URI with the scheme http first is to identify a
resource, the scheme also indicates that second we may be
able to interact with the resource using the Hypertext
Transfer Protocol (HTTP)6. HTTP is the prototypical variant of
REST.</p>
      <p>Definition 2 (HTTP Request, HTTP Response).
A HTTP message is a tuple hS, H, Bi, where S is the
mandatory start line, H is an optional list of header name/value
pairs, and B is the message body, also optional. A HTTP
request is a HTTP message in which the start line S consists
of a request line (with the HTTP method and the request</p>
      <sec id="sec-5-1">
        <title>6http://tools.ietf.org/html/rfc7230</title>
        <p>URI and the version information). In a HTTP response
message, the start line S consists of a HTTP status code
and information on the used HTTP version.</p>
        <p>Interaction with HTTP URIs is done in request/response
pairs. The message body B of a HTTP message contains a
representation of the current state of the resource identified
via the request URI in the start line. Representations of
state can vary over time, just like the resource can change.</p>
        <p>A HTTP request has a HTTP method in its status line.
The HTTP methods include GET, PUT, POST, and DELETE.
Less popular methods include PATCH and OPTIONS7. There
exists a rough mapping from the HTTP methods to the
CRUD operations, create, read, update, delete – the basic
operations for persistent storage, which we present as we
describe the HTTP methods. We call methods that are free
of side effects “safe”. The safe HTTP methods are:
• A GET request retrieves the representation of the
current resource state (corresponding to “read” in CRUD).
• An OPTIONS request results in the methods that are
allowed on a resource. The body of response messages
to OPTIONS requests could contain formal service
descriptions in a possible extension of our approach. We
currently do not use OPTIONS.</p>
        <p>Methods that change the state of a resource are called
“unsafe” (e.g., PUT, POST, DELETE, PATCH). The unsafe requests
(those are for “create”, “update” and “delete” in CRUD) are:
• A PUT request with message body b assigns b as the
representation of the resource state. PUT can be used
to create a resource with a URI set by the client.
• A PATCH request with body b updates a resource
representation (remove and add data) based on the sent
patch specification b.
• A POST request can serve different purposes:
– append data to an existing representation of a
resource;
– create a new resource with a URI determined by
the server; or
– perform RPC-style arbitrary data-processing (not
possible on file URIs).</p>
        <p>The POST request allows for data processing in a remote
procedure call (RPC) fashion. Therefore, POST allows
for invoking arbitrary operations (functions). To
benefit from the uniform interface of REST, in this
paper we only consider state updates, in-line with RMM
level 2.
• A DELETE request removes a resource.</p>
        <p>If multiple applications of the same method yield the same
result, we call these methods “idempotent” (e.g., GET because
it is safe, PUT because if the resource state is overwritten
multiple times with the same data, the resulting resource
state is still the same).</p>
        <p>Using the HTTP methods, we operate with resources
identified by URIs with the http scheme. Alternatively, we</p>
      </sec>
      <sec id="sec-5-2">
        <title>7http://tools.ietf.org/html/rfc7231</title>
        <p>can define the HTTP methods also for URIs with the file
scheme, i.e. URIs that identify files and directories. For
example, GET on such a URI would retrieve the content of the
file; PUT on a file URI would create the file with the
payload; PUT on a file URI ending in a slash character would
create a directory.
3.3</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Resource Description Framework</title>
      <p>As indicated by the Linked Data principles, we assume
that the representation of the state of resources is given
using the Resource Description Framework (RDF) in an RDF
graph.</p>
      <p>Definition 3 (RDF Term, Triple, Graph). The set
of RDF terms consists of the set of URIs U , the set of blank
nodes B and the set of RDF literals L, all being pairwise
disjoint. A tuple hs, p, oi ∈ (U ∪ B) × U × (U ∪ B ∪ L) is called
an RDF triple, where s is the subject, p is the predicate, and
o is the object of the triple. A set of triples is called RDF
graph.</p>
      <p>To be able to talk about the state representations retrieved
from multiple resources, i.e. multiple RDF graphs, we
introduce the notion of an RDF dataset.</p>
      <p>Definition 4 (Named Graph, RDF Dataset).
Let G be the set of RDF graphs and let U be the set of URIs.
A pair hg, ui ∈ G × U is called a named graph. An RDF
dataset consists of a (possibly empty) set of named graphs
(with distinct names) and a default graph g ∈ G without a
name.</p>
      <p>To talk about the state of resources at different times, we
introduce an index t, which denotes the point in time to
which an RDF dataset D refers, thus yielding Dt. We
assume discrete time represented as monotonically increasing
integers.</p>
    </sec>
    <sec id="sec-7">
      <title>LINKED SYSTEMS</title>
      <p>In the following, we first introduce the general notion for
dynamics in Linked Data which we call Linked Data
Transition System. We then define user agents and servers, and
next outline Linked Systems.</p>
      <p>The Linked Data Platform (LDP) recommendation poses
restrictions on how to interact with web resources,
particularly collection resources, in a Linked Data context. Our
Read-Write Linked Data interface as described in the
following definitions adheres to LDP where it concerns
HTTPbased interaction with collection resources. We omit the
various header fields that are part of LDP.</p>
      <p>On the web, we operate in a decentralised system in which
we cannot control each participant. REST provides a
limited set of constraints on the components that allow users
to assume a certain behaviour. The use of resource-based
CRUD operations is one such constraint. However, certain
behaviours are under-specified. For instance, if we overwrite
a resource state with PUT, the resulting state of the resource
may differ from what has been sent in the message body
of the PUT request. Also, changing the state of resource A
may affect the state of resource B. In our definitions of the
semantics of HTTP operations that follow, we allow such
side effects only to occur between collection resources and
element resources.
4.1</p>
    </sec>
    <sec id="sec-8">
      <title>Semantics of HTTP Operations</title>
      <p>Let S be an RDF dataset. We write St for RDF dataset
S at time t. With GET, we are able to obtain the resource
state, so that we can process the resource state as part of
our world model. Let u be a URI from U identifying not a
collection resource. Let r a request/response pair involving
u which relates to a named graph in S.</p>
      <p>We contrast the current state t of an RDF dataset S before
the request/response pair r with the state of S at t + 1 after
the request/response pair r. Now we can formally define how
PUT, POST and DELETE behave. We denote a “don’t-care” as
a dot (“·”).</p>
      <p>• PUT: Let r be a request/response pair hPUT u, ·, Bi,
h200 OK, ·, ·i. Applying r to St yields St+1, where in
St+1 the triples belonging to u are B.
• POST: Let r be a request/response pair hPOST u, ·, Bi,
h200 OK, ·, ·i. Applying r to St yields St+1, where in
St+1 there are additional triples (related to those in B,
if B 6= ∅) related to u.
• DELETE: Let r be a request/response pair hDELETE u, ·, ·i,
h204 No Content, ·, ·i. Applying r to St yields St+1,
where in St+1 there is no representation available at u.</p>
      <p>Now, let uc be a URI from U identifying a collection
resource.</p>
      <p>• PUT: PUT is not possible on collection resources (we
assume collections are managed by the server). LDP
does not require the PUT request to be supported in
the context of collections either.
• POST: Let r be a request/response pair hPOST uc, ·, Bi,
h201 Created, H, ·i. Applying r to St yields St+1,
where in St+1 there are additional triples (those in B)
related to a newly created8 URI ue that is linked to
uc. Also, uc is different now, as the link to the newly
created resource identified via URI ue is part of the
state of the collection resource. The set of headers H
contains ue as the value of the Location header. In
compliance with LDP, we assume no representation in
the body of the response.
• DELETE: Let r be a request/response pair hDELETE uc, ·, ·i,
h204 No Content, ·, ·i. Applying r to St yields St+1,
where in St+1 there is no representation available for
uc. Whether deleting the collection resource uc also
affects its associated element resources depends on the
type of the relation between the collection and its
elements (cf. the container types specified in LDP).
4.2</p>
    </sec>
    <sec id="sec-9">
      <title>Linked Data Transition System</title>
      <p>Having covered the semantics of one transition from t to
t + 1, we now can define a transition system that describes
resource states (represented as RDF datasets) over multiple
transitions. That is, we can we say what happens with the
resource state at t + 1 relative to resource state at t.</p>
      <p>Definition 5 (Linked Data Transition System).
Let Req, Resp be the set of all request/response pairs with
unsafe operations. A Linked Data Transition System is a
pair (S, →):
8Or taken from a pre-filled reservoir of URIs, for example
as defined in ASMs.
• A set of RDF datasets S representing resource states.
• The transition relation → over S × 2Req,Resp × S. We
can contrast the current state st with the next state
st+1, given a transition occurs. A transition consists
of a set of request/response pairs.</p>
      <p>For Linked Data Transition Systems we assume an
omniscient view, where we assume we can readily observe all
request/response pairs in the system and all resource states.
The states S are the states of all resources in the system. We
write s0, s1 . . . sn to denote datasets at different time points.
We write (so, ro, s1) ∈→ as so −r→0 s1. We can define the
history of a system by a sequence so −r→0 s1 −→ s2 . . ., where
r1
so, s1, s2 are states, and r0, r1 are sets of request/response
pairs.</p>
      <p>Next, we introduce a limited point of view, where we
distinguish the direction of requests relative to a user agent or
server.
4.3</p>
    </sec>
    <sec id="sec-10">
      <title>Actions and Events</title>
      <p>We now can define the notion of a Linked Data User
Agents and Linked Data Servers. A HTTP message
exchange involves two parties: user agents and servers. The
user agent creates the request and the server creates the
response.</p>
      <p>Definition 6 (User Agent, Action). Let Req be a
HTTP request message, and Resp be a HTTP response
message. The function send(Req, Resp) denotes a system
emitting Req and receiving Resp. An action is an outgoing
request/response pair. User agents are systems that emit
actions.</p>
      <p>We can group the actions into safe actions (GET) and
unsafe actions (PUT, POST, DELETE and PATCH).</p>
      <p>Definition 7 (Server, Event). Let Req be a HTTP
request message, and Resp be a HTTP response message.
The function receive(Req, Resp) denotes a system
receiving Req and sending Resp. An event is an incoming
request/response pair. Servers are systems that receive events.</p>
      <p>We can group the events into safe events (GET) and unsafe
events (PUT, POST, DELETE and PATCH).</p>
      <p>The same request/response pair is regarded as an action
in the user agent and as an event on the server. Informally,
the difference between user agents and servers is similar to
the difference between generators and recognisers in state
machines.
4.4</p>
    </sec>
    <sec id="sec-11">
      <title>Linked Systems</title>
      <p>We can now define the notion of a Linked System.</p>
      <p>Definition 8 (Linked System). Let A be the set of
all (outgoing) unsafe actions and let E be the set of all
(incoming) unsafe events. A Linked System consists of the
quadruple (S, s0, F, →):
• A set of RDF datasets S representing resource states.
• The initial state, s0 ∈ S.
• A set of the final states, F ⊆ S.
• The transition relation → over S × 2E × 2A × S. The
transition consists of a set of events from E and a set
of actions from A.</p>
      <p>Linked Systems cover both user agents and servers. In
case E is the empty set, we arrive at the special case of a
Linked Data User Agent. In case A is the empty set, we
arrive at the special case of a Linked Data Server.</p>
      <p>We now can define the execution of a Linked System.</p>
      <p>Definition 9 (Run, Step). A run of a Linked System
M is a sequence of states, unsafe events, and unsafe actions.
A run has multiple steps. One transition is a step. A
successful run starts in s0 and ends in a state sn ∈ F , where n
denotes the number of steps carried out during the run.</p>
      <p>An example of a one-step run would be so −e−o−,a→0 s1, where
s1 ∈ F .</p>
      <p>In case the Linked System is a user agent only (and thus
only emits actions), we can run the system from the
command line. In case the Linked System is a server, we have
to provide a HTTP interface to have the ability to receive
events.</p>
      <p>We start the execution of a Linked Data User Agent from
the command line. We start with the initial state so. As the
user agent does not receive events, we successively execute
steps until a final state f ∈ F is reached. Each step t consists
of the following:
• Collect the resource state st by dereferencing the graph
names in the RDF dataset st. We provide link
traversal specifications using rules that yield the graph names
to be dereferenced in a fixpoint procedure. We can also
provide deduction rules to encode different semantics
(such as RDFS or subsets of OWL). The result is a
materialised version of the resource state st.
• After computing the fixpoint to yield the overall
resource state, carry out the unsafe requests as specified
in the transition relation. The responses of the unsafe
requests become part of st+1.
• We also provide means to register queries that are
continuously evaluated on the current internal resource
state. To arrive at a fully streaming model, we are
only supporting SPARQL basic graph pattern queries,
which can be implemented in non-blocking operators.</p>
      <p>As the default, a new step t + 1 immediately starts once
step t has been finished. We are able to align the start of
each step at specified interval boundaries, or specify a wait
time between each step. We use the time-triggered execution
in our VR demonstrators at 30 Hertz (one step each 33ms).</p>
      <p>The execution of a Linked Data Server has to take into
account events from the external environment. We thus arrive
at an event-triggered execution model: the system runs once
the incoming request (an event) arrives. The run proceeds
as in the case of Linked Data User Agents. In case the run
succeeds, the response to the event includes a HTTP status
code in the 2xx range, denoting a successful run. Otherwise,
a server error (HTTP status code 500) is returned. Per
default, the union of the triples in the state st is serialised as
RDF triples in the body of the response. Optionally, we
can filter the triples with a query to reduce the amount of
returned data.</p>
    </sec>
    <sec id="sec-12">
      <title>CONCLUSION</title>
      <p>We have provided a formal account of Read-Write Linked
Data as a transition system. We have identified the two roles
of user agents (components that emit actions) and servers
(components that receive events), and have shown how both
roles can be understood in terms of the transition system.
We have outlined the notion of Linked Systems, which can
be instantiated in user agent or server roles, or both.</p>
      <p>
        We base the presented formalism on our experiences
collected with a prototype [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] that we have been using in a
variety of projects. In the implementation, we represent
the state transition relation in a variant of
event-conditionaction rules, where the condition serves as a guard that can
trigger the execution of an action. We currently only
implement non-blocking operators to enable stream processing.
Future work includes the finalisation of the syntax for rules
and a representation of traces of runs. We also consider
adding support for state representations other than RDF.
Our plan is to provide the system as open source.
      </p>
      <p>Our formalism can serve as the basis for parallel
execution. Given that Linked Systems are based on fundamental
notions common to many dynamical systems, the formalism
could be extended to incorporate further functionality. For
example, we could add invariants, which are observed and
checked during execution. In case a substantial amount of
descriptions for components become available, we could use
AI planning to generate the transition relation in a Linked
System from the descriptions of the components, given an
initial and a final state. To be able to use verification
techniques, we would likely define a reduced subset of the
presented Linked System, for instance providing finite domains
or reducing the flexibility of the RDF triples data model.</p>
    </sec>
    <sec id="sec-13">
      <title>Acknowledgements</title>
      <p>We thank Dieter Fensel for pointing out the possible
connection between REST and Abstract State Machines,
Martin Junghans for explaining IOPE descriptions and process
calculi, and Aidan Hogan for fruitful discussions related to
dynamics in Linked Data. We acknowledge support from the
BMBF ARVIDA project (FKZ 01IM13001G) and AFAP, a
BMBF Software Campus project (FKZ 01IS12051).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R.</given-names>
            <surname>Alur</surname>
          </string-name>
          .
          <article-title>Principles of Cyber-Physical Systems</article-title>
          . MIT Press,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Baier</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Katoen</surname>
          </string-name>
          .
          <article-title>Principles of Model Checking</article-title>
          . MIT Press,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          .
          <source>Linked Data. Design Issues</source>
          ,
          <year>2006</year>
          . http://www.w3.org/DesignIssues/LinkedData.html.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          .
          <article-title>Read-Write Linked Data</article-title>
          .
          <source>Design Issues</source>
          ,
          <year>2009</year>
          . http://www.w3.org/DesignIssues/ ReadWriteLinkedData.html.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>E. M.</given-names>
            <surname>Clarke</surname>
          </string-name>
          ,
          <string-name>
            <surname>Jr.</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Grumberg</surname>
            , and
            <given-names>D. A.</given-names>
          </string-name>
          <string-name>
            <surname>Peled</surname>
          </string-name>
          . Model Checking. MIT Press,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>E.</given-names>
            <surname>Damaggio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Hull</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Vacul</surname>
          </string-name>
          <article-title>´ın. On the Equivalence of Incremental and Fixpoint Semantics for Business Artifacts with Guard-Stage-Milestone Lifecycles</article-title>
          .
          <source>Information Systems</source>
          ,
          <volume>38</volume>
          (
          <issue>4</issue>
          ):
          <fpage>561</fpage>
          -
          <lpage>584</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>R. T.</given-names>
            <surname>Fielding</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. N.</given-names>
            <surname>Taylor</surname>
          </string-name>
          .
          <article-title>Principled Design of the Modern Web Architecture</article-title>
          .
          <source>ACM Transactions on Internet Technology (TOIT)</source>
          ,
          <volume>2</volume>
          (
          <issue>2</issue>
          ):
          <fpage>115</fpage>
          -
          <lpage>150</lpage>
          , May
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Gurevich. Abstract State</surname>
          </string-name>
          <article-title>Machines: An Overview of the Project</article-title>
          .
          <source>In Proceedings of the Third International Symposium on Foundations of Information and Knowledge Systems</source>
          , pages
          <fpage>6</fpage>
          -
          <lpage>13</lpage>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>D.</given-names>
            <surname>Harel</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Pnueli</surname>
          </string-name>
          .
          <source>Logics and Models of Concurrent Systems, chapter On the Development of Reactive Systems</source>
          , pages
          <fpage>477</fpage>
          -
          <lpage>498</lpage>
          . Springer,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hendler</surname>
          </string-name>
          .
          <article-title>Agents and the Semantic Web</article-title>
          .
          <source>IEEE Intelligent Systems</source>
          ,
          <volume>16</volume>
          (
          <issue>2</issue>
          ):
          <fpage>30</fpage>
          -
          <lpage>37</lpage>
          , Mar.
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>F. L.</given-names>
            <surname>Keppmann</surname>
          </string-name>
          , T. Ka¨fer, S. Stadtmu¨ller, R. Schubotz,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Harth</surname>
          </string-name>
          .
          <article-title>Integrating Highly Dynamic RESTful Linked Data APIs in a Virtual Reality Environment (Demo)</article-title>
          .
          <source>In Proceedings of the 13th IEEE International Symposium on Mixed and Augmented Reality</source>
          , pages
          <fpage>347</fpage>
          -
          <lpage>348</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>F. L.</given-names>
            <surname>Keppmann</surname>
          </string-name>
          , T. Ka¨fer, S. Stadtmu¨ller, R. Schubotz,
          <article-title>and</article-title>
          <string-name>
            <surname>A. Harth.</surname>
          </string-name>
          <article-title>High Performance Linked Data Processing for Virtual Reality Environments</article-title>
          .
          <source>In Poster &amp; Demo Proceedings of the 13th International Semantic Web Conference</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>N.</given-names>
            <surname>Milanovic</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Malek</surname>
          </string-name>
          .
          <article-title>Current Solutions for Web Service Composition</article-title>
          .
          <source>IEEE Internet Computing</source>
          ,
          <volume>8</volume>
          (
          <issue>6</issue>
          ):
          <fpage>51</fpage>
          -
          <lpage>59</lpage>
          ,
          <year>Nov 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>C.</given-names>
            <surname>Pautasso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann. RESTful Web</surname>
          </string-name>
          <article-title>Services vs</article-title>
          . ”Big” Web Services:
          <article-title>Making the Right Architectural Decision</article-title>
          .
          <source>In Proceedings of the 17th International Conference on World Wide Web</source>
          , pages
          <fpage>805</fpage>
          -
          <lpage>814</lpage>
          . ACM,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>K.</given-names>
            <surname>Schneider</surname>
          </string-name>
          .
          <source>Verification of Reactive Systems: Formal Methods and Algorithms</source>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Stadtmu</surname>
          </string-name>
          ¨ller,
          <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>
          .
          <article-title>Data-Fu: A Language and an Interpreter for Interaction with Read/Write Linked Data</article-title>
          .
          <source>In Proceedings of the 22nd International Conference on World Wide Web</source>
          , pages
          <fpage>1225</fpage>
          -
          <lpage>1236</lpage>
          . ACM,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>R.</given-names>
            <surname>Studer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Grimm</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Abecker</surname>
          </string-name>
          .
          <source>Semantic Web Services: Concepts</source>
          ,
          <source>Technologies, and Applications</source>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>