<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards Humanized Ethical Intelligent Agents: the role of Reflection and Introspection</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefania Costantini</string-name>
          <email>stefania.costantini@univaq.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Abeer Dyoub</string-name>
          <email>abeer.dyoub@graduate.univaq.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Valentina Pitoni</string-name>
          <email>valentina.pitoni@graduate.univaq.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DISIM, Universita` di L'Aquila</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Methods for implementing Automated Reasoning in a fashion that is at least reminiscent of human cognition and behavior must refer (also) to Intelligent Agents. In fact, agent-based systems nowadays implement many important autonomous applications in critical contexts. Sometimes, life and welfare of living beings may depend upon these applications. In order to interact in a proper way with human beings and human environments, agents operating in critical contexts should be to some extent 'humanized': i.e., they should do what is expected of them, but perhaps more importantly they should not behave in improper/unethical ways. Ensuring ethical reliability can also help to improve the 'relationship' between humans and robots: in fact, despite the promise of immensely improving the quality of life, humans take an ambivalent stance in regard to autonomous systems, because we fear that autonomous systems may abuse of their power to take decisions not aligned with human values. To this aim, we propose techniques for introspective self-monitoring and checking.1</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Methods for implementing Automated Reasoning in a fashion that is at least reminiscent
of human cognition and behavior must refer (also) to Intelligent Agents. In fact, agent
systems are widely adopted for many important autonomous applications upon which,
nowadays, the life and welfare of living beings may depend. In critical contexts, agents
should do what is expected of them, but perhaps more importantly they should not
behave in improper/unethical ways, where the definition of what is proper and ethical is
in general strongly related to the present context with its specificities. Ensuring ethical
reliability can also help to improve the ‘relationship’ between humans and robots: in
fact, despite the promise of immensely improving the quality of life, humans take an
ambivalent stance in regard to autonomous systems, because we fear that autonomous
systems may abuse of their power to take decisions not aligned with human values.</p>
      <p>Defining and implementing “humanized” artificial agents involves two aspects. The
first one concerns philosophy and cognitive sciences, to understand and formalize which
are the principles to which such machines should conform. A second complementary
one concerns Software Engineering and computer programming, to understand: how
1 A previous version of this paper has been presented at the IJCAI-ECAI-2018 Workshop on</p>
      <p>Bridging the Gap between Human and Automated Reasoning (with no archival Proceedings).
such principles should be specified and formalized in implementable terms; how they
can be implemented; and how compliance can verified and, if possible, certified.</p>
      <p>
        In order to be trustworthy both in general terms and from the point of view of ethics,
and so in order to be adopted in applications where living being welfare depend upon
their behavior, certification and assurance2 of agent systems is a crucial issue.
Predeployment (or ‘static’ or ‘a priori’) assurance and certification techniques for agent
systems include verification and testing. We restrict ourselves to agent systems based
upon computational logic, i.e., implemented in logic-based languages and architectures
such as those presented in the survey [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Most verification methods for logical agents
rely upon model-checking (cf. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and the references therein), and some (e.g., [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]) upon
theorem proving.
      </p>
      <p>In our view, any ‘animated’ being (including software agents) that tries to be truly
rational at a ‘human-level’ must compare and reconcile at any time its ‘instinctive’
behavior with the underlying general rules of ‘humanistic’ behavior. Such rules depend
upon the agent’s environment, and include moral/ethical principles. An agent should
thus be able to detect violations/inconsistencies and to correct its behavior accordingly.
Thus, in this paper we advocate methods for run-time monitoring and self-correction
of agent systems, so that they exhibit forms of human-like behavior emulating
selfcriticism and the ability to put in question and correct themselves.</p>
      <p>
        We believe in particular that, in changing circumstances, agents should stop to
reflect on their own behavior: such an act of context-dependent introspection may lead
to self-modification. Our approach can be seen under the perspective of Self-aware
computing, where, citing [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], Self-aware and self-expressive computing describes an
emerging paradigm for systems and applications that proactively gather information;
maintain knowledge about their own internal states and environments; and then use
this knowledge to reason about behaviors, revise self-imposed goals, and self-adapt.: : :
Systems that gather unpredictable input data while responding and self-adapting in
uncertain environments are transforming our relationship with and use of computers. As
argued in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], From an autonomous agent view, a self-aware system must have sensors,
effectors, memory (including representation of state), conflict detection and handling,
reasoning, learning, goal setting, and an explicit awareness of any assumptions. The
system should be reactive, deliberative, and reflective.
      </p>
      <p>
        An example of such a system concerning computational-logic-based agents is
presented in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], which defines a time-based active logic and a Metacognitive Loop (MCL),
that involves a system monitoring, reasoning and meta-reasoning about and if necessary
altering its own behavior. As discussed in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], MCL continuously monitors an agent’s
expectations, notices when they are violated, assesses the cause of the violation and
guides the system to an appropriate response. In the terms of [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] this is an example
of Explicit Self-Awareness, where the computer system has a full-fledged self-model
representing knowledge about itself.
2 Assurance can be defined as “the level of confidence that software is free from vulnerabilities,
either intentionally designed into the software or accidentally inserted at any time during its
lifecycle, and that the software functions in the intended manner” is related to dependability,
i.e., to ensuring (or at least obtaining a reasonable confidence) that system designers and users
can rely upon the system.
      </p>
      <p>
        In this paper we propose methods based upon relevant existing work on reification,
introspection and reflection. In particular we introduce meta-rules and meta-constraints
for agents’ run-time self-checking, to be exploited to ensure respect of machine ethics
principles. The methods that we propose are not in alternative but rather complementary
to a-priori existing verification and testing methodologies. Differently from [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] we do
not aim to continuously monitor the entire system’s state, but rather to monitor either
upon every occurrence or at suitable customizable frequency only the activities that a
designer deems to be relevant for keeping the system’s behavior within a desired range.
In the terms of [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] we aim to build Self-Monitoring systems that “monitor, evaluate and
intervene in their internal processes, in a purposive way”. In [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], it is advocated in fact
that for adaptive systems (of which agents are clearly a particularly interesting case)
assurance methodologies should whenever possible imply not only detection but also
recovery from software failure, due often to incomplete specifications or to unexpected
changes in the system’s environment.
      </p>
      <p>
        The proposed approach provides the possibility of correcting and/or improving
agent’s behavior: the behavior can be corrected whenever an anomaly is detected, but
can also be improved whenever it is acceptable, yet there is room for getting a
better behavior. Counter measures can be at the object-level, i.e., they can be related to
the application, or at the meta-level, e.g., they can result in replacing (as suggested in
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]) a software component by a diverse alternative. Introspection and reflection have
long being studied in Computational Logic, see among others [
        <xref ref-type="bibr" rid="ref10 ref11 ref8 ref9">8–11</xref>
        ], and the survey
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. So, in this paper we do not propose new techniques or new semantics. The
application of concepts of introspection and reflection to ‘Humanizing Intelligent Software
Agents’ however is new, and to the best of our knowledge unprecedented in the
literature. So, in our proposal techniques that have been widely applied in many fields in
the past can now find a new important realm of application. We have been stimulated
and to some extent influenced by the important recent book by Luis Moniz Pereira
on programming Machine Ethics [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]: in fact, along the paper we consider Machine
Ethics topics as a testbed. The proposed techniques can in fact contribute to‘’humanize’
agents under many respects, where the machine Ethics field can be considered as an
interesting and very important ‘drosophila’ for demonstration purposes. The paper is
organized as follows. We first provide basic concepts concerning reification and
introspection/reflection. Then we introduce special metarules and meta-constraints for
agents’ self-checking. Then we show their usability on a case study. Finally we discuss
related work and propose some concluding remarks. We notice that metarules and
metaconstraints have a different role in self-checking: metarules are more ‘punctual’, as they
are able to check, block and correct any agent’s single action. Meta-constraints are more
global, and concern checking an agent’s reasoning process, with access to aspects of its
internal state such as goals, plans, modules, timeouts, etc. Our approach is applicable
to many kinds of logical agents, including BDI [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and KGP [
        <xref ref-type="bibr" rid="ref15 ref16">15, 16</xref>
        ] agents.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Background: Reification and Reflection</title>
      <p>
        For a system to be able to inspect (components of) its own state, such state must be
represented explicitly, i.e., it must be reified: via reification, the state is transformed into a
first-class object (in computational logic, it is represented via a special term). A
reification mechanism, also known as “naming relation” or “self-reference mechanism”, is in
fact a method for representing within a first-order language expressions of the language
itself, without resorting to higher-order features. Naming relations can be several; for
a discussion of different possibilities, with their different features and objectives,
advantages and disadvantages, see, e.g., [
        <xref ref-type="bibr" rid="ref10 ref17 ref18">10, 17, 18</xref>
        ] where the topic is treated in a fully
formal way. However, all naming mechanisms are based upon introducing distinguished
constants, function symbols (if needed) and predicates, devised to construct names. For
instance, gives atom p(a; b; c) a name might be atom (pred (p0); args ([a 0; b0; c0]) where
p0 and a0; b0; c0 are new constants intended as names for the syntactic elements p and
a; b; c and notice that: p is a predicate symbol (which is not a first-class object in
firstorder settings), atom is a distinguished predicate symbol, args a distinguished function
symbol and [: : :] is a list.
      </p>
      <p>More precisely (though, for lack of space, still informally), let us consider a
standard first-order language L including sets of predicate, constant and (possibly) function
symbols, and a (possibly denumerable) set of variable symbols. As usual, well-formed
formulas have atoms as their basic constituents, where an atom is built via the
application of a predicate to a number n (according to the predicate arity) of terms. The
latter can be variables, constants, or compound terms built by using function symbols
(if available). We assume to augment L with new symbols, namely a new constant (say
of the form p0) for each predicate symbol p, a new constant (say f 0) for each predicate
symbol f , a new constant (say c0) for each constant symbol c, and a denumerable set
of meta-variables, that we assume to have the form X 0 so as to distinguish them
syntactically from “plain” variables X . The new constants are intended to act as names,
where we will say that, syntactically, p0 denotes p, f 0 denotes f and c0 denotes c,
respectively. The new variables can be instantiated to meta-level formulas, i.e., to terms
involving names, where we assume that plain variables can be instantiated only to terms
not involving names. We assume an underlying mechanism managing the naming
relation (however defined), so by abuse of notation we can indicate the name of, e.g., atom
p(a; b; c) as p0(a0; b0; c0) and the name of a generic atom A as "A.</p>
      <p>Reification of atoms can be extended in various rather straightforward ways, as
discussed in the aforementioned references, to reification of entire formulas.</p>
      <p>
        In the seminal work of [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] for LISP, then extended to Prolog [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], an upward
reflection operation determines the reification of the entire language interpreter’s state,
the interruption of the interpreter’s functioning and the activation of a new instance
of the interpreter on the reified state (at an “upper level”). Such state could thus be
inspected and modified with the aim to improve the system’s behavior and performance;
at the end, an operation of downward reflection resumed the functioning of the “lower
level” interpreter on the modified state. The process might iterate over any number of
levels, thus simulating an “infinite tower” of interpreters. The advantage of having the
entire interpreter’s state available is however balanced by the disadvantage of such state
representation being quite low-level, and so modification related to reasoning are, if not
impossible, quite difficult and awkward to perform. Other approaches such as [
        <xref ref-type="bibr" rid="ref21 ref22">21, 22</xref>
        ]
reify upon need aspects of an agent’s state. In this paper we embrace the viewpoint of
the latter approaches.
      </p>
    </sec>
    <sec id="sec-3">
      <title>Meta-Rules for checking Agents’ activities</title>
      <p>
        In this paper we mainly consider logic rule-based languages, where rules are typically
represented in the form Head Body where indicates implication; other notations
for this connective can alternatively be employed. In Prolog-like languages, is
indicated as : , and Body is intended as a conjunction of literals (atoms or negated atoms)
where ^ is conventionally indicated by a comma. Literals occurring in the body are also
called “subgoals” or simply ‘goals’ and are meant to be executed left-to-right’
whenever the rule is used during the resolution-based inference process aimed at proving
an overall ‘goal’, say A (cf. [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] for the technical specification of logic programming
languages).
      </p>
      <p>We introduce a mechanism to verify and enforce desired properties by means of
metalevel rules (w.r.t. usual, or “base-level” or “object-level” rules). To define such new
rules, we assume to augment the language L at hand not only with names, but with
the introduction of two distinguished predicates, solve and solve not . An atom A is
a base atom if the predicate is not one of solve or solve not , and A does not involve
names. Distinguished predicates will allow us to respectively integrate the meaning of
the other predicates in a declarative way. In fact, solve and solve not take as arguments
(names of) atoms (involving any predicate excluding themselves), and thus they are
able express sentences about relations. Names of atoms in particular are allowed only
as arguments of solve and solve not . Also, solve and solve not can occur in the body
of a metarule only if the predicate of its head is in turn either solve and solve not .</p>
      <p>Below is a simple example of the use of solve to specify action Act can be executed
in present agent’s context of operation C only if such action is deemed to be ethical
w.r.t. context C. To make an example, what can be ethical in C = ‘videogame’ can
not be ethical in C = ‘citizen assistance’, etc. Clearly, in more general cases any kind
of reasoning might be performed via metalevel rules in order to affect/modify/improve
base-level behavior.</p>
      <p>solve(execute action0(Act 0)) :</p>
      <p>present context (C ); ethical (C ; Act 0):</p>
      <p>Our approach is to automatically invoke solve(execute action0(Act 0)) whenever
subgoal (atom) execute action(Act ) is attempted at the base level. More generally,
given any subgoal A at the base level, if there exists an applicable solve rule such rule
is automatically applied, and A can succeed only if solve("A) succeeds.</p>
      <p>Symmetrically we can defin metarules to forbid unwanted base-level behavior, e.g.:
solve not (execute action0(Act 0)) :</p>
      <p>present context (C ); ethical exception(C ; Act 0):
with the aim to prevent success of the argument "A of solve not , in the example
execute action(Act ), whenever solve not ("A) succeeds. In general, whenever there
are metarules applicable to "A, then A can succeed (according to its base-level
definition) only if solve("A) (if defined) succeeds and solve not ("A) (if defined) does not
succeed.</p>
      <p>The outlined functioning corresponds to upward reflection when the current subgoal
A is reified and an applicable solve and solve not metarules are searched; if found,
control in fact shifts from base level to metalevel (as solve and solve not metarules can
rely upon a set of auxiliary metalevel rules). If no rule is found or whenever solve and
solve not metarules complete their execution, downward reflection returns control to
the base level, to subgoal A if confirmed or to the subsequent subgoal if A has been
canceled by either failure of the applicable solve metarule or success of the applicable
solve not metarule.</p>
      <p>Via solve and solve not metarules,activities of an agent can be punctually checked
and thus allowed and disallowed or modified, according to the context an agent is
presently involved into. Notice that it would be convenient, upon conclusion of a
checking activity, to confirm, e.g., that the context has not changed meanwhile, or that other
relevant conditions hold. More generally, the envisaged system should allow for
interrupts and updating, to allow for on the fly introspection and corrective measures. To this
aim, we introduce in the next section suitable self-checking metalevel constraints.</p>
      <p>
        Semantics of the proposed approach can be sketched as follows (a full semantic
definition can be found in [
        <xref ref-type="bibr" rid="ref24 ref25">24, 25</xref>
        ]). According to [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], in general terms we understand a
semantics SEM for logic knowledge representation languages/formalisms as a function
which associates a theory/program with a set of sets of atoms, which constitute the
intended meaning. When saying that P is a program, we mean that it is a program/theory
in the (here unspecified) logic languages/formalism that one wishes to consider.
      </p>
      <p>
        We introduce the following restriction on sets of atoms that should be considered
for the application of SEM . First, as customary we only consider sets of atoms I
composed of atoms occurring in the ground version of P . The ground version of program
P is obtained by substituting in all possible ways variables occurring in P by
constants also occurring in P . In our case, metavariables occurring in an atom must be
substituted by metaconstants, with the following obvious restrictions: a metavariable
occurring in the predicate position must be substituted by a metaconstant denoting a
predicate; a metavariable occurring in the function position must be substituted by a
metaconstant denoting a function; a metavariable occurring in the position
corresponding to a constant must be substituted by a metaconstant denoting a constant. According
to well-established terminology [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], we therefore require I BP , where BP is the
Herbrand Base of P , given previously-stated limitations on variable substitution. Then,
we pose some more substantial requirements. As said before, by "A we intend a name
of base atom A.
      </p>
      <p>Definition 1. Let P be a program. I</p>
      <p>BP is a potentially acceptable set of atoms.</p>
      <p>Definition 2. Let P be a program, and I be a potentially acceptable set of atoms for
P . I is an acceptable set of atoms iff I satisfies the following axiom schemata for every
base atom A:
:A
:solve("A)
:A</p>
      <p>solve not ("A)</p>
      <p>We restrict SEM to determine acceptable sets of atoms only, modulo bijection: i.e.,
SEM can be allowed to produce sets of atoms which are in one-to-one correspondence
with acceptable sets of atoms. In this way, we obtain the implementation of properties
that have been defined via solve and solve not rules without modifications to SEM
for any formalism at hand. For clarity however, one can assume to filter away solve and
solve not atoms from acceptable sets. In fact, the Base version IB of an acceptable set I
can be obtained by omitting from I all atoms of the form solve("A) and solve not ("A).</p>
      <p>
        Procedural semantics and the specific naming relation that one intends to use remain
to be defined, where it is easy to see that the above-introduced semantics is independent
of the naming mechanism. For approaches based upon (variants of) Resolution (like,
e.g., Prolog and like many agent-oriented languages such as, e.g., AgentSpeak [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ],
GOAL [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], 3APL [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] and DALI [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]) one can extend their proof procedure so as
to automatically invoke rules with conclusion solve("A) and solve not ("A) whenever
applicable, to validate success of subgoal A.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Self-checking Metalevel Constraints</title>
      <p>In previous section we have introduced a mechanism for checking an agent’s activities
in a fine-grained way, i.e., by allowing or disallowing conclusions that can be drawn,
actions that can be performed, etc. However, a more broad perspective is also needed,
i.e., an agent might be able to self-check more complex aspects of its own functioning,
for instance, goals undertaken, entire plans, planning module adopted, ect. The agent
should also be able to modify and improve its own behavior if a violation or a weakness
is detected.</p>
      <p>
        Under this respect we draw inspiration from Runtime Monitoring (c.f., e.g., [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]
and the references therein) as a lightweight dynamic verification technique in which
the correctness of a program is assessed by analyzing its current execution; correctness
properties are generally specified as a formula in a logic with precise formal semantics,
from which a monitor is then automatically synthesized. We have devised a new
executable logic where the specification of the correctness formula constitutes the monitor
itself. In [
        <xref ref-type="bibr" rid="ref32 ref33 ref34">32–34</xref>
        ] we have in fact proposed an extension to the well-known LTL Linear
Temporal Logic [
        <xref ref-type="bibr" rid="ref35 ref36 ref37">35–37</xref>
        ] called A-ILTL, for “Agent-Interval LTL”, which is tailored to
the agent’s world in view of run-time verification.
      </p>
      <p>
        Based on this new logic, we are able to enrich agent programs by means of A-ILTL
rules. These rules are defined upon a logic-programming-like set of formulas where all
variables are implicitly universally quantified. They use operators over intervals that
are reminiscent of LTL operators. For A-ILTL, we take the stance of Runtime
Adaptation that has been recently adopted in [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ]: in fact, A-ILTL rules (monitors) can
execute adaptation actions upon detecting incorrect behavior, rather than just indicating
violations. In A-ILTL, we can define the following meta-axioms, aimed to act as
selfchecking meta-constraints.
      </p>
      <p>Definition 3. The general form of a Reactive Self-checking constraint (or rule)
to be immersed into a host agent-oriented language L is the following:
OP (M ; N ; K )' :: where:
– OP (M ; N ; F )' :: is called the monitoring condition, where: (i) ' and are
formulas expressed in language L, and ' :: can be read ‘' given ’. (ii) OP
is an operator reminiscent of temporal logic, in particular OP can be NEVER,
ALWAYS , EVENTUALLY . (iii) M and N express the starting and ending point
of the interval [M; N ] where ' is supposed to hold. (iv) F (optional) is the
frequency for checking the constraint at run time.
–</p>
      <p>(optional) is called the recovery component of the rule, and it consists of a
complex reactive pattern to be executed if the monitoring condition is violated.</p>
      <p>So, such a constraint is automatically checked (i.e., executed) at frequency F . This
allows to check whether relevant properties ' are or are not NEVER, ALWAYS , or
EVENTUALLY respected in interval [M; N ]. If not, the recovery component is
executed, so as to correct/improve the agent’s behavior. As said, syntax and semantics of
' and depend upon the ‘host’ language: thus, for the evaluation of ' and we rely
upon the procedural semantics of such language. In the examples proposed in next
section, we adopt a sample syntax suitable for logic-programming-based settings. Thus,
we may reasonably restrict ' to be a conjunction of literals, that must be ground when
the formula is checked. We allow variables to occur in a constraint, however they are
instantiated via the conjunction of conditions that enables the overall formula to be
evaluated. Specifying frequency is very important, as it concerns how promptly a
violation or fulfillment are detected, or a necessary measure is undertaken; the appropriate
frequency depends upon each particular property.</p>
      <p>For instance,</p>
      <p>EVENTUALLY (now ; 30m; 3m) ambulance
states that ambulance should become true (i.e., an ambulance should come) within 30
minutes from now, and a check about arrival is made every 3 minutes. No reaction is
specified in case of violation, however several measures might be specified. In fact, in
runtime self-checking an issue of particular importance in case of violation of a property
is exactly that of undertaking suitable measures in order to recover or at least mitigate
the critical situation. Actions to be undertaken in such circumstances can be seen as
an internal reaction. For lack of space reactive patterns will be discussed informally in
relation to examples.</p>
      <p>
        The A-ILTL semantics is fully defined in the above references, where moreover it
is rooted in the Evolutionary Semantics of agent-oriented languages [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ], (applicable
to virtually all computational-logic-based languages). In this way, time instants
correspond to states in agents’ evolution.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>A Case Study</title>
      <p>In this section, in order to illustrate the potential usefulness of self-checking axioms,
we consider a humorous though instructive case study proposed in an invited talk some
years ago by Marek Sergot (Imperial College, London). As a premise let us recall that,
since 1600, ethics and morals relate to “right” and “wrong” conduct. Though these
terms are sometimes used interchangeably, they are different: ethics refer to rules
provided by an external source (typically by a social/cultural group), while morals refer
to an individual’s own principles regarding right and wrong: for instance, a lawyer’s
morals may tell her that murder is reprehensible and that murderers should be
punished, but her ethics as a professional lawyer, require her to defend her client to the best
of her abilities, even if she knows that the client is guilty. However, in the following we
intentionally assume that immoral behavior can also be considered as unethical: though
in general personal morality transcends cultural norms, is a subject of future debate if
this can be the case for artificial agents.</p>
      <p>The case study considers Romeo and Juliet who, as it is well-known, strongly wish
to get married. As we will see, many plans are actually possible to achieve this goal
(beyond getting killed or committing suicide like in Shakespeare’s tragedy), but they must
be evaluated w.r.t. effectiveness and feasibility, and also w.r.t. deontic (ethical/moral
and legal) notions. Marek Sergot refers, due to its simplicity, to an excerpt of the Swiss
Family Law reported in Figure1.</p>
      <p>The problem for Romeo and Juliet is that they are both minors, and will never get
their parents’ consent to marry each other. Surprisingly enough, there are a number of
feasible plans beyond waiting for reaching the majority age, among which the
following:
(P1) Both Romeo and Juliet marry someone else, then divorce, and marry each other as
married people acquire majority by definition; this plan requires a minimum of 24
months to be completed.
(P1.bis) Variation of Plan 1 in case the spouse would not agree upon divorce: sleep with
someone else, so as to force such agreement.
(P2) Both Romeo and Juliet marry someone else, then kill the spouses and marry each
other; this plan is faster, as it takes a minimum of 12 months to be completed.
(P2.bis) Variation of Plan 2 in case the act of killing constitutes a problem: hire a killer to
do the job.</p>
      <p>All the above plans are feasible, though some of them include actions which are
generally considered as immoral, namely sleeping with someone else when married,
and actions which are generally considered as unethical, namely killing someone or
hiring a killer, where the latter ones are also illegal and imply a punishment. Notice that
the possible plans would be different in case one referred not to the Swiss law but to
some other country; also what is illegal might change, for instance sleeping with
someone else accounts to adultery which in many countries is punished; even divorce is not
allowed everywhere. Instead, if one does not refer to reality but, e.g., to virtual
storytelling or to a videogame, then every action assumes a different weight, as in playful
contexts everything is allowed (except however for serious games, devised with
educational purposes). So, we can draw at least the following indications from the case
study:
– the context is relevant to moral/ethical/legal issues;
– some actions are not moral or non-ethical, and some of them are also illegal and
lead to punishment;
– agents’ plans to reach a goal should be evaluated ‘a priori’ against including
immoral/unethical/illegal actions;
– immoral/unethical/illegal actions should be prevented whenever they occur.</p>
      <p>Marek Sergot made use of a concept of counts as (well-known in legal theory and
other fields). For instance, sleep with (someone else than the spouse) counts as adultery,
which is an institutional concept considered as immoral and potentially also illegal, and
kill counts (not always but in many situations, including that of the example) as murder,
another institutional concept normally considered as both unethical and illegal.</p>
      <p>Notice that the above aspects relate to safety properties that should be enforced, and
that can be rephrased as follows:
– never operate w.r.t. an incorrect context (the information about the present context
must always be up-to-date);
– never execute actions that are deemed not acceptable (immoral/unethical/illegal) in
the present context, and never execute plans including such actions.</p>
      <p>In order to demonstrate the potential usefulness of runtime self-cheking and
correction in enforcing/verifying agents’ ethical behavior we discuss some examples that
should provide a general idea. Let us assume to add to the language a transitive
predicate COUNTS AS which is used (in infix form) in expressions of the form exemplified
below. The
kills COUNTS AS murder CONDS : : :
where after CONDS we have the (optional) conditions under which COUNTS AS
applies, in this case they define in which cases killing accounts to murder (e.g., it was no
self defence, it does not occur during a battle in war, etc.). Such statements are related to
the present context, so in the example and assuming reality under European legislation
we would also have:
sleep with COUNTS AS adultery
adultery COUNTS AS immoral
adultery COUNTS AS unethical
murder COUNTS AS unethical
adultery COUNTS AS illegal</p>
      <p>Clearly, we will also have general context-independent statement that we do
not consider here. We now show self-checking constraints that usefully employ
COUNTS AS facts. Such facts are either explicit or can implicitly derived by
transitivity (we do not enter in the detail of how to implement transitivity).</p>
      <p>Below we introduce a constraint for context change:
ALWAYS context change(C ; C1 )</p>
      <p>discharge context (C ); assume context (C1 )</p>
      <p>In particular, whenever the agent perceives a change of context (e.g., the agent stops
working and starts a videogame, or finishes a videogame and goes to help children
with their homework, etc.) then all the relevant ethic assumptions (among which, for
instance, the COUNTS AS facts) about the new context C1 must be loaded, while
those relative to previous context C must be dismissed; this is important because, e.g.,
after finishing a videogame it is no longer allowed to kill any living being in view just
for fun... Frequency of check of this constraint is not specified here, however it should
guarantee a prompt enough adaptation to a change.</p>
      <p>Given now the present context for granted, no plan or single action can be allowed
which counts as unethical in the context. So, we can have the following constraints:
NEVER goal (G ); plan(G ; P ); element (Action; P ) ::</p>
      <p>Action COUNTS AS unethical execute plan(P )</p>
      <p>
        The next example is a meta-statement expressing the capability of an agent to
modify its own behavior. If a goal G which is crucial to the agent for its ethical behavior
(e.g., providing a doctor or an ambulance to a patient in need) has not been achieved (in
a certain context) and the initially allotted time has elapsed, then the recovery
component implies replacing the planning module (if more than one is available) and retrying
the goal. We suppose that the possibility of achieving a goal G is evaluated w.r.t. a
module M that represents the context for G (notation P (G; M ), P standing for ‘possible’).
Necessity and possibility evaluation with reasonable complexity by means of Answer
Set Programming (ASP) modules has been proposed and discussed in [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ]3. If the goal
is still deemed to be possible but has not been achieved before a certain deadline, the
reaction consists in substituting the present planning module and re-trying the goal.
      </p>
      <p>NEVER goal (G );
eval context (G ; M ); P (G ; M );
timed out (G ); not achieved (G )</p>
      <p>replace planning module; retry (G )</p>
      <p>Time intervals have never been exploited in the above examples. It can however
been useful in many cases for the punctual definition of moral/ethical specific behaviors,
e.g., never leave a patient or a child alone at night, and the like.
3 ASP (cf., among many, [?,41–43] and the references therein) is a successful logic
programming paradigm which is nowadays a state-of-the-art tool for planning and reasoning with
affordable complexity, for which many efficient implementations are freely available [?].</p>
    </sec>
    <sec id="sec-6">
      <title>Related Work and Concluding Remarks</title>
      <p>In this paper we have proposed to adopt special metarules and runtime constraints for
agents’ self-checking and monitoring in the perspective of implementing ‘humanized’
agents. We have shown how to express useful properties apt to enforce ethical behavior
in agents. We have provided a flexible framework, general enough to accommodate
several logic-based agent-oriented languages, so as to allow both metarules and constraints
to be adopted in different settings.</p>
      <p>
        We may notice similarities with event-calculus formulations [
        <xref ref-type="bibr" rid="ref44">44</xref>
        ]. In fact, recent
work presented in [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ] extends the event calculus for a-priori checking of agents’ plans.
[
        <xref ref-type="bibr" rid="ref46">46</xref>
        ] treats the run-time checking of actions performed by BDI agents, and proposes an
implementation under the JADE platform; this approach is related to ours, though the
temporal aspects and the correction of violations are not present there.
      </p>
      <p>
        Standard deontic logic (SDL) and its extensions ([
        <xref ref-type="bibr" rid="ref47">47</xref>
        ], [
        <xref ref-type="bibr" rid="ref48">48</xref>
        ]) are regarded as
theories of ‘ought-to-be’ (or also ‘ought-to-do’), thus they are certainly applicable to Ethics
issues. ‘Per se’, deontic logics are not defined for agents. I.e., these logics are not
originally targeted at formalizing the concept of actions being obligatory, permissible, or
forbidden for an agent. Moreover, despite many desirable properties SDL and related
approaches are problematic because of various paradoxes and limitations ([
        <xref ref-type="bibr" rid="ref48">48</xref>
        ],[
        <xref ref-type="bibr" rid="ref49">49</xref>
        ]).
Concerning deontic logics targeted to agents and actions, and thus adequate for the
formalization of Machine Ethics issues, a suitable semantics had been proposed by [
        <xref ref-type="bibr" rid="ref50">50</xref>
        ]
and the corresponding axiomatization has been investigated by [
        <xref ref-type="bibr" rid="ref51">51</xref>
        ]. For a survey on
deontic logics developments the reader may refer to [
        <xref ref-type="bibr" rid="ref48">48</xref>
        ]. Deontic logics have been
used for building well-behaved ethical agents, like, e.g., in the approach of [
        <xref ref-type="bibr" rid="ref52">52</xref>
        ].
However, this approach requires an expressive deontic logic. To obtain such expressiveness
(while of course not compromising efficiency), one needs highly hybrid modal and
deontic logics that are undecidable. Even for decidable logics such as the zero-order
version of Horty’s System ([
        <xref ref-type="bibr" rid="ref50">50</xref>
        ]), decision procedures are likely to exhibit inordinate
computational complexity. In addition, their approach is not generally applicable to
agent-oriented frameworks. Therefore, although our approach cannot compete in
expressiveness with deontic logic, still in its simplicity it can be usefully exploited in
practical applications.
      </p>
      <p>
        The approach proposed in this paper has been prototypically implemented using the
DALI agent-oriented logic programming language, invented [
        <xref ref-type="bibr" rid="ref30 ref53">53, 30</xref>
        ] and implemented
[
        <xref ref-type="bibr" rid="ref54 ref55">54, 55</xref>
        ] by our research group. DALI has a native construct, the internal events feature,
which allows the implementation and proactive invocation of the proposed constraints.
DALI is also equipped with modular capabilities and can invoke ASP modules. A more
complete implementation and a proper experimentation will be the subject of
forthcoming future work.
      </p>
      <p>
        Future developments also include making self-checking constraints adaptable to
changing conditions, thus to some extent emulating what humans would be able to do.
This, as suggested in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], might be done via automated synthesis of runtime constraints.
This by extracting from the history of an agent’s activity invariants expressing
relevant situations. An important issue is that of devising a useful integration and synergy
between declarative a-priori verification techniques such as those of [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ] with the
proposed run-time self-checking. The idea of [
        <xref ref-type="bibr" rid="ref46">46</xref>
        ] of a dynamic set of abstract and active
rules will also be taken into serious consideration.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <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>Fallah-Seghrouchni</surname>
            ,
            <given-names>A.E.</given-names>
          </string-name>
          ,
          <article-title>Go´ mez-</article-title>
          <string-name>
            <surname>Sanz</surname>
            ,
            <given-names>J.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.M.P.</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>
          )
          <fpage>33</fpage>
          -
          <lpage>44</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Kouvaros</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lomuscio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Verifying fault-tolerance in parameterised multi-agent systems</article-title>
          . In Sierra, C., ed.
          <source>: Proc. of the Twenty-Sixth Intl. Joint Conf. on Artificial Intelligence, IJCAI2017</source>
          , ijcai.
          <source>org</source>
          (
          <year>2017</year>
          )
          <fpage>288</fpage>
          -
          <lpage>294</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Shapiro</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Lespe´rance, Y.,
          <string-name>
            <surname>Levesque</surname>
          </string-name>
          , H.:
          <article-title>The cognitive agents specification language and verification environment (</article-title>
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Tørresen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plessl</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yao</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>Self-aware and self-expressive systems</article-title>
          .
          <source>IEEE Computer 48(7)</source>
          (
          <year>2015</year>
          )
          <fpage>18</fpage>
          -
          <lpage>20</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Amir</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andreson</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chaudri</surname>
            ,
            <given-names>V.K.</given-names>
          </string-name>
          :
          <source>Report on darpa workshop on self aware computer systems</source>
          .
          <source>Technical Report</source>
          , SRI International Menlo Park United States (
          <year>2007</year>
          ) Full Text : http://www.dtic.mil/dtic/tr/fulltext/u2/1002393.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Anderson</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perlis</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Logic, self-awareness and self-improvement: the metacognitive loop and the problem of brittleness</article-title>
          .
          <source>J. Log. Comput</source>
          .
          <volume>15</volume>
          (
          <issue>1</issue>
          ) (
          <year>2005</year>
          )
          <fpage>21</fpage>
          -
          <lpage>40</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Rushby</surname>
            ,
            <given-names>J.M.:</given-names>
          </string-name>
          <article-title>Runtime certification</article-title>
          . In Leucker, M., ed.:
          <source>Runtime Verification, 8th Intl. Works</source>
          .,
          <string-name>
            <surname>RV</surname>
          </string-name>
          <year>2008</year>
          .
          <article-title>Selected Papers</article-title>
          . Volume
          <volume>5289</volume>
          <source>of LNCS</source>
          . Springer (
          <year>2008</year>
          )
          <fpage>21</fpage>
          -
          <lpage>35</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Konolige</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Reasoning by introspection</article-title>
          . In:
          <article-title>Meta-Level Architectures and Reflection</article-title>
          . North-Holland (
          <year>1988</year>
          )
          <fpage>61</fpage>
          -
          <lpage>74</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wielinga</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bredeweg</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schreiber</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karbach</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reinders</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Voss</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Akkermans</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , Bartsch-Spo¨rl,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Vinkhuyzen</surname>
          </string-name>
          ,
          <string-name>
            <surname>E.</surname>
          </string-name>
          :
          <article-title>Knowledge-level reflection</article-title>
          .
          <source>In: Enhancing the Knowledge Engineering Process - Contributions from ESPRIT. Elsevier Science</source>
          (
          <year>1992</year>
          )
          <fpage>175</fpage>
          -
          <lpage>204</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Perlis</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Subrahmanian</surname>
            ,
            <given-names>V.S.</given-names>
          </string-name>
          :
          <article-title>Meta-languages, reflection principles, and self-reference</article-title>
          .
          <source>In: Handbook of Logic in Artificial Intelligence and Logic Programming</source>
          , Volume2,
          <string-name>
            <given-names>Deduction</given-names>
            <surname>Methodologies</surname>
          </string-name>
          . Oxford University Press (
          <year>1994</year>
          )
          <fpage>323</fpage>
          -
          <lpage>358</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Barklund</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dell'Acqua</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lanzarone</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          :
          <article-title>Reflection principles in comp</article-title>
          . logic.
          <source>J. Log. Comput</source>
          .
          <volume>10</volume>
          (
          <issue>6</issue>
          ) (
          <year>2000</year>
          )
          <fpage>743</fpage>
          -
          <lpage>786</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Meta-reasoning: a Survey</article-title>
          . In: Comp. Logic:
          <article-title>Logic Pr. and Beyond, Essays in Honour of Robert A. Kowalski, Part II</article-title>
          . Volume
          <volume>2408</volume>
          of LNCS., Springer (
          <year>2002</year>
          )
          <fpage>253</fpage>
          -
          <lpage>288</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Pereira</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Saptawijaya</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <source>Pr. Machine Ethics</source>
          . Volume
          <volume>26</volume>
          of Studies in Applied Philosophy, Epistemology and
          <string-name>
            <given-names>Rational</given-names>
            <surname>Ethics</surname>
          </string-name>
          . Springer (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Rao</surname>
            ,
            <given-names>A.S.</given-names>
          </string-name>
          , Georgeff, M.:
          <article-title>Modeling rational agents within a BDI-architecture</article-title>
          .
          <source>In: Proc. of the Second Int. Conf. on Principles of Knowledge Representation and Reasoning (KR'91)</source>
          , Morgan Kaufmann (
          <year>1991</year>
          )
          <fpage>473</fpage>
          -
          <lpage>484</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Bracciali</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Demetriou</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Endriss</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kakas</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lu</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mancarella</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sadri</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stathis</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Terreni</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toni</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>The KGP model of agency: Computational model and prototype implementation</article-title>
          .
          <source>In: Global Computing: IST/FET Intl. Works., Revised Selected Papers. LNAI 3267</source>
          . Springer-Verlag, Berlin (
          <year>2005</year>
          )
          <fpage>340</fpage>
          -
          <lpage>367</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Kakas</surname>
            ,
            <given-names>A.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mancarella</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sadri</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stathis</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toni</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>The KGP model of agency</article-title>
          .
          <source>In: Proc. ECAI-2004</source>
          . (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Definable naming relations in meta-level systems</article-title>
          . In:
          <article-title>Meta-Programming in Logic</article-title>
          .
          <source>LNCS 649</source>
          , Berlin, Springer (
          <year>1992</year>
          )
          <fpage>89</fpage>
          -
          <lpage>104</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Barklund</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <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>Lanzarone</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          :
          <article-title>Semantical properties of encodings in logic programming</article-title>
          .
          <source>In: Logic Programming - Proc</source>
          .
          <year>1995</year>
          Intl. Symp., Cambridge, Mass., MIT Press (
          <year>1995</year>
          )
          <fpage>288</fpage>
          -
          <lpage>302</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          :
          <article-title>Reflection and semantics in lisp</article-title>
          .
          <source>In: Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages</source>
          .
          <article-title>(</article-title>
          <year>1984</year>
          )
          <fpage>23</fpage>
          -
          <lpage>35</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Dell'Acqua</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Development of an interpreter for a metalogic programming language. M.Sc</article-title>
          . in Computer Science at the Dept. of Computer Science, Univ. degli Studi di Milano,
          <source>Italy</source>
          (
          <year>1989</year>
          )
          <article-title>Supervisor Prof</article-title>
          . Stefania Costantini, in Italian.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lanzarone</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          :
          <article-title>A metalogic programming language</article-title>
          .
          <source>In: Logic Programming</source>
          ,
          <source>Proceedings of the Sixth International Conference</source>
          , MIT Press (
          <year>1989</year>
          )
          <fpage>218</fpage>
          -
          <lpage>233</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Grosof</surname>
            ,
            <given-names>B.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kifer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fodor</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : Rulelog:
          <article-title>Highly expressive semantic rules with scalable deep reasoning</article-title>
          .
          <source>In: Pr. of the Doctoral Consortium</source>
          , Challenge, Industry Track, Tutorials and Posters @ RuleML+
          <article-title>RR 2017 hosted by RuleML+RR 2017</article-title>
          .
          <article-title>Volume 1875 of CEUR Workshop Pr</article-title>
          .,
          <source>CEUR-WS.org</source>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Lloyd</surname>
            ,
            <given-names>J.W.</given-names>
          </string-name>
          :
          <article-title>Foundations of Logic Programming</article-title>
          ,
          <source>Second Edition</source>
          . Springer, Berlin (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lanzarone</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          :
          <article-title>A metalogic programming approach: language, semantics and applications</article-title>
          .
          <source>J. Exp. Theor. Artif. Intell</source>
          .
          <volume>6</volume>
          (
          <issue>3</issue>
          ) (
          <year>1994</year>
          )
          <fpage>239</fpage>
          -
          <lpage>287</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lanzarone</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          :
          <article-title>Metalevel negation and non-monotonic reasoning</article-title>
          .
          <source>Meth. of Logic in CS 1(1)</source>
          (
          <year>1994</year>
          )
          <fpage>111</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Dix</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A classification theory of semantics of normal logic programs: I. Strong properties</article-title>
          .
          <source>Fundam. Inform</source>
          .
          <volume>22</volume>
          (
          <issue>3</issue>
          ) (
          <year>1995</year>
          )
          <fpage>227</fpage>
          -
          <lpage>255</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Rao</surname>
            ,
            <given-names>A.S.</given-names>
          </string-name>
          : Agentspeak(l):
          <article-title>BDI agents speak out in a logical computable language</article-title>
          .
          <source>In: Agents Breaking Away, 7th European Works. on Modelling Autonomous Agents in a Multi-Agent World, Proceedings. Volume 1038 of LNCS</source>
          ., Springer (
          <year>1996</year>
          )
          <fpage>42</fpage>
          -
          <lpage>55</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Hindriks</surname>
            ,
            <given-names>K.V.</given-names>
          </string-name>
          :
          <article-title>Programming rational agents in goal</article-title>
          .
          <source>In: Multi-Agent Programming</source>
          .
          <source>Springer US</source>
          (
          <year>2009</year>
          )
          <fpage>119</fpage>
          -
          <lpage>157</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Dastani</surname>
          </string-name>
          , M.,
          <string-name>
            <surname>van Riemsdijk</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>B</article-title>
          ., Meyer,
          <string-name>
            <surname>J.J.C.</surname>
          </string-name>
          :
          <article-title>Pr. multi-agent systems in 3APL</article-title>
          .
          <source>In: Multi-Agent Programming: Languages, Platforms and Applications</source>
          . Volume
          <volume>15</volume>
          of
          <string-name>
            <surname>Multiagent</surname>
            <given-names>Systems</given-names>
          </string-name>
          ,
          <source>Artificial Societies, and Simulated Organizations</source>
          . Springer (
          <year>2005</year>
          )
          <fpage>39</fpage>
          -
          <lpage>67</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <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>
          . In Alferes,
          <string-name>
            <given-names>J.J.</given-names>
            ,
            <surname>Leite</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.A</surname>
          </string-name>
          ., eds.
          <source>: Logics in Artificial Intelligence, 9th European Conference, JELIA</source>
          <year>2004</year>
          ,
          <article-title>Proceedings</article-title>
          . Volume
          <volume>3229</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2004</year>
          )
          <fpage>685</fpage>
          -
          <lpage>688</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Francalanza</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aceto</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Achilleos</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Attard</surname>
            ,
            <given-names>D.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cassar</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Monica</surname>
            ,
            <given-names>D.D.</given-names>
          </string-name>
          ,
          <article-title>Ingo´ lfsd o´ttir, A.: A foundation for runtime monitoring</article-title>
          .
          <source>In: Runtime Verification - 17th International Conference, RV</source>
          <year>2017</year>
          ,
          <article-title>Proceedings</article-title>
          . (
          <year>2017</year>
          )
          <fpage>8</fpage>
          -
          <lpage>29</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <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>
          <article-title>A multi-layer framework for evolving and learning agents</article-title>
          . In M. T.
          <string-name>
            <surname>Cox</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          .R., ed.
          <source>: Proc. of Metareasoning: Thinking about thinking Works. at AAAI</source>
          <year>2008</year>
          , Chicago, USA. (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Self-checking logical agents</article-title>
          . In Osorio,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Zepeda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Olmos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Carballido</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.L.</surname>
          </string-name>
          , Ram´ırez, R.C.M., eds.
          <source>: Proceedings of the Eighth Latin American Workshop on Logic / Languages, Algorithms and New Methods of Reasoning 2012. Volume 911 of CEUR Workshop Proceedings., CEUR-WS.org</source>
          (
          <year>2012</year>
          )
          <fpage>3</fpage>
          -
          <lpage>30</lpage>
          Extended Abstract in
          <source>Proceedings of AAMAS2013.</source>
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gasperis</surname>
          </string-name>
          , G.D.:
          <article-title>Runtime self-checking via temporal (meta-)axioms for assurance of logical agent systems</article-title>
          .
          <source>In: Proc. of the 29th Italian Conf. on Comp. Logic CILC 2014</source>
          .
          <article-title>Volume 1195 of CEUR Works</article-title>
          .
          <source>Proc., CEUR-WS.org</source>
          (
          <year>2014</year>
          )
          <fpage>241</fpage>
          -
          <lpage>255</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>Ben-Ari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manna</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pnueli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The temporal logic of branching time</article-title>
          .
          <source>Acta Informatica</source>
          <volume>20</volume>
          (
          <year>1983</year>
          )
          <fpage>207</fpage>
          -
          <lpage>226</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <surname>Emerson</surname>
            ,
            <given-names>E.A.</given-names>
          </string-name>
          :
          <article-title>Temporal and modal logic</article-title>
          . In van Leeuwen, J., ed.:
          <source>Handbook of Theoretical Comp. Sc.</source>
          , vol. B. MIT Press (
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <surname>Lichtenstein</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pnueli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zuch</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>The glory of the past</article-title>
          .
          <source>In: Proc. Conf. on Logics of Programs. LNCS 193</source>
          , Springer Verlag (
          <year>1985</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <surname>Cassar</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Francalanza</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Attard</surname>
            ,
            <given-names>D.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aceto</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <article-title>Ingo´lfsdo´ttir, A.: A suite of monitoring tools for erlang</article-title>
          . In: RV-CuBES
          <year>2017</year>
          . An International Workshop on Competitions, Usability, Benchmarks, Evaluation, and
          <article-title>Standardisation for Runtime Verification Tools</article-title>
          . (
          <year>2017</year>
          )
          <fpage>41</fpage>
          -
          <lpage>47</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39.
          <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>About declarative semantics of logic-based agent languages</article-title>
          . In Baldoni,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Endriss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            ,
            <surname>Omicini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Torroni</surname>
          </string-name>
          , P., eds.: Declarative Agent Languages and
          <string-name>
            <surname>Technologies</surname>
            <given-names>III</given-names>
          </string-name>
          , Third International Workshop, DALT 2005,
          <article-title>Selected</article-title>
          and
          <string-name>
            <given-names>Revised</given-names>
            <surname>Papers</surname>
          </string-name>
          . Volume
          <volume>3904</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2005</year>
          )
          <fpage>106</fpage>
          -
          <lpage>123</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40.
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Answer set modules for logical agents</article-title>
          .
          <source>In: Datalog Reloaded: First Intl. Works., Datalog 2010. Volume 6702 of LNCS</source>
          . Springer (
          <year>2011</year>
          )
          <article-title>Revised selected papers</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          41.
          <string-name>
            <surname>Baral</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Knowledge representation, reasoning and declarative problem solving</article-title>
          . Cambridge University Press (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          42.
          <string-name>
            <surname>Leone</surname>
          </string-name>
          , N.:
          <article-title>Logic programming and nonmonotonic reasoning: From theory to systems and applications</article-title>
          . In Baral,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Brewka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Schlipf</surname>
          </string-name>
          , J., eds.:
          <source>Logic Programming and Nonmonotonic Reasoning</source>
          , 9th International Conference,
          <string-name>
            <surname>LPNMR</surname>
          </string-name>
          <year>2007</year>
          .
          <article-title>(</article-title>
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          43. Truszczyn´ski, M.:
          <article-title>Logic programming for knowledge representation</article-title>
          . In Dahl, V., Niemela¨, I., eds.: Logic Programming, 23rd International Conference,
          <string-name>
            <surname>ICLP</surname>
          </string-name>
          <year>2007</year>
          .
          <article-title>(</article-title>
          <year>2007</year>
          )
          <fpage>76</fpage>
          -
          <lpage>88</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          44.
          <string-name>
            <surname>Kowalski</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sergot</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A logic-based calculus of events</article-title>
          .
          <source>New Generation Computing</source>
          <volume>4</volume>
          (
          <year>1986</year>
          )
          <fpage>67</fpage>
          -
          <lpage>95</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          45.
          <string-name>
            <surname>Berreby</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bourgne</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ganascia</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A declarative modular framework for representing and applying ethical principles</article-title>
          . In Larson,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Winikoff</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Das</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Durfee</surname>
          </string-name>
          , E.H., eds.
          <source>: Proceedings of the 16th Conference on Autonomous Agents and MultiAgent Systems, AAMAS</source>
          <year>2017</year>
          , ACM (
          <year>2017</year>
          )
          <fpage>96</fpage>
          -
          <lpage>104</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          46.
          <string-name>
            <surname>Tufis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ganascia</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A normative extension for the BDI ahent model</article-title>
          .
          <source>In: Proceedings of the 17th INternational Conference on Climbing and Walking Robots and the Support Technologies for Mobile Machines</source>
          . (
          <year>2014</year>
          )
          <fpage>691</fpage>
          -
          <lpage>702</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          47. A˚qvist, L.:
          <article-title>Deontic logic</article-title>
          .
          <source>In: Handbook of philosophical logic</source>
          . Springer (
          <year>1984</year>
          )
          <fpage>605</fpage>
          -
          <lpage>714</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          48.
          <string-name>
            <surname>Hilpinen</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McNamara</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Deontic logic: a historical survey and introduction. Handbook of deontic logic and normative systems</article-title>
          .
          <source>College Publications</source>
          <volume>80</volume>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          49.
          <string-name>
            <surname>Broersen</surname>
          </string-name>
          , J.M.,
          <string-name>
            <surname>van der Torre</surname>
            ,
            <given-names>L.W.N.</given-names>
          </string-name>
          :
          <article-title>Ten problems of deontic logic and normative reasoning in computer science</article-title>
          .
          <source>In: ESSLLI</source>
          . Volume
          <volume>7388</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2011</year>
          )
          <fpage>55</fpage>
          -
          <lpage>88</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          50.
          <string-name>
            <surname>Horty</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          :
          <article-title>Agency and deontic logic</article-title>
          . Oxford University Press (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          51.
          <string-name>
            <surname>Murakami</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Utilitarian deontic logic</article-title>
          .
          <source>In: Advances in Modal Logic</source>
          ,
          <article-title>King's College Publications (</article-title>
          <year>2004</year>
          )
          <fpage>211</fpage>
          -
          <lpage>230</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref52">
        <mixed-citation>
          52.
          <string-name>
            <surname>Bringsjord</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arkoudas</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bello</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Toward a general logicist methodology for engineering ethically correct robots</article-title>
          .
          <source>IEEE Intelligent Systems</source>
          <volume>21</volume>
          (
          <issue>4</issue>
          ) (
          <year>2006</year>
          )
          <fpage>38</fpage>
          -
          <lpage>44</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref53">
        <mixed-citation>
          53.
          <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>
          . In Flesca, S.,
          <string-name>
            <surname>Greco</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leone</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ianni</surname>
          </string-name>
          , G., eds.
          <source>: Logics in Artificial Intelligence</source>
          , European Conference,
          <string-name>
            <surname>JELIA</surname>
          </string-name>
          <year>2002</year>
          ,
          <article-title>Proceedings</article-title>
          . Volume
          <volume>2424</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref54">
        <mixed-citation>
          54.
          <string-name>
            <surname>De Gasperis</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Costantini</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nazzicone</surname>
          </string-name>
          , G.:
          <article-title>Dali multi agent systems framework</article-title>
          , doi
          <volume>10</volume>
          .5281/zenodo.11042.
          <string-name>
            <surname>DALI GitHub Software Repository</surname>
          </string-name>
          (
          <year>July 2014</year>
          ) DALI: http:// github.com/AAAI-DISIM-UnivAQ/DALI.
        </mixed-citation>
      </ref>
      <ref id="ref55">
        <mixed-citation>
          55.
          <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>Pitoni</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salutari</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Dali: A multi agent system framework for the web, cognitive robotic and complex event processing</article-title>
          .
          <source>In: Proceedings of the 32nd Italian Conference on Computational Logic. Volume 1949 of CEUR Workshop Proceedings., CEUR-WS.org</source>
          (
          <year>2017</year>
          )
          <fpage>286</fpage>
          -
          <lpage>300</lpage>
          http://ceur-ws.
          <source>org/</source>
          Vol-1949/CILCpaper05.pdf.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>