<!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>Agreements in a Decentralized Linked Data Based Messaging System</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Florian Kleedorfer</string-name>
          <email>fkleedorfer@researchstudio.at</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Heiko Friedrich</string-name>
          <email>hfriedrich@researchstudio.at</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christian Huemer</string-name>
          <email>huemer@big.tuwien.ac.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute for Software Technology and interactive Systems, Vienna University of Technology</institution>
          ,
          <addr-line>Favoritenstrae 9-11, 1040 Vienna</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Research Studio Smart Agent Technologies</institution>
          ,
          <addr-line>Thurngasse 8/16, 1090 Vienna, Austria (fkleedorfer</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>People frequently use internet-based messaging systems to coordinate. In order to achieve that, it is su cient for them to exchange natural language messages. The message history they generate can be seen as a shared database that can be tapped into by personal assistive systems; moreover, messaging is increasingly used for human-computer communication. However, if natural language understanding is required for such systems to function properly, the cost of developing them is high and only few market players will be able to compete. If, on the other hand, it is possible to mix machine-interpretable data with natural language conversations, assistive or conversational programs may be developed more easily. As a rst important challenge, we tackle the problem of negotiating agreements and unambiguously represent what has been agreed upon in a machine-readable form. In this paper, we propose an extension of the Web of Needs, a decentralized, Linked Data based matching and messaging system, to allow conversation partners to produce a mutually agreed-upon RDF dataset.</p>
      </abstract>
      <kwd-group>
        <kwd>Linked Data</kwd>
        <kwd>messaging</kwd>
        <kwd>agreements</kwd>
        <kwd>e-negotiation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Agreement is commonly considered as \a negotiated and typically legally
binding arrangement between parties as to a course of action"[
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. When we look at
the dominant ways to reach such agreements today, we see three clusters. The
classic way is that people come to an agreement in some kind of oral or written
conversation. With the advent of modern information technology, another way of
agreeing on the speci cs of a transaction evolved: technological artifacts
(Websites, mobile apps) that require users to provide certain information needed to
render a service. The common pattern in the second cluster is a xed Web API
on one side and a human who lls in the parameters on the other side. Here,
the API exhibits little to no exibility, and agreement depends on the person
understanding the interface the way the designers intended them to.
      </p>
      <p>A third option is gradually evolving in the form of chatbots and other
conversational systems. The way such systems are typically built, they mix natural
language conversation with structured or semi-structured data exchange, for
example by providing natural language patterns for allowing users to perform the
equivalent of API function calls, or GUI widgets to ask users for speci c
information. This setup allows for more exibility on the side of the service provider.
However, the success of the transaction depends on the chatbot understanding
the person correctly.</p>
      <p>
        The eld of electronic negotiations research (for a taxonomy of the eld,
see the work by Strobl and Weinhardt [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]) is striving to develop a fourth
option in which a communication medium produces agreement as an integrated
functionality that can be relied upon by people and software agents alike. Such
a medium might reduce the burden on intelligent conversational systems and,
if available as an open, federated system, make it cheaper and easier for new
market participants to enter.
      </p>
      <p>
        Motivated by this vision, we describe an extension of a decentralized, Linked
Data based communication system, the Web of Needs (WoN) [
        <xref ref-type="bibr" rid="ref11 ref12">12, 11</xref>
        ], that helps
users nd cooperation partners based on mutual interest, and provides a
communication channel. With the proposed extension, the communication partners
can negotiate the contents of an RDF dataset containing mutually agreed-upon
data that can be used for further coordination.
      </p>
      <p>This paper is organized as follows. In Section 2 we explain how our work
compares to existing approaches in the eld of electronic negotiation systems.
Section 3 establishes the technological background required to understand our
contribution. The contribution itself is described in Section 4, which is followed
by a discussion of important design decisions in Section 5.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>This section is divided into two parts. In the rst part we compare our approach
with other e-negotiation systems and protocols. Responding to the community's
interest, in the second part we compare agreements in WoN to blockchain-based
solutions.
2.1</p>
      <sec id="sec-2-1">
        <title>Negotiation Systems</title>
        <p>
          The purpose of the protocol extensions described in this paper is to facilitate
and organize electronic two-party negotiations in the Web of Needs. Systems
that employ Internet technologies (e.g. open Linked Data) and are deployed
on the Web are usually called e-negotiation systems (ENS) [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] and originate
from negotiation support systems (NSS). Many e-negotiation systems that are
based on game theoretic models or heuristic approaches restrict the negotiation
domain, negotiation object, negotiation protocol, negotiation rules or
communication language in order to enable autonomous agents for automatic negotiation
processes [
          <xref ref-type="bibr" rid="ref15 ref21 ref9">9, 15, 21</xref>
          ]. This is also true for scenarios where automated agents
negotiate with humans [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. Some systems apply more exible approaches by not
hard-coding negotiation protocols but expressing them by ontologies [
          <xref ref-type="bibr" rid="ref25 ref3">3, 25</xref>
          ] or
by letting participants construct rules in open e-negotiation protocols [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          According to the Montreal Taxonomy [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ], which is the rst attempt of a
generic comprehensive classi cation scheme of e-negotiation processes and
systems [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], electronic markets can be divided into di erent phases of interaction:
Knowledge, Intention, Agreement and Settlement. So far the main focus of Web
of Needs was on the Intention phase where supply and demand is speci ed by
market participants. With the support of electronic negotiation processes, WoN
can support users in the Agreement phase as well, in which terms and conditions
of transactions are identi ed, and a contract can be signed.
        </p>
        <p>
          In the Web of Needs the goal is to support negotiation between humans in
the rst place but keep the system open and structured enough for automated
agent negotiation. Argumentation based negotiation approaches [
          <xref ref-type="bibr" rid="ref1 ref21">1, 21</xref>
          ]
emphasize the importance of expressive communication (for exchanging information,
resolving uncertainties, revising preferences, etc.) as an integral part of the
negotiation process. In more complex scenarios this often enables agents (human
or automated) to nd an agreement in the rst place. Therefore we want to keep
the full exibility and expressiveness of natural language in negotiating about
arbitrary domains and objects while still having structured agreements as an
outcome.
        </p>
        <p>
          These structured agreements are more than just an interaction history of
messages and can be compared to what is referred to as commitment stores [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
Commitment stores are used to explicitly track statements of the participants of
a conversation. There are commitment rules that decide if statements are added
or removed from a commitment store. In contrast to plain interaction histories,
statements in commitment stores are meant to have explicit consequences, for
instance promising to execute certain actions automatically if speci ed
conditions are reached. This notion of structured agreements is realized by referring to
exchanged messages using RDF triples [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] and thereby marking them as issues
of a proposal that can subsequently be accepted by the other participant so as to
form an agreement. The content, number of issues and order of exchanged
messages between participants is completely unrestricted and proposals/agreements
can be formed (as well as retracted/canceled) directly from messages during
the communication. Since these structured agreements can be automatically
extracted from the message interaction history, the system represents a
combination of communication-oriented and document-oriented approaches (e.g. [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]).
This combination has the advantage of allowing informal communication to help
avoid misunderstandings and errors, while still producing a document collection
containing the result of the negotiations, and is particularly valuable in
businessto-business (B2B) scenarios [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ]. In many B2B scenarios (for instance public
procurement [
          <xref ref-type="bibr" rid="ref18 ref6">6, 18</xref>
          ]), agreements could be used to create legal contracts[
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Di erentiation from Blockchain Technologies</title>
        <p>
          The agreement protocol layer is built on the Web of Needs message protocol
layer, which generates a signed message interaction history for the two
participants of the communication. This guarantees authentication, integrity and
nonrepudiation for agreements or contracts (cf. [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]) as well as for the whole message
history. Every message references the signature of previous non-referenced
messages therefore creating a structure which has some similarity to a blockchain.
However in contrast to a blockchain this structure represents a consensus that
affects only two participants and is not distributed to nodes of the whole network.
The use of blockchains for storing negotiations and contracts has already been
proposed [
          <xref ref-type="bibr" rid="ref26 ref28">26, 28</xref>
          ]. Identi ed trade o s were the limitation of data that can be
stored on the blockchain as well as the communication latency that might result
in poor user experience if too much data is communicated over the blockchain.
In the following we list di erences between WoN and a blockchain approach:
        </p>
        <p>Maturity. WoN is still being developed, the protocol can be expected to
change. It has not undergone an independent security review yet, nor is the
current protocol documented in full. To the best of our knowledge, nobody has
ever seriously tried to hack WoN. Blockchains, on the other hand, are quite
mature and widely considered secure.</p>
        <p>Network structure. Blockchains are distributed whereas WoN is
decentralized. Some WoN nodes are bound to become more important than others
(i.e., host more needs). Outage of a WoN node means that all needs it hosts are
unavailable.</p>
        <p>Data distribution. The blockchain essentially is a transaction log shared by
all parties that want to have transactions or sign blocks. In WoN, conversations
are data structures shared only between the participants and the WoN nodes
they use.</p>
        <p>Currency. Blockchain-based smart contracts require some kind of currency.
In contrast, a clear design goal in WoN was to build a technological layer for
expressing reasons for interaction, establishing contacts, and communicating and
to separate this layer from an accounting layer on which payments are made.
This decision has two reasons: rst, WoN is not tied to any speci c payment
system and may well be able to interface with all of them. Second, for some
interactions, payment is not necessary, or may even be detrimental in the sense
that they may never occur if they were tied to payment.</p>
        <p>Strength of guarantees. The guarantees that can be made for a
WoNbased agreement are weaker than a blockchain based smart contract, at least
if the blockchain has enough mutually independent miners. In WoN, one must
always be prepared to be communicating with an attacker who controls the WoN
node she is using. Some of the possible attacks are: a) An attacker can at all
times remove all traces of the needs she creates or the conversations she has via
those needs at any time from her WoN node. In that case we are left with the
complete conversation history on our WoN node, but no counterpart to talk to,
or to report to the police, for example. Therefore, additional trust mechanisms
may be required. b) An attacker may choose to ignore messages. We will never
be able to prove that they received the message if they do not want to. In WoN,
you can only prove the message history that both parties have approved. c) An
attacker may control her own WoN node as well as the one we are using. As we
sign all our messages, our WoN node cannot fake our messages, but it can decide
to drop them, or to drop messages coming from the counterpart. From our point
of view, the conversation will consist of all messages that were let through.</p>
        <p>Fake interactions. Because no proof of work or proof of stake is required
in WoN, it is always possible to set up fake conversations, which may be used in
an attack to trick users into thinking a participant has been around for a long
time and received many positive reviews (another feature we're planning), but
in fact has just set up a new fake need. In contrast, the data in a blockchain
cannot be faked.</p>
        <p>Self-execution of contracts. In the ethereum system, contracts are
written in a programming language, such that they react to state changes in the
blockchain. In WoN, agreements as proposed in this paper are just arbitrary
RDF datasets that the participants agree upon, i.e., static data. However, it
does seem possible to achieve similar functionality by embedding e.g. SHACL
shapes, SPARQL queries, or Javascript in a WoN agreement and de ning how
that code is to be evaluated.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Background</title>
      <p>Our approach for the negotiation of agreements over Linked Data is based on
the Web of Needs (WoN) architecture. In this section, we explain the aspects of
WoN that are required to understand our approach.</p>
      <p>The central idea of WoN is to connect people or software agents based on
their intentions, or as we call them, needs, in a decentralized infrastructure built
on top of Linked Data and related Web technologies. When their needs have been
matched, users of di erent Web domains can establish a communication channel.
The architecture does not limit users in the description of their needs, nor is the
content of the messages they exchange restricted in any way. One core bene t of
this approach is that matchmaking, arguably a highly centralized functionality
in today's Web, can be realized in a decentralized fashion. When connected, users
have conversations by exchanging messages. In the simplest case, a conversation
is a chat session. However, the messages can contain arbitrary RDF data, and
they are stored online in an immutable fashion, e ectively providing an add-only
RDF store shared between users. They can thus collaboratively build a shared
RDF data model of their relationship and use it for aligning their expectations
and coordinating their actions.
3.1</p>
      <sec id="sec-3-1">
        <title>Components and Responsibilities</title>
        <p>Users (or software agents) publish a Linked Data resource on the Web
describing their interest in an interaction. This resource is referred to as a need, the
agent that created it is its owner, who used an owner application to create the
resource, which in turn published it on a server that supports the WoN protocol,
called a WoN node. The need description can contain a self-description and a
description of the need it should be matched with. Independent matching services
can subscribe to changes on the WoN node and crawl their content. Whenever
a matching service nds a suitable pair of needs, it informs them of each other's
existance. Consequently one could describe a need as a persistent, self-describing
search query that can be discovered by other such queries, and that serves as a
bi-directional communication proxy.</p>
        <p>WoN nodes ful ll two purposes. On the one hand, they store and serve all the
data, and on the other hand, they serve as message brokers, routing messages
directed at needs and o ering updates via a publish-subscribe system.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Message Composition and Delivery</title>
        <p>Messages are realized as RDF datasets that are created by owners or WoN nodes,
and that are de-referencable under their message URI, minted by the sender, on
the sender's WoN node. Message datasets contain three types of graphs: content
graphs, envelope graphs and a signature graph. Content graphs can contain any
kind of RDF data (including higher-level protocol data, see Section 4) that the
sender wants to communicate to the recipient. Envelope graphs contain meta
data about the message like the addressing information or references to other
envelopes that were created during processing of messages. Both kinds, content
and envelope graphs are cryptographically signed during the process of sending
and receiving messages. Envelope graphs are added consecutively by each party
processing the message, linking them up in a chain. The signature of the last
('outermost') envelope graph in the chain is placed in a signature graph. The
rst ('innermost') content graph of a message links to the content graphs and
includes their signatures. The structure of a message which is sent from an owner
to a WoN nodes is depicted in Figure 1.</p>
        <p>
          A message that is delivered to another need is sent to that need's WoN node,
stored there, and dereferencable on that node under an URI that the sender's
node mints in the recipient's node's URI space. The two copies, the local copy
and the remote copy reference each other so as to make the message delivery
tractable. All participants sign the data they add to the message using their
respective WebID [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. The dataset representing a message has an empty default
graph to avoid mixing triples from di erent messages when aggregating data.
        </p>
        <p>We de ne D to be the set of all possible RDF datasets. The boolean-valued
function isMsg : D ! ftrue; f alseg indicates whether a given dataset is a
processable message. M = fm 2 DjisMsg(m) = trueg is the set of all possible
messages. As messages do not have default graphs, messages are sets of named
graphs, i.e. M P(I G), where P denotes the powerset, I denotes the set of
all possible IRIs, and G denotes the set of all possible RDF graphs.</p>
        <p>A WoN node always responds to a message it receives with a
SuccessResponse or a FailureResponse message, which is itself delivered to the sender
of the original message and stored on the WoN node. The sender of a message
may either be an owner, a remote node, or the WoN node itself. A message is
referred to as failed if any of the WoN nodes involved responds with a
FailureResponse message. If at least one of the WoN nodes does not respond to the
message at all, it is referred to as ignored. We use the boolean valued functions
failed : I P(M) ! ftrue; f alseg and ignored : I P(M) ! ftrue; f alseg
to express that a message with a given IRI has failed or was ignored in a given
set of messages.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Creating Needs and Establishing Connections</title>
        <p>A need is created by sending a Create message containing the need description
along with a public key to a WoN node. The need creator mints two URIs in the
URI space of the WoN node in the process, the message URI (as explained above)
and the Need URI. The latter is used as the root resource of the need description.
Upon receiving the message, the WoN node makes the need description available
as Linked Data and responds with a SuccessResponse.3</p>
        <p>
          Need owners can ask other needs to establish a Connection by performing a
handshake of a Connect and an Open message (or a Close message to deny
the connection). Matching services can suggest a connection by sending a Hint
message to one or both of the needs involved. In that case, the connection is
created by the WoN node, but the owners still have to establish the connection
by an Open/Open handshake. In an established connection, the need objects
can freely exchange ConnectionMessage messages.3 The exchanged messages
form two parallel signature chains on both WoN nodes as new messages refer to
signatures of earlier (formerly unreferenced) messages. Moreover, these chains
reference each other since each transferred message contains a reference to its
remote copy. The message chain structure resulting from connecting two needs
is depicted in Figure 2.
3 In an earlier work [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] we show sequence diagrams of the message exchange taking
place upon need creation (Figure 5) and connecting (Figure 6)
        </p>
        <p>
          Needs and connections have event containers, which are modeled after
pageable LDP containers[
          <xref ref-type="bibr" rid="ref23">23</xref>
          ].4 When stored, a message is added to the event container
of the object it belongs to. Create, Activate, and Deactivate messages are
stored in the respective need's event container. All other messages are added to
the respective connections's event container.
        </p>
        <p>When processed by the WoN node, an envelope graph is added to the
message. Besides other message metadata, references to previous messages in the
same event container are added in the form of signature references citing the
signature value. By doing so, all messages become part of a signature chain,
making message modi cation prohibitively hard, as signatures depend on
signatures created by the two owners and up to two nodes involved in a conversation.
When a connection is created for a need, the rst message in the connection
references the need's create message, thereby tying the need's messages to the
connection's.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Protocol Layers: From Conversations to Agreements</title>
      <p>In the following, we consider a conversation between two need owners, o1 and o2
that connects their needs n1 and n2 via their connections c1 and c2.</p>
      <p>The conversation is the union of all messages that are accessible to o1 in the
conversation with o2, at the point in time when m is the last message seen by
o1. This point in time is de ned as either the reception of the remote response if
o1 is the sender of m. If o1 is the recipient, the point is de ned as the time the
response to m in c1 is sent.</p>
      <p>The set of all possible conversations is de ned as the powerset of all possible
messages C = P(M) (which, as stated earlier, is equal to P(I G)). We de ne
the raw conversation dataset Cr(o1; o2; m) as the union of all messages in the
4 Note that the current implementation of WoN is not based on LDP, it only uses the
paging interface of LDP containers.
event containers of n1; n2 and c1. As we will regard o1 and o2 as xed for the
remainder of the paper, describing the situation from the point of view of o1, we
will write Cr(m) instead of Cr(o1; o2; m).</p>
      <p>The raw conversation dataset consists of all messages exchanged, or
attempted to be exchanged. It is used to verify the integrity of the message history
based on the chain of message signatures. It can be seen as a monotonically
growing RDF store that the participants can only manipulate by adding messages. In
the context of WoN, this dataset is intended to be used as a device that allows
users to coordinate, that is, to build a shared, and at least partly agreed-upon
model of their relationship. In order to allow for the latter, we de ne higher-level
conversation protocols based on Cr. For doing this, we rst make some auxiliary
de nitions:</p>
      <p>The function iri : M ! I gives the IRI of the input message.</p>
      <p>The function iris : C ! I yields the IRIs of all all message in the speci ed
conversation dataset.</p>
      <p>The function msg : I C ! M yields the message dataset of the message
with the speci ed IRI in the speci ed conversation dataset.</p>
      <p>The function sender : I C ! I yields the IRI of the sender of the input
message.</p>
      <p>The function happenBefore : I I C ! ftrue; f alseg is true if there is
a signature reference path in C from the message identi ed by the second IRI
and all of its Responses to the message identi ed by the rst IRI and all of its
responses, respectively.</p>
      <p>The function content : I C ! G yields the union of all content graphs of
the message with the speci ed IRI in the speci ed conversation dataset.</p>
      <p>The function strip : M ! M removes all content graphs from the input
message.</p>
      <p>In the following we de ne a number of conversation protocols based on these
de ntions.
4.1</p>
      <sec id="sec-4-1">
        <title>Acknowledgement Protocol</title>
        <p>As stated earlier, message delivery can fail, and messages can be ignored. In
both cases, we are dealing with messages that were not provably delivered to the
conversation partner. In this protocol layer, we want to present only the content
that was provably delivered, therefore we exclude the content of these messages
in the acknowledged selection Sack : C ! C:
where</p>
        <p>Sack(C) =</p>
        <p>[
m2iris(C)</p>
        <p>cleanup(m; C)
8 strip(msg(m)) if failed(m; C) = true
cleanup(m; C) = &lt; _ ignored(m; C) = true
: msg(m) otherwise
(1)
(2)
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Modi cation Protocol</title>
        <p>
          We intend to allow participants to specify SHACL shapes [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] de ning the
information they require their counterpart to provide. Moreover, executing SPARQL
queries [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] over the conversation dataset can be useful for a number of use cases.
However, for accurately representing a shared model of the conversation content,
it is necessary to allow participants to change their mind or to correct mistakes,
which means, there must be a way to modify past messages. Modifying is only
allowed in one way: by marking one's own earlier messages as no longer to be
considered or, as we will call it in the remainder of this work, as retracted.
        </p>
        <p>For modelling the modi cation of messages, we introduce the Modi cation
ontology5, pre xed 'mod'. It speci es only one ObjectProperty, mod:retracts,
that is used in triples linking two message IRIs, the subject being the retracting
message, the object being the retracted message.</p>
        <p>The function retracts : I C ! P(I) returns all message IRIs linked to
from the input message via mod:retracts in any of its content graphs. The
function isRetracted : I C ! ftrue; f alseg is de ned as follows:
isRetracted(m; C) =
m 2 iris(C)
^ 9r 2 iris(C) :
m 2 retracts(r; C)
^ sender(m; C) = sender(r; C)
^ happenBefore(r; m; C) = true</p>
        <p>The modi cation functionality is provided by the modi cation selection Smod :
C ! C as</p>
        <p>Smod(C) =</p>
        <p>[
m2iris(Sack(C))</p>
        <p>modifyMessage(m; Sack(C))
where
modifyMessage(m; C) =
8 strip(msg(m)) if isRetracted(m; C) = true
&lt;</p>
        <p>strip(msg(m)) if retracts(m; C) 6= ;
: msg(m) otherwise
(3)
(4)
(5)</p>
        <p>The e ect of this selection is that the content graphs of retracted messages
and those of the retracting messages are removed in the result. The selection is
applied to Sack, hence modi cations only have an e ect if they do not fail and
are not ignored.</p>
        <p>The messages referenced through the mod:retracts property are said to be
retracted.
5 See http://purl.org/webofneeds/modification [2017/07/23].
The fact that the message history can be modi ed does not mean that both
participants agree on anything. It just allows them to revise earlier statements,
which is not su cient to coordinate actions between agents. In order to
coordinate, it is required to come to a shared understanding about facts, which requires
that the agents state the facts and that they signal each other that they agree
on them. In the Semantic Web, the core of such an agreement naturally is a set
of triples. Consequently, the agreement protocol allows the participants to select
a set of triples as agreed-upon.</p>
        <p>The result is formally de ned as the agreement function Fagr : C ! D,
yielding a dataset in which each graph corresponds to one agreement in the
conversation C and the associated graph name is an IRI that identi es the
agreement.6 In the following, we de ne Fagr.</p>
        <p>In order to represent agreements, we allow participants to propose the content
graphs of a set of earlier messages as the content of an agreement, to accept a
proposed agreement, and to cancel an accepted agreement.</p>
        <p>Again, we introduce an ontology, the Agreement ontology7, pre xed 'agr'
that de nes the properties agr:proposes, agr:proposesToCancel, and agr:
accepts, and the classes agr:Proposal and agr:Agreement.</p>
        <p>agr:proposes, domain agr:Proposal, is used to link the IRIs of two
messages p and c in a triple iri(p) agr:proposes iri(c). Such a triple only has an
e ect in this protocol if it occurs in a content graph of p, making p a proposal
that can be accepted. We call the message c an clause of the proposal. There is
no limit on the number of clauses in a proposal.</p>
        <p>agr:accepts, domain agr:Agreement, is used to link the IRIs of two
messages a and p in a triple iri(a) agr:accepts iri(p). Such a triple only has an
e ect in this protocol if it occurs in the content graph of a if p is actually a
proposal. In that case, we say that a accepts the proposal p. There is no limit
to the number of proposals that can be accepted by one message a.</p>
        <p>agr:proposesToCancel, domain agr:Proposal is used to link the IRIs of
two messages a2 and a1 in a triple iri(a2) agr:proposesToCancel iri(a1).
Such a triple only has an e ect in this protocol if it occurs in a content graph of
a2, if a1 is an earlier agreement that has not been canceled yet</p>
        <p>There are no restrictions concerning the combined use of these properties in
one content graph, that is, one message can accept any number of proposals,
propose any number of other messages, and propose to cancel any number of
agreements. As will be explained in the following, the e ects of these statements
do not in uence each other. It is thus possible to propose an agremeent that
replaces another one by mixing agr:proposes and agr:proposesToCancel. It
is even possible to make a proposal and agree to another proposal in one message.</p>
        <p>The agreement protocol depends on the acknowledgement protocol and on
the modi cation protocol: We want to make sure that only provably delivered
messages can play a role in the agreement protocol, and we want to allow that
until accepted, proposals and clauses can be retracted. However, after its
acceptance, an agreement must remain una ected by later retractions - the only way
to get rid of an agreement must be to make a new one that cancels it.</p>
        <p>For de ning the agreement function we need to make some auxiliary de
nitions:</p>
        <p>accepts : I C ! P(I) returns all message IRIs linked to from the input
message via agr:accepts in any of its content graphs.</p>
        <p>proposes : I C ! P(I) gives all the message IRIs the input message links
to via agr:proposes in any of its content graphs.
6 Note that Fagr, in contrast to Smod and Sack, does not simply select named graphs
from a dataset. Rather, it selects them and recombines their triples, hence we do
not refer to it as a selection.
7 See http://purl.org/webofneeds/agreement [2017/07/23].
proposesToCancel : I C ! P(I) gives all the message IRIs the input
message links to via agr:proposesToCancel in any of its content graphs.</p>
        <p>hasContent : I C ! ftrue; f alseg) indicates if the message with the
speci ed IRI in the speci ed conversation dataset has at least one content graph.</p>
        <p>The function isProposal : I C ! ftrue; f alseg is de ned as follows:
(6)
(7)
isProposal(m; C) =
isProposal is true for message m in the conversation dataset C if C contains all
messages that are proposed or proposed to be canceled. These messages need to
happen before m (thereby also disallowing m to propose itself) and need to have
at least one content graph. This last condition ensures that such a structure is
not a proposal if evaluated over Smod(C) and one or more of its clauses have
been retracted, because such a clause does not have a content graph in Smod(C).</p>
        <p>The function isAgreement : I C ! ftrue; f alseg is de ned as follows:
isAgreement(m; C) =
m 2 iris(C) ^ 8p 2 accepts(m; C) :
isProposal(p; C) = true
^ happenBefore(p; m; C) = true
^ sender(m; C) 6= sender(p; C):
isAgreement is true for message m in C if that message accepts a proposal that
was made earlier by the counterpart of the sender of m.</p>
        <p>isProposal and isAgreement only regard messages before their input
message m, hence they can be evaluated over C(m) instead of C without changing
the result. Doing that is actually required if we allow retraction of messages
(using Smod), because messages added to C after m may change the result of
isProposal and isAgreement. Therefore, for evaluating agreements over Smod,
we have to do it at point m in the conversation, or Smod(C(m)), which is used
in the following de nitions.</p>
        <p>As we want to allow agreements to be cancelled later, we have to distinguish
between valid and canceled agreements. The function isValidAgreement : I
C ! ftrue; f alseg is de ned as follows:
isValidAgreement(m; C) =
isAgreement(m; Smod(C(m))) = true ^ :9c 2 iris(C) :
isAgreement(c; Smod(C(c))) = true ^ 9p 2 iris(Smod(C(c))) :
p 2 accepts(c; Smod(C(c)) ^ m 2 cancels(p; Smod(C(c))):
(8)</p>
        <p>isValidAgreement is true if agreement m was not canceled by a later
agreement c, which would have to accept a message p that proposes to cancel m. Note
that c is itself not checked for validity this way, so if c does cancel m, and c is
itself cancelled later, m remains cancelled. There is no way to restore a cancelled
agreement.</p>
        <p>Now that we have de ned valid agreements, we can proceed to show how to
calculate the content of one agreement, and how to calculate all contents of all
agremeents in the conversation, which is the output of Fagr.</p>
        <p>The function clauses : I C ! P (I), yielding the IRIs of all clauses in an
agreement (valid or invalid), is de ned as follows:
clauses(m; C) =
: ;
=
&lt;8 fc 2 I j c 2 proposes(p; Smod(C(m)))g;
p 2 accepts(m; Smod(C(m)))
if isAgreement(m; Smod(C(m))
otherwise
(9)
The function agreementContent : I</p>
        <p>C ! D is de ned as follows:</p>
        <p>[
c2clauses(m;Smod(C(m))
agreementContent(m; C) =
content(c; Smod(C(m)))</p>
        <p>The agreement function Fagr, applied to Cr, yields a dataset in which each
graph corresponds to one valid agreement in the conversation. The name of each
such graph in the result dataset is the IRI of the message that accepted the
agreement.8 The triples in each such graph are the union of the triples of all
content graphs in all clauses of the agreement. Note that if the agreement has
no clauses (i.e., it only cancels other agreements), the corresponding graph is
empty.</p>
        <p>This construction allows for identifying the messages pertaining to an
agreedupon graph by looking up the agreement IRI and follwing agr:accepts and
agr:proposes. Likewise, it is simple to ask for canceling an agreement: the IRI
required to do that is the IRI associated with the agreement's graph in Fagr(Cr).
8 Thus, the IRI of the accept message denotes two di erent graphs in two di erent
datasets - it refers to the accept message in the conversation dataset and to the
agreement in the agreement dataset. We choose to accept this ambiguity.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Discussion</title>
      <p>The Web of Needs protocols have been implemented9 and can be tested on a
public demonstrator10 The work at hand is part of an e ort to apply WoN in the
transportation domain, in which we plan to use agreements for the coordination
of transportation jobs (e.g., setting/changing a pick-up or delivery appointment).
At this point, we have not implemented agreements yet, so we cannot provide
an experimental evaluation of the approach at hand. We will proceed to
implementing the extensions described here and evaluate their applicability for that
use case in simulations, a case study, and nally in eld study. In this work, we
re ect on our solution by discussing some of our design decisions, which we do
in the following.</p>
      <p>Cascading retracts. The option to retract earlier messages requires the
special case to be considered in which the retracted message is itself a retracting
one. In designing the protocol, we considered the options to a) to disallow such
messages (leading to a failure of the message) b) to let such messages not have
any cascading e ect, or c) to let a retract have a cascading e ect. Moreover, we
considered enabling a restore operation for retracted messages in combination
with a) and b).11 Our decision was guided by simplicity of computation and by
an intuitive evaluation of the importance for users. We decided not to support
restoring retracted messages as this does not seem to be an important feature of
a communication application (judging from state of the art messaging
applications), and because such a feature may enable deceiving an unsuspecting user by
retracting a message and later silently restoring it. Consequently, we decided to
avoid cascading retracts. The computationally simplest solution we found was
to de ne a message as retracted if there is a later message retracting it,
without checking if that message is retracted, and in addition to that to remove the
retracting message itself from the modi ed selection. The same reasoning was
applied for designing the cancelling of agreements: it is not possible to restore a
cancelled agreement, and cancelling has no cascading e ect.</p>
      <p>
        Granularity of modi cations. When considering the modi cation of the
conversation content, the decision on the granularity of the modi cations has to
be made. We are aware of current discussions of the related patch
functionality12 in LDP[
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], which is to allow triple-level modi cations. We decided only
to support retraction of whole messages for two reasons. For one, the approach
is simple to implement yet su cient for all changes, and second, it is easy to
understand what happened for a human user. Modi cation on the triple level
may be much harder to keep track of, possibly adding an attack vector, e.g. for
introducing unnoticed triples into an agreement.
      </p>
      <p>
        Retraction may fail. All messages can fail or be ignored. Worse, an
authenticated byzantine participant [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] operating a WoN node may deliberately choose
to lose certain messages or let them fail. This may lead to unfair situations. For
example, let an owner make a proposal, then notice a mistake and send a retract,
and an authenticated byzantine remote WoN node, colluding with the owner's
counterpart, ignore the retract message. The result is that the proposal is not
retracted, and the counterpart can still accept the proposal. One strategy to
counter this attack is to have the owner's WoN node ignore the accept message
from the counterpart as long as the SuccessResponse for the retract message
has not been received. In a non-fraudulent setting, however, the owner has no
way to make the WoN node do that. We currently do not have a solution to this
problem, other than that one should double check a proposal before sending it,
especially if one cannot be sure counterpart's WoN node is uncompromised.
      </p>
      <p>Proposing proposals. Technically, it is possible to propose a proposal or an
already agreed-to agreement. The e ect is that the content graph of the proposal
or agreement message can become the content of an agreement. The protocol
could be adapted to prevent such agreements, but we do not see any harm done
by them.</p>
      <p>No special message type for retraction and agreement. One may
argue for at least some of the messages we introduce in this paper to be realized
with new top-level message types. We decided against this and rather opted for a
clear separation of communication layers. The basic protocol is used for making
connections and exchanging messages. Retraction as well as reaching agreements
is about a client-side interpretation of the message history, and consequently we
decided to realize that functionality in a separate higher layer.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and Outlook</title>
      <p>In the work at hand, we propose a new way to interpret a Linked Data based
conversation between agents in the Web of Needs as a shared, add-only RDF
database. We introduce new protocol layers as views of the raw conversation
data available to each participant. These layers provide a) a cleaned-up view,
removing the content of failed and ignored messages and b) a modi ed view,
allowing participants to retract messages they sent earlier. Using these two
layers, we introduce c) an agreement view, enabling the participants to produce a
mutually agreed-upon RDF dataset consisting of the RDF payload of selected
earlier messages.</p>
      <p>The contributions of this work represent one step toward a generic,
decentralized (or federated) protocol that supports natural language conversations
as a special case of the exchange of arbitrary RDF structures between
participants. Therefore, the agreements introduced in this paper may consist of natural
language clauses or any other RDF content, supporting negotiations between
humans, of humans and software agents, and among software agents.</p>
      <p>A related extension currently being designed is an additional protocol
allowing agents to de ne information requirements using SHACL shapes, thereby
allowing to ask for certain information in a non-ambiguous, machine-processable
way. We envision the use of intelligent client-side assistants that may assume
different responsibilities such as lling in already known data like the user's home
address etc., or organizational tasks like managing appointments on behalf of
the user.</p>
      <p>We are planning to implement the proposed protocol extensions and evaluate
them in the context of transportation by connecting Web APIs of
transportation companies to WoN via speci cally designed bots bridging between the two
systems.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgements</title>
      <p>We would like to express our appreciation for valuable criticism and ideas
contributed by Soheil Human, Fabian Suda and Kevin Singer, members of the team
at SAT and to Eike Walsdor for guidance on improving the formal de nitions.
We would also like to thank the participants of a discussion on the semantic
Web mailing list on negotiations for sharing their expertise.11 Finally, this work
would not have been possible without the funding in project Open Logistics
Networks (OLN), funded by the Austrian Research Promotion Agency in the COIN
program.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>L.</given-names>
            <surname>Amgoud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Dimopoulos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Moraitis</surname>
          </string-name>
          . A uni ed and
          <article-title>general framework for argumentation-based negotiation</article-title>
          .
          <source>In Proceedings of the 6th international joint conference on Autonomous agents and multiagent systems, page 158. ACM</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>C. B. Aranda</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Corby</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Das</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Feigenbaum</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Gearon</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Glimm</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Harris</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Hawke</surname>
            , I. Herman,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Humfrey</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Michaelis</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Ogbuji</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Perry</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Passant</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Polleres</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <article-title>Prud'hommeaux, A</article-title>
          . Seaborne, and
          <string-name>
            <given-names>G. T.</given-names>
            <surname>Williams</surname>
          </string-name>
          .
          <article-title>Sparql 1.1 overview</article-title>
          , March
          <year>2013</year>
          . [Last accessed on
          <year>2016</year>
          /06/06].
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>C.</given-names>
            <surname>Bartolini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Preist</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Jennings</surname>
          </string-name>
          .
          <article-title>Architecting for reuse: A software framework for automated negotiation</article-title>
          .
          <source>In AOSE</source>
          , pages
          <volume>88</volume>
          {
          <fpage>100</fpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>M.</given-names>
            <surname>Bichler</surname>
          </string-name>
          , G. Kersten, and
          <string-name>
            <given-names>S.</given-names>
            <surname>Strecker</surname>
          </string-name>
          .
          <article-title>Towards a structured design of electronic negotiations</article-title>
          .
          <source>Group Decision and Negotiation</source>
          ,
          <volume>12</volume>
          (
          <issue>4</issue>
          ):
          <volume>311</volume>
          {
          <fpage>335</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>M.</given-names>
            <surname>Bichler</surname>
          </string-name>
          , G. Kersten, and
          <string-name>
            <given-names>C.</given-names>
            <surname>Weinhardt</surname>
          </string-name>
          .
          <article-title>Electronic negotiations: Foundations, systems and experiments{introduction to the special issue</article-title>
          .
          <source>Group Decision and Negotiation</source>
          ,
          <volume>12</volume>
          (
          <issue>2</issue>
          ):
          <volume>85</volume>
          {
          <fpage>88</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>T.</given-names>
            <surname>Bui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gachet</surname>
          </string-name>
          , and H.
          <string-name>
            <surname>-J. Sebastian</surname>
          </string-name>
          .
          <article-title>Web services for negotiation and bargaining in electronic markets: design requirements, proof-of-concepts, and potential applications to e-procurement</article-title>
          .
          <source>Group Decision and Negotiation</source>
          ,
          <volume>15</volume>
          (
          <issue>5</issue>
          ):
          <volume>469</volume>
          {
          <fpage>490</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>X.</given-names>
            <surname>Defago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Schiper</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Urban</surname>
          </string-name>
          .
          <article-title>Total order broadcast and multicast algorithms: Taxonomy and survey</article-title>
          .
          <source>ACM Comput. Surv.</source>
          ,
          <volume>36</volume>
          (
          <issue>4</issue>
          ):
          <volume>372</volume>
          {
          <fpage>421</fpage>
          ,
          <string-name>
            <surname>Dec</surname>
          </string-name>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>J.</given-names>
            <surname>Gu</surname>
          </string-name>
          and
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhu</surname>
          </string-name>
          .
          <article-title>Designing and implementation of an online system for electronic contract negotiation based on electronic signature</article-title>
          .
          <source>Journal of Software</source>
          ,
          <volume>9</volume>
          (
          <issue>12</issue>
          ),
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Jennings</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Faratin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. R.</given-names>
            <surname>Lomuscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Parsons</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Wooldridge</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Sierra</surname>
          </string-name>
          .
          <source>Automated negotiation: prospects, methods and challenges. Group Decision and Negotiation</source>
          ,
          <volume>10</volume>
          (
          <issue>2</issue>
          ):
          <volume>199</volume>
          {
          <fpage>215</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>G. E.</given-names>
            <surname>Kersten</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Lai</surname>
          </string-name>
          .
          <article-title>Negotiation support and e-negotiation systems: An overview</article-title>
          .
          <source>Group Decision and Negotiation</source>
          ,
          <volume>16</volume>
          (
          <issue>6</issue>
          ):
          <volume>553</volume>
          {
          <fpage>586</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>F.</given-names>
            <surname>Kleedorfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. M.</given-names>
            <surname>Busch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Huemer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Pichler</surname>
          </string-name>
          .
          <article-title>A linked data based messaging architecture for the web of needs</article-title>
          .
          <source>Enterprise Modelling and Information Systems Architectures</source>
          ,
          <volume>11</volume>
          (
          <issue>3</issue>
          ):1 {
          <fpage>18</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>F.</given-names>
            <surname>Kleedorfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. M.</given-names>
            <surname>Busch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Pichler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Huemer</surname>
          </string-name>
          .
          <article-title>The case for the web of needs</article-title>
          .
          <source>In Business Informatics (CBI)</source>
          ,
          <source>2014 IEEE 16th Conference on</source>
          , volume
          <volume>1</volume>
          , pages
          <fpage>94</fpage>
          {
          <fpage>101</fpage>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>F.</given-names>
            <surname>Kleedorfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Panchenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. M.</given-names>
            <surname>Busch</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Huemer</surname>
          </string-name>
          .
          <article-title>Veri ability and traceability in a linked data based messaging system</article-title>
          .
          <source>In Proceedings of the 12th International Conference on Semantic Systems, SEMANTiCS 2016</source>
          , pages
          <fpage>97</fpage>
          {
          <fpage>100</fpage>
          , New York, NY, USA,
          <year>2016</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>H.</given-names>
            <surname>Knublauch</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Kontokostas</surname>
          </string-name>
          .
          <article-title>Shapes constraint language (shacl) - proposed recommendation,</article-title>
          <year>6 2017</year>
          . [Last accessed on
          <year>2017</year>
          /07/06].
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>S.</given-names>
            <surname>Kraus</surname>
          </string-name>
          .
          <article-title>Automated negotiation and decision making in multiagent environments</article-title>
          .
          <source>Easss</source>
          ,
          <year>2086</year>
          :
          <volume>150</volume>
          {
          <fpage>172</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>R.</given-names>
            <surname>Lin</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Kraus</surname>
          </string-name>
          .
          <article-title>Can automated agents pro ciently negotiate with humans</article-title>
          ?
          <source>Communications of the ACM</source>
          ,
          <volume>53</volume>
          (
          <issue>1</issue>
          ):
          <volume>78</volume>
          {
          <fpage>88</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>F.</given-names>
            <surname>Manola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Miller</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>McBride</surname>
          </string-name>
          .
          <source>Rdf 1.1 primer</source>
          ,
          <year>2014</year>
          . [Last accessed on
          <year>2017</year>
          /07/26].
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>M. Necasky</surname>
            , J. Kl mek, J. Mynarz,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Knap</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Svatek</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Starka</surname>
          </string-name>
          .
          <article-title>Linked data support for ling public contracts</article-title>
          .
          <source>Computers in Industry</source>
          ,
          <volume>65</volume>
          (
          <issue>5</issue>
          ):
          <volume>862</volume>
          {
          <fpage>877</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>M. Parkin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Kuo</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Brooke</surname>
          </string-name>
          .
          <article-title>A framework &amp; negotiation protocol for service contracts</article-title>
          .
          <source>In Services Computing</source>
          ,
          <year>2006</year>
          . SCC'06. IEEE International Conference on, pages
          <volume>253</volume>
          {
          <fpage>256</fpage>
          . IEEE,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. O. U. Press. Agreement. Online,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. I. Rahwan,
          <string-name>
            <given-names>S. D.</given-names>
            <surname>Ramchurn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Jennings</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Mcburney</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Parsons</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Sonenberg</surname>
          </string-name>
          .
          <article-title>Argumentation-based negotiation</article-title>
          .
          <source>The Knowledge Engineering Review</source>
          ,
          <volume>18</volume>
          (
          <issue>4</issue>
          ):
          <volume>343</volume>
          {
          <fpage>375</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>M. Schoop</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Jertila</surname>
            , and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>List</surname>
          </string-name>
          .
          <article-title>Negoisst: a negotiation support system for electronic business-to-business negotiations in e-commerce</article-title>
          .
          <source>Data &amp; Knowledge Engineering</source>
          ,
          <volume>47</volume>
          (
          <issue>3</issue>
          ):
          <volume>371</volume>
          {
          <fpage>401</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>S.</given-names>
            <surname>Speicher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Arwe</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Malhotra</surname>
          </string-name>
          .
          <source>Linked data platform 1.0</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. M.
          <article-title>Strobel and C. Weinhardt. The montreal taxonomy for electronic negotiations</article-title>
          .
          <source>Group Decision and Negotiation</source>
          ,
          <volume>12</volume>
          (
          <issue>2</issue>
          ):
          <volume>143</volume>
          {
          <fpage>164</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>V.</given-names>
            <surname>Tamma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wooldridge</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Blacoe</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Dickinson.</surname>
          </string-name>
          <article-title>An ontology based approach to automated negotiation</article-title>
          .
          <source>In International Workshop on Agent-Mediated Electronic Commerce</source>
          , pages
          <volume>219</volume>
          {
          <fpage>237</fpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26. H.
          <string-name>
            <surname>Watanabe</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Fujimura</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Nakadaira</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Miyazaki</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Akutsu</surname>
            , and
            <given-names>J. J.</given-names>
          </string-name>
          <string-name>
            <surname>Kishigami</surname>
          </string-name>
          .
          <article-title>Blockchain contract: A complete consensus using blockchain</article-title>
          .
          <source>In Consumer Electronics (GCCE)</source>
          ,
          <source>2015 IEEE 4th Global Conference on</source>
          , pages
          <volume>577</volume>
          {
          <fpage>578</fpage>
          . IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27. H.
          <string-name>
            <surname>Weigand</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Schoop</surname>
            , A. de Moor, and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Dignum</surname>
          </string-name>
          .
          <article-title>B2b negotiation support: The need for a communication perspective</article-title>
          .
          <source>Group Decision and Negotiation</source>
          ,
          <volume>12</volume>
          (
          <issue>1</issue>
          ):3{
          <fpage>29</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>X.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Pautasso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Gramoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ponomarev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. B.</given-names>
            <surname>Tran</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Chen</surname>
          </string-name>
          .
          <article-title>The blockchain as a software connector</article-title>
          .
          <source>In Software Architecture (WICSA)</source>
          ,
          <year>2016</year>
          13th Working IEEE/IFIP Conference on, pages
          <volume>182</volume>
          {
          <fpage>191</fpage>
          . IEEE,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>