<!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>
      <journal-title-group>
        <journal-title>SciTePress</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>DALI: A multi agent system framework for the web, cognitive robotic and complex event processing</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefania Costantini</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giovanni De Gasperis</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Valentina Pitoni</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Agnese Salutari</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>DISIM</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Universita` di L'Aquila</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Italy</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <volume>648</volume>
      <fpage>648</fpage>
      <lpage>653</lpage>
      <abstract>
        <p>This paper illustrates advances over existing implementation work performed on DALI, which is a logic prolog-based framework for defining agents and Multi-Agent Systems (MAS) developed at University of L'Aquila since 1999, and publicly available. In previous work, DALI features were already extended in view of cognitive robotic applications and Complex Event Processing. Here, we show how to define and implement more efficient and versatile Multi-Agent Systems, capable to interact with real robots.</p>
      </abstract>
      <kwd-group>
        <kwd>multi agent systems</kwd>
        <kwd>cognitive robotics</kwd>
        <kwd>complex event processing</kwd>
        <kwd>logic programming</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>There is growing need for robots that can interact safely with people in everyday
situations. These robots have to be able to anticipate the effects of their own actions as
well as the actions and needs of the people around them. To achieve this, two streams of
research need to merge, one concerned with physical systems specifically designed to
interact with unconstrained environments and another focusing on control architectures
that explicitly take into account the need to acquire and use experience. The merging
of these two areas has brought about the field of Cognitive Robotics. This is a
multidisciplinary science that draws on research in adaptive robotics as well as cognitive
science and artificial intelligence, and often exploits models based on biological
cognition. Cognitive robots achieve their goals by perceiving their environment, paying
attention to the events that matter, planning what to do, anticipating the outcome of
their actions and the actions of other agents, and learning from the resultant interaction.
They deal with the inherent uncertainty of natural environments by continually learning,
reasoning, and sharing their knowledge.</p>
      <p>Several papers on cognitive robotics can be found in the proceedings of main
Conferences on Artificial Intelligence (e.g., ECAI, IJCAI) and on Agents (e.g., AAMAS).
Cognitive robotic systems able to interact safely with people in everyday situations can
potentially help in any situation where there are persons in need of special assistance,
primarily the elderly and the disabled, but possibly also children (not as a substitute but
as a support to parents, family and caregivers). With the increase of life expectancy and
the decrease of resources available to public health systems, the importance of
developing “intelligent” adaptive robots can be particularly appreciated in view of the societal
issue of providing effective support to many people in need while making the use of
helth-related resources more effective and rational. These robots have to be able to
anticipate the effects of their own actions as well as the actions and needs of the people
around them.</p>
      <p>
        Cognitive Robotics is thus potentially able to alleviate the healthcare and social
security systems from the burden of having to provide full-time highly specialized human
assistants while allowing elderly people to leave at home rather than be moved to an
institution. In [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] we have outlined a comprehensive system called Friendly&amp;Kind, for
short F&amp;K based upon a reasoning “core” which is able to integrate information
gathered from a variety of knowledge sources, and devise a good (if not optimal) course of
action in view of each patient’s welfare and of the overall system’s possibilities; logical
agents are envisaged for monitoring patients, where a patient’s personal agent can be
embodied in a robot. Some of the monitoring can be performed locally, while some
other will be deferred to the F&amp;K reasoning systems or to the human operators.
      </p>
      <p>
        Understandably, as demonstrated by experiments performed, e.g., by the group of
Prof. Johan Hoorn at Vrije Universiteit Amsterdam about “social robotics”, humans
prefer friendly interfaces and robots that show some kind of intelligent and also affective
and “emotional” behavior. Such experiments consider not only Artificial Intelligence
aspects, but also the impact of robots on the user. There is interesting ongoing work
also from the point of view of ethics [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ], interaction with the disabled [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] and even
acceptable robot appearance [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. Some of this work is reported in a famous
documentary “Alice cares” (https://vimeo.com/116760085) which shows the positive
interaction among three old women and a friendly humanoid care robot (a scene from
the documentary is reported in Figure1). From a cognitive point of view and for
exploring the social acceptability of robots as human companions these experiments are
certainly of great importance. However, as concerns really “intelligent” behavior the
robots used in the experiments are still (at least partly) under remote control of a human
operator. In the perspective of making such robots really intelligent and autonomous,
research results from many fields of Artificial Intelligence, Automated Reasoning and
Intelligent Software Agents can be usefully exploited.
      </p>
      <p>We strongly believe that in this and other fields it can be advantageous to define a
robot’s cognitive part as a logical agent or Multi-Agent System defined via declarative
agent-oriented languages. There are many logic agent-oriented languages and
architectures in computational logic apt to these aim, among which MetateM, 3APL, GOAL,
AgentSpeak, Impact, KGP and DALI, that might be usefully exploited in robotics (or
have potential robotic applications).</p>
      <p>
        However, the DALI language in particular [
        <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
        ] has been empowered and
experimented over the years concerning capabilities for the definition and management
of an agent’s memory and experience and for user monitoring and training also by
learning new behavioral patterns; DALI agents are able to perform complex event
processing, and to dynamically check and modify their own behavior also in terms of a
special interval temporal logic (cf. [
        <xref ref-type="bibr" rid="ref10 ref13 ref7 ref9">9, 13, 10, 7</xref>
        ] and the references therein). In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] we
have discussed an extension to the basic DALI implementation that allows action
commands to be exchanged between DALI agents and any robotic platform by using the
YARP middleware. A short practical case study showed how a DALI MAS can control
the iCub open-source robot simulator by exchanging asynchronous JSON events over
the new multi-standard DALI network bus. In addition, we implemented ServerDALI
which allows to allocate DALI agents and MAS on a server, so as to be accessible from
an external environment, also via web or mobile applications. This is relevant, as for
instance in the architecture of Figure2 the caregiver agents will presumably be copies
of the same one, to which robots’ cognitive functioning can refer; so, a cloud solution
eliminates the need of equipping the (possibly diverse) robot hardware with
sophisticated software; moreover, computationally heavy automated reasoning tasks can be
more efficiently executed on the server.
      </p>
      <p>
        The contribution of [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] was twofold: on the one hand, we re-elaborated and
extended past work on DALI in the perspective of robotic applications for the care of
persons in need; on the other hand, we realized and experimented a practical
implementation constructed out of open-source components, with the aim to employ DALI
agents as a robot’s “brain”; we were working however over robot simulators rather than
real robot hardware.
      </p>
      <p>This paper illustrates advances over the pre-existing implementation work
performed with the aim to obtain more efficient and versatile Multi-Agent Systems,
capable to interact with real robots (rather than with simulators). In particular, the new
implementation adds the following non-trivial features: (i) heterogeneity, i.e., a MAS
can now include not only DALI agents but also agents written in other
logic-basedlanguage; (ii) run-time reconfiguration of a MAS, i.e., agents can be started, stopped,
suspended during the MAS operation; (iii) real potential parallelism, i.e., agents’
execution is asynchronous (differently from previous implementation) and thus much more
versatile and efficient; (iv) via the Redis open-source database/communication
infrastructure 1, agents can seemingly interact with existing robot-oriented technologies and
can thus command robots. Notice that in this paper we are not concerned with physical
aspects concerning sensors, actuators, vision, etc., that are widely studied by specialists.
We model hardware subcomponents via a layer of abstraction that builds a network of
sources and sinks of asynchronous events (or commands) with associated values.</p>
      <p>The paper is organized as follows. In Section 2 we recall the basic DALI language;
in Section 3 we illustrate, by means of small though significant examples, the potential</p>
      <sec id="sec-1-1">
        <title>1 http://redis.io, last accessed June 2017</title>
        <p>applicability of DALI in robotic user monitoring and training. In Section 4 we recall
the extension to robotics of the DALI implementation, and in Section 5 we intruduce
the new further extensions that we have recently developed. Finally, in Section 6 we
conclude.
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>The basic DALI language and architecture</title>
      <p>
        DALI [
        <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
        ] is an Agent-Oriented Logic Programming language that is publicly
available on GitHub [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. DALI agents are able to deal with several kinds of events: external
events, internal, present and past events.
      </p>
      <p>External events are syntactically indicated by the postfix E and we have reactive
rules like evE :&gt; Reaction: if an agent perceives the event ev then she will react as
described by Reaction. The agent remembers to have reacted by converting an external
event into a past event (postfix P). An event perceived but not yet reacted to is called
“present event” and is indicated by postfix N.</p>
      <p>Actions (indicated with postfix A) may have or not preconditions: in the former
case, the actions are defined by actions rules like actA :&lt; P recondition, in the latter
case they are just action atoms. Similarly to events, actions that already took place are
recorded as past actions.</p>
      <p>Internal events is the feature that makes DALI agent agents proactive. An internal
event is syntactically indicated by the postfix I, and its description is composed of two
rules. The first one, ev : P recondition, contains the conditions (knowledge, past
events, procedures, etc.) that must be true so that the reaction (in the second rule evI :&gt;
ActionT oDoA) may happen. Internal events are automatically attempted with a default
frequency customizable by means of directives in the initialization file.</p>
      <p>
        The DALI communication architecture [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] implements the DALI/FIPA protocol,
which consists of the main FIPA primitives, plus few new primitives which are
particular to DALI and provides the possibility of defining meta-rules for filtering incoming
and out-coming messages, and for using external ontologies.
      </p>
      <p>
        DALI provides a plugin to an answer set solver, so complex reasoning tasks such
as, e.g., planning and preference handling can be performed in Answer Set
Programming (ASP), which is a state-of-the art technology for dealing with hard computational
problems (cf., among many, [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and the references therein).
      </p>
      <p>
        “Complex Event Processing” (CEP) has evolved into the paradigm of choice for the
development of monitoring vast quantities of event data to make automated decisions
and take time-critical actions. This is particularly important in software agents, in fact,
agents and multi-agent systems are able to manage rapid change and thus to allow for
scalability in applications aimed at supporting the ever-increasing level of interaction.
Work on CEP in DALI is presented in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], which discuss the issue of
selecting different reactive patterns by means of preferences. Such preferences can be also
defined in terms of “possible worlds” elicited from a declarative description of a current
or hypothetical situation, and can depend upon past events, and the specific sequence
in which they occurred. [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] introduces Event-Action modules that allow an agent to:
aggregate simple events into complex ones, also according to constraints; check events
that occur w.r.t. expectations; cope with events possibly occurring contextually to
certain other events; detect anomalies; decide actions to be performed in both normal or
anomalous cases, according to a number of issues among which we may include
context, role, circumstances, past experience, etc.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>DALI advanced features and possible applications to robotics</title>
      <p>The robotic applications that we envisage concern, as outlined above, user monitoring
and training in any context, but especially for the care of elderly and disabled persons.</p>
      <p>
        Since [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] in fact, in our setting (see Figure 2) agents interact with users (i) with the
objective of training them in some particular task, and (ii) with the aim of monitoring
them for ensuring some degree of consistence and coherence in user behavior.
      </p>
      <p>
        Agents are able to be aware by prior knowledge or via some form of learning of
the behavioral patterns that the user is adopting, and to learn rules and plans also from
other agents (by imitation or being told); notice that a logical account of the program
modifications which are necessary in a learning process is provided by the EVOLP
approach [
        <xref ref-type="bibr" rid="ref2 ref24">2, 24</xref>
        ], as shown in the Figure 2. In the simple example below, an agent has
been somehow able to learn that the user normally takes a drink when coming back
home. This can be represented by a rule such as:
      </p>
      <p>drink :- arrive home:</p>
      <p>This learned rule can possibly be associated with a certainty factor. When the rule
becomes later confronted with subsequent experience, its certainty factor will be
updated accordingly. Whenever this factor exceeds a threshold, this may lead to assert
new meta-rules, such as:</p>
      <p>USUALLY drink WHEN arrive home:</p>
      <p>User monitoring can be performed via temporal-logic-like rules like the following
one:</p>
      <sec id="sec-3-1">
        <title>NEVER drink alchool AND take medicine:</title>
        <p>
          Such a rule acts as a constraint which has priority over former ones; so, the agent
will actively discourage the user to drink while taking medicines. In [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] the semantics
of such expressions is defined, also in relation to the possibility of defining the interval
where some events/actions must or must not occur.
        </p>
        <p>
          The following example concerns a robot aiding to supervise a baby, thus
relieving caregivers from some of their tasks. If the baby is hungry, then the robot should
feed the baby with available baby food (feeding is an action, indicated with postfix A)
paying attention to choose the healthier among those that the baby likes. Conjunction
food (F ); available(F ) provides a number of values for F , among which one is chosen.
In particular, the choice will correspond to a maximum in the partial order imposed by
the binary predicates best preferred and healthier in the given order. This construct
for complex preference, the p-set, was originally introduced in [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>baby is hungryE :&gt;
ffeed babyA(F ) : food (F ); available babyf (F ) : best preferred ; healthier g:
In the example below, the robot again assists parents taking care of a child. The
child has to go to school (mandatory goal, indicated by postfix G) and is about to skip
breakfast because she prefers cereals that unfortunately are finished. The agent, based
upon the monitoring condition (never skip breakfast) will be able to suggest alternative
food, in particular the best preferred among available options.</p>
        <p>go to schoolG : NEVER skip breakfast (D ) :: cereals nished :::</p>
        <p>suggestA(alternative food ) IN fcookies; cake slice : best preferred g:
The monitoring component can however also include meta-axioms such as for
instance the following one, which states that a user action which is necessary to reach a
mandatory objective should necessarily be undertaken. The agent can fulfill this
statement either by convincing the user to do so, or to resort to human caregivers’ help:</p>
      </sec>
      <sec id="sec-3-2">
        <title>ALWAYS do(user; A) WHEN mandatory goal (G ); required (G ; A)</title>
        <p>Such a meta-rule could be applied to practical cases such as the following:
mandatory goal (healthy ):
required (healthy ; take medicineA):</p>
        <p>ASP modules can be exploited in order to plan actions which might be performed
in given situations, and to extract necessary actions, which are those actions included in
all possible plans. Given ASP module M (defined in a separate text file), in the example
below reaction to event evE can be either any action which can be inferred (from M ) as
a possible reaction, or a necessary action, again according to M . Events are indicated
with postfix E, reaction is indicated with :&gt; . Connective &gt; expresses preference: the
former option is preferred over the latter if the condition after the :- holds; necessary
and action are distinguished predicates applicable over ASP modules’ results. So, in
this sample rule necessary actions are preferred in a critical situation. Otherwise, any of
the two options may be taken.</p>
        <p>evE :&gt; necessary (M; N )jaction(M; A) : M &gt; A :- critical situation:
The above examples are witnesses of a re-elaboration of past work on DALI in
the perspective of cognitive robotics applications. Though small, the examples should
have practically demonstrated that DALI has indeed the potential for acting as an agent
language in this realm. However, a suitable interface between DALI agents and robotic
hardware or simulators was lacking. Such an interface has been recently designed and
implemented, and is presented in the next sections.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>The extended DALI implementation</title>
      <p>
        As discussed in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], the DALI programming environment at the current stage of
development [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] offers a multi-platform folder environment (for both Linux and Windows
operative systems) including Sicstus Prolog programs (as DALI is implemented in
Sicstus), shells scripts, and Python scripts.
      </p>
      <p>
        For the development of DALI agents and MAS, a programmer can simply use any
text editor to write DALI agent programs and the necessary start/configuration scripts;
more proficiently, she could use a web-based system-independent integrated
development environment where agents editing is managed through an HTML5/AJAX-based
online editor, with start/stop command buttons and agents logs output for runtime
verification, handling signals and events from the DALI engine running in the background
(that isn’t a actually an IDE, but we can use these features to develop a DALI MAS).
The system is designed so as to be able to interact with external services by means of
JSON data events. An external service can be for instance a virtual robotics simulator
so that an entire complex anthropomorphic cognitive robot like the iCub [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] could be
controlled by a DALI MAS.
      </p>
      <p>The software components diagram in 3 shows how DALI has been encapsulated
and integrated with other modules through a Python “glue code” layer, called PyDALI.
Each DALI agent is an instance of the Prolog program “DALI Interpreter”. The
multiplatform open source library pexpect (http://github.com/pexpect/pexpect) has
been adopted for building a Python middle layer to automate the interaction with the
Sicstus Prolog environment, seen as an instance of the class PySicstus. In this way, by
abstracting via the PyDALI class, a DALI agent instance process can be configured,
loaded, started, executed and terminated. A MAS can then be handled via the most
abstract class “MAS”.</p>
      <p>The Python code can then been imported into any Python program, thus allowing
the interaction of DALI agents with other software modules/server/clients by means of
asynchronous JSON events.</p>
      <p>The Multi-standard DALI Bus is in essence a middle layer communication protocol
that converts any JSON event coming from the outside world to an internal FIPA event
in a Linda tuple space 2, that the DALI MAS thus receives as an external event. Specific
actions performed within the DALI MAS can vice versa generate FIPA events that are
converted into JSON event so as to send commands to external actuators, that can be
either real robotic actuators or virtual robotic components. A typical runtime deployment
diagram is depicted in Figure 4.</p>
      <p>The central Multi-standard DALI bus collects asynchronous data events from
different sources, translating them into counterparts in the Linda tuple space whenever
an agent is the destination. It also collects action messages from agents and translates
them into JSON structures compatible with the destination. There may also be external
sensors that directly generate Linda tuple messages, or external sensors mediated by the
Python container.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Koine´ DALI</title>
      <p>
        Koine´ DALI is the new extension of DALI that we present in this paper. It represents
the evolution of ServerDALI [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], augmented with advanced capabilities obtained via
the integration with the Redis open source “data structure server” which is available
on many cloud computing service providers such as the Google Cloud Platform or the
Amazon Elastic Cloud. Koine´ DALI makes it possible to exchange data and
communicate events to a DALI MAS in a very general way. Koine´ DALI (Figure 5) offers the
following functionalities:
2 Linda is a model of coordination and communication among parallel processes providing a
logically global associative memory, called a “tuplespace”, in which processes store and
retrieve tuples. It is available for Sicstus Prolog and it is therefore used as a communication
middleware in the DALI implementation.
      </p>
      <p>Runtime deployment diagram of the extended DALI architecture
– A DALI MAS can be easily integrated with other applications using Redis both as
a Database server and as a communication channel: events can be stored into Redis
queues (FIFO) and then delivered to the MAS agents;
– the user can customize a MAS configuration (i.e., clone agents, stop agents, etc.)
at runtime via a Web Server Interface: the Command Actuator program will
implement the changes on the MAS and Inter-MAS Redis will be used as an internal
communication channel;
– Agents composing a DALI MAS can use Inter-MAS Redis also as a database server
to their own purposes;
– a Koine´ DALI MAS can cooperate without problems with other MASs,
programmed in other languages, and with object-oriented applications.</p>
      <p>To create a Koine´ DALI MAS, we need to add to a DALI MAS the followings:
– Redis2LINDA and StringESE libraries (https://github.com/
AAAI-DISIM-UnivAQ/Redis2LINDA-stringESE) to deliver messages from
Redis to MAS
– RedisClient library (https://github.com/AAAI-DISIM-UnivAQ/</p>
      <p>RedisClient) to deliver messages from MAS agents to Redis
– ServerPyProlog library (https://github.com/AAAI-DISIM-UnivAQ/
ServerPyProlog to exchange data between Python programs (or servers)
and Prolog programs or Prolog based agents, (if you need to use PHP instead
of Python, see ServerProlog: https://github.com/agnsal/ServerDALI/
tree/master/serverPROLOG)
– The special startmas startmasMary (https://github.com/agnsal/
ServerDALImas/blob/master/startmasMary.sh) if you need to run
the MAS in a Docker container</p>
      <p>The MASA (MAS Administrator) (Figure 6) is an agent that supervises the MAS.
When an event arrives to Redis Input Channel, the Event Proxy converts it into a
standard format and sends it to MASA via the Linda channel. MASA sends it to the proper
agent (depending on the configuration) after a second conversion into the format which
is accepted by that particular agent; the agent will thus be able to update its KB
(Knowledge Base), make inferences and send back its results to Redis Output channel. All
internal communication mechanisms are based on the publisher/subscriber asynchronous
design pattern, as it is customary in the software engineering community.</p>
      <p>The new implementation also enables agents to clean their Knowledge Base from
events that are older than a certain threshold (defined in the agent’s configuration files).</p>
      <p>We have successfully implemented and tested these functionalities, and we are now
experimenting Koine´ DALI ability to allow configuration changes to be made at runtime
(the parts under test are distinguished by the violet arrows in Figure 6).</p>
      <p>In the new implementation, Koine´ DALI agents work asynchronously (Figure 7)
after a handshake, and could therefore be executed in parallel over suitable hardware.
The handshake is the first task that a Koine´ DALI MAS performs and it is necessary
for the bootstrap operation of the MAS (all the agents have to be operative). MASA
delivers arriving events to proper agents and different agents can work at the same
time on different events; the resulting MAS is therefore quite efficient. MASA is like
the center of a “stellar system” where the number of the agents can vary according to
specific needs.</p>
      <p>Finally, we can see a little example of a MAS, composed of two agents, the MASA
and a normal agent, that are able to communicate with Redis (Figure 9). At the
beginning they perform the handshake, then the MASA waits for data/events (i.e. an
helloworld event) from Redis and delivers them to the qualified agent (the normal agent, in
this case). The competent agent reacts to the event by sending its result to Redis.
(a) Agent Type MASA
(b) Agent Type Normal Agent
Fig. 8. Little example of a Koine´ DALI MAS Prolog code (Koine´ libraries inclusion has been
omitted)
5.1</p>
      <p>Redis, the communication interfaces for ROS, YARP and MQTT subsystems
The inclusion of the Redis channels into the software architecture as internal and
external communication allowed us to build several technological plugins oriented to the
application domain, in this case robotics. We started with ROS, YARP and MQTT
plugins to cover a large range of hardware devices nowadays available on the market.</p>
      <p>ROS (Robot Operating System) 3 “provides libraries and tools to help software
developers create robot applications. It provides hardware abstraction, device drivers,
libraries, visualizers, message-passing, package management, and more. ROS is licensed
under an open source, BSD license”.</p>
      <p>
        YARP, Yet An other Robotic Platform, [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] “supports building a robot
control system as a collection of programs communicating in a peer-to-peer way, with an
extensible family of connection types (tcp, udp, multicast, local, MPI, mjpg-over-http,
XML/RPC, tcpros,. . . ) that can be swapped in and out to match your needs. ”.
      </p>
      <sec id="sec-5-1">
        <title>3 http://ros.org, last accessed June 2017</title>
        <p>MQTT is a machine-to-machine (M2M)/“Internet of Things” connectivity protocol.
It was designed as an extremely lightweight publish/subscribe messaging transport. It
is useful for connections with remote locations where a small code footprint is required
and/or network bandwidth is at a premium.</p>
        <p>As said before, a Koine´ DALI MAS can communicate via Redis, sending and
receiving messages (consisting of strings) through its ports. This mechanism is very similar
to ROS, YARP and MQTT technologies, so we have been able to develop libraries that
will make it possible to create a communication between Koine´ DALI MASs and these
three technologies and in perspective with physical robots.</p>
        <p>The code snippet in Figure 10 copes with listening and publishing on Redis channels
only; however, Redis can provide complex data structures as well, so for instance we
could store strings in a FIFO queue and extract them from there as needed (from both
the MAS and other technologically different components). We have been been able to
deploy Redis compatibility libraries for ROS, YARP and MQTT, in order to make Koine´
DALI MASs able to control robots.</p>
        <p>This example of YARP in Python/DALI shows how similar its behavior and Redis’
one are. The program, typically embedded onboard a robot, generates raw data and
sends them to the YARP port “/sender”. This port could be connected to a “/receiver”
YARP port by means of a channel configurator. Then, a Python program could register
itself as the handler of the “/receiver” port, thus translating the data into a Linda tuple
space, like shown in Figure 3.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusions</title>
      <p>
        As we have since long been convinced of the potential usefulness of the DALI logical
agent-oriented programming language in the cognitive robotic domain. In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and in
the present paper we have in fact presented the extensions to the basic pre-existing DALI
implementation which add a number of useful new features, and in particular allow a
DALI MAS to interact with robots. As shown in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], the DALI framework has been
from time import sleep
from pydali import YARP_Agent, MAS
ag1 = YARP_Agent(’one’, ’/receiver’)
ag1.setSource(’’’
:- writeLog(’agent ONE started’).
receiverDataE(X) :&gt;
writeLog(’received data: ’), write(X), nl.
’’’)
myMAS = MAS(’YARP_MAS’)
myMAS.add(ag1)
myMAS.start(True, ’YARP test’)
sleep(500)
myMAS.terminate()
Fig. 10. Python program that allocates a MAS made of just a single DALI agent, creates a
connection to the YARP port “/receiver” and transparently translates data events into FIPA inform
messages.
extended by using open sources packages, protocols and web based technologies. DALI
agents can thus be developed to act as high level cognitive robotic controllers, and can
be automatically integrated with conventional embedded controllers. The web
compatibility of the DALI 2.0 framework [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] allows real-time monitors and graphical
visualizers of the underline MAS activity to be specified, for checking the interaction between
an agent and the related robotic subsystem. The cloud package ServerDALI [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] allows
a DALI MAS to be integrated into any practical environment. In this paper we have
illustrated the new “Koine´ DALI” framework that we have recently developed and that
we are successfully testing. As in real applications not all the necessary knowledge is
known a-priori, but rather unexpected and previously unseen asynchronous event can
be triggered by other elements of the environment (including the user), a Koine´ DALI
MAS can cooperate without problems with other MASs, programmed in other
languages, and with object-oriented applications. In summary, the enhanced DALI can be
used for multi-MAS applications and hybrid multi-agents and object-oriented
applications, and can be easily integrated into preexistent applications. The DALI framework
can thus be used as outlined before in applications for user monitoring and training, but
also in other event processing applications: for example, in emergencies management
(like first aid triage assignment), in security or automation contexts, like home
automation or processes control, and, more generally, in every situation that is characterized
by events (either simple events and/or events that are correlated to other ones even in
complex patterns). We are working presently on a first aid triage assignment example;
in particular, we are programming a MAS so as to assign a triage color to each
arriving patient according to present conditions, clinical history, risk assessment and other
factors.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Aielli</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ancona</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Caianiello</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Gasperis</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Di</surname>
            <given-names>Marco</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Ferrando</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Mascardi</surname>
          </string-name>
          ,
          <string-name>
            <surname>V.</surname>
          </string-name>
          :
          <article-title>Friendly &amp; kind with your health: Human-friendly knowledge-intensive dynamic systems for the e-health domain</article-title>
          .
          <source>In: Int. Conf. on Practical Appl. of Agents and Multi-Agent Systems. Comm. in Computer and Inf. Sc.</source>
          , Springer (
          <year>2016</year>
          )
          <fpage>15</fpage>
          -
          <lpage>26</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Alferes</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brogi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leite</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pereira L.M.</surname>
          </string-name>
          <article-title>: Evolving Logic Programs</article-title>
          .
          <source>Logics in Artificial Int, European Conference, JELIA</source>
          <year>2002</year>
          ,
          <article-title>Proceedings</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Baral</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          : Know. repres.,
          <source>reas. and decl. problem solv</source>
          . Cambridge Univ. Press (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bordini</surname>
            ,
            <given-names>R.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Braubach</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dastani</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ElSeghrouchni</surname>
            ,
            <given-names>A.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomez-Sanz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leite</surname>
            , J.,
            <given-names>O</given-names>
          </string-name>
          <string-name>
            <surname>'Hare</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pokahr</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ricci</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A survey of programming languages and platforms for multi-agent systems</article-title>
          .
          <source>Informatica (Slovenia)</source>
          <volume>30</volume>
          (
          <issue>1</issue>
          ) (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Answer set modules for logical agents</article-title>
          . In de Moor,
          <string-name>
            <given-names>O.</given-names>
            ,
            <surname>Gottlob</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Furche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Sellers</surname>
          </string-name>
          , A., eds.: Datalog Reloaded: First International Workshop,
          <year>Datalog 2010</year>
          . Volume 6702 of LNCS. Springer (
          <year>2011</year>
          )
          <article-title>Revised selected papers</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Self-checking logical agents</article-title>
          .
          <source>In: 8th Latin American Works. LA-NMR 2012. Volume 911 of CEUR Workshop Proceedings., CEUR-WS.org</source>
          (
          <year>2012</year>
          )
          <fpage>3</fpage>
          -
          <lpage>30</lpage>
          Invited Paper,
          <source>Extended Abstract in Proc. of AAMAS</source>
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>ACE: a flexible environment for complex event processing in logical agents</article-title>
          . In: Engineering MultiAgent Syst., Third International Works.,
          <source>EMAS</source>
          <year>2015</year>
          ,
          <article-title>Revised Selected Papers</article-title>
          . Volume
          <volume>9318</volume>
          of LNCS., Springer (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>The DALI agent-oriented logic programming language: Summary and references</article-title>
          <year>2016</year>
          (
          <year>2016</year>
          ) http: //www.di.univaq.it/stefcost/info.htm.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Gasperis</surname>
          </string-name>
          , G.:
          <article-title>Memory, experience and adaptation in logical agents</article-title>
          .
          <source>In: Management Intelligent Systems: Second Intl. Symposium, Proc. Advances in Intelligent and Soft Computing</source>
          , Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Gasperis</surname>
          </string-name>
          , G.:
          <article-title>Runtime self-checking via temporal (meta-)axioms for assurance of logical agent systems</article-title>
          .
          <source>In: Proc. of LAMAS</source>
          <year>2014</year>
          ,
          <article-title>7th Works. on Logical Aspects of Multi-Agent Systems</article-title>
          ,
          <source>held at AAMAS</source>
          <year>2014</year>
          .
          <article-title>(</article-title>
          <year>2014</year>
          )
          <fpage>241</fpage>
          -
          <lpage>255</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Gasperis</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nazzicone</surname>
          </string-name>
          , G.:
          <article-title>DALI multi agent systems framework</article-title>
          (
          <year>July 2016</year>
          ) DALI: http: //github.com/AAAI-DISIM-UnivAQ/DALI.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Gasperis</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nazzicone</surname>
          </string-name>
          , G.:
          <article-title>DALI for Cognitive Robotics: Principles and Prototype Implementation</article-title>
          . In: Yuliya Lierler and Walid Taha (Eds.),
          <source>Practical Aspects of Declarative Languages - 19th International Symposium, PADL 2017, Proceedings. Lecture Notes in Computer Science 10137</source>
          , Springer (
          <year>2017</year>
          )
          <fpage>152</fpage>
          -
          <lpage>162</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dell'Acqua</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moniz</surname>
            <given-names>Pereira</given-names>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          :
          <article-title>Conditional learning of rules and plans by knowledge exchange in log. agents</article-title>
          .
          <source>In: Proc. of RuleML 2011. LNCS 6826</source>
          , Springer (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dell'Acqua</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pereira</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toni</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Towards a model of evolving agents for ambient intelligence</article-title>
          .
          <source>In: Proc. of the Symposium on ”Artificial Societies for Ambient Intelligence (ASAmI'07)</source>
          . (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , DellAcqua,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Tocchio</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Expressing preferences declaratively in logic-based agent languages</article-title>
          .
          <source>In: Proc. of Commonsense07, the 8th International Symposium on Logical Formalizations of Commonsense Reasoning</source>
          , AAAI Press (
          <year>2007</year>
          )
          <article-title>Event in honor of the 80th birthday of John McCarthy</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Formisano</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Modeling preferences and conditional preferences on resource consumption and production in ASP</article-title>
          .
          <source>J. of of Alg. in Cognition, Inf. and Logic</source>
          <volume>64</volume>
          (
          <issue>1</issue>
          ) (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riveret</surname>
          </string-name>
          , R. :
          <article-title>Event-action modules for complex reactivity in logical agents</article-title>
          .
          <source>Proceedings of AAMAS</source>
          <year>2013</year>
          ,
          <article-title>13th Intl</article-title>
          . Conf. on Autonomous Agents and
          <string-name>
            <surname>Multi-Agent Systems</surname>
          </string-name>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tocchio</surname>
            ,
            <given-names>A.:</given-names>
          </string-name>
          <article-title>A logic programming language for multi-agent systems</article-title>
          .
          <source>In: Logics in Artif. Int., Proc. of the 8th Europ. Conf. JELIA 2002. LNAI 2424</source>
          , Springer (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tocchio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The DALI logic programming agent-oriented language</article-title>
          .
          <source>In: Logics in Artif. Int., Proc. of the 9th Europ. Conf. JELIA 2004. LNAI 3229</source>
          , Springer (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tocchio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verticchio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Communication and trust in tha Dali logic programming agent-oriented language</article-title>
          .
          <source>Intelligenza Artificiale, J. of Italian Association</source>
          <volume>2</volume>
          (
          <issue>1</issue>
          ) (
          <year>2015</year>
          ) in English.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>D'Inverno</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Fisher,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Lomuscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Luck</surname>
          </string-name>
          , M.,
          <string-name>
            <surname>de Rijke</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ryan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wooldridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Formalisms for multiagent systems</article-title>
          .
          <source>Knowledge Eng. Review</source>
          <volume>12</volume>
          (
          <issue>3</issue>
          ) (
          <year>1997</year>
          )
          <fpage>315</fpage>
          -
          <lpage>321</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. Fisher,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Bordini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.H.</given-names>
            ,
            <surname>Hirsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Torroni</surname>
          </string-name>
          ,
          <string-name>
            <surname>P.</surname>
          </string-name>
          :
          <article-title>Computational logics and agents: a road map of current technologies and future trends</article-title>
          .
          <source>Comput. Int. J</source>
          .
          <volume>23</volume>
          (
          <issue>1</issue>
          ) (
          <year>2007</year>
          )
          <fpage>61</fpage>
          -
          <lpage>91</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Fitzpatrick</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , contributors: YARP - Yet Another Robot Platform (May
          <year>2015</year>
          ) YARP: http://github.com/ robotology/yarp
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Leite</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          :
          <article-title>Evolving knowledge bases: specification and semantics</article-title>
          .
          <source>Frontiers in Artificial Intelligence and Applications</source>
          , vol.
          <volume>81</volume>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Metta</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fitzpatrick</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Natale</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>YARP: yet another robot platform</article-title>
          .
          <source>International Journal on Advanced Robotics Systems</source>
          <volume>3</volume>
          (
          <issue>1</issue>
          ) (
          <year>2006</year>
          )
          <fpage>43</fpage>
          -
          <lpage>48</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Metta</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Natale</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nori</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sandini</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vernon</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fadiga</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Von Hofsten</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosander</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lopes</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>SantosVictor</surname>
          </string-name>
          , J., et al.:
          <article-title>The iCub humanoid robot: An open-systems platform for research in cognitive development</article-title>
          .
          <source>Neural Networks</source>
          <volume>23</volume>
          (
          <issue>8</issue>
          ) (
          <year>2010</year>
          )
          <fpage>1125</fpage>
          -
          <lpage>1134</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Paauwe</surname>
            ,
            <given-names>P.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoorn</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konijn</surname>
            ,
            <given-names>E.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Keyson</surname>
            ,
            <given-names>D.V.</given-names>
          </string-name>
          :
          <article-title>Designing Robot Embodiments for Social Interaction: Affordances Topple Realism and Aesthetics</article-title>
          .
          <source>Int. J. on Social Robotics</source>
          <volume>7</volume>
          (
          <issue>5</issue>
          ) (
          <year>2015</year>
          )
          <fpage>697</fpage>
          -
          <lpage>708</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Paauwe</surname>
            ,
            <given-names>R.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Keyson</surname>
            ,
            <given-names>D.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoorn</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konijn</surname>
            ,
            <given-names>E.A.</given-names>
          </string-name>
          :
          <article-title>Minimal requirements of realism in social robots: Designing for patients with acquired brain injury</article-title>
          .
          <source>In: Proc. of the 33rd Annual ACM Conf. on Human Factors in Computing Systems</source>
          , ACM (
          <year>2015</year>
          )
          <fpage>2139</fpage>
          -
          <lpage>2144</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Van Kemenade</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konijn</surname>
            ,
            <given-names>E.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoorn</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          :
          <article-title>Robots humanize care - moral concerns versus witnessed benefits for the elderly</article-title>
          . In Verdier,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Bienkiewicz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Fred</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.L.N.</given-names>
            ,
            <surname>Gamboa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Elias</surname>
          </string-name>
          , D., eds.
          <source>: Proc. of HEALTHINF</source>
          <year>2015</year>
          ,
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>