<!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>Labelled Variables in Logic Programming: Foundations</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Roberta Calegari</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Enrico Denti</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Agostino Dovier</string-name>
          <email>agostino.dovier@uniud.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrea Omicini</string-name>
          <email>andrea.omicinig@unibo.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Informatica, Scienza e Ingegneria (DISI) Alma Mater Studiorum</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dipartimento di Scienze Matematiche, Informatiche e Fisiche Universita degli Studi di Udine</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Universita di Bologna</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We de ne a new notion of truth for logic programs extended with labelled variables, interpreted in non-Herbrand domains. There, usual terms maintain their Herbrand interpretations, whereas diverse domain-speci c computational models depending on the local situation of the computing device can be expressed via suitably-tailored labelled models. After some introductory examples, we de ne the theoretical model for labelled variables in logic programming (LVLP). Then, we present both the xpoint and the operational semantics, and discuss their correctness and completeness, as well as their equivalence.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        To face the challenges of today's pervasive systems { inherently complex,
distributed, situated, and intelligent [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] { suitable models and technologies are
required to e ectively support distributed situated intelligence. Once it is extended
to capture the many di erent domains where situated intelligence is required,
logic programming (LP) has the potential to work at the core of such models and
technologies based on its declarative representation and inferential capabilities.
      </p>
      <p>
        Along this line, in this paper we present a logic programming extension based
on labelled variables [
        <xref ref-type="bibr" rid="ref10 ref8">8, 10</xref>
        ], the Labelled Variables model in Logic Programming
(LVLP). There, diverse computational models can be tailored to the local needs
of situated components by means of suitable labelled variables systems, and
work together against the common LP background. In fact, whereas logic-based
approaches are natural candidates for intelligent systems, a pure LP approach
seems not to t well the needs of situated systems. Instead, a hybrid approach
makes it possible in principle to exploit LP for what it is most suited for {
symbolic computation {, while possibly delegating other aspects { such as situated
computations { to other languages, or to other levels of computation.
      </p>
      <p>
        Most other works in this area { such as [
        <xref ref-type="bibr" rid="ref1 ref16 ref17 ref2 ref9">1, 2, 9, 16, 17</xref>
        ] { primarily focus onto
speci c scenarios and sorts of systems|e.g. modal logic, deductive systems, fuzzy
systems, etc. Instead, our model aims at providing a general-purpose framework
and mechanism which, while seamlessly rooted in the LP landscape, could t
several relevant context-speci c systems.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Context, Motivation &amp; Examples</title>
      <p>
        In nowadays complex and pervasive scenario, where software engineering,
programming languages, and distributed arti cial intelligence meet, logic-based
languages have the potential to play a prominent role both as intelligence providers
and technology integrators [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Typical LP features { such as programs as logic
theories, computation as deduction, and programming with relations and
inference { make logic languages a natural choice for building intelligent components.
Nevertheless, diverse computational models tailored to the local needs of situated
systems can be required in order to capture di erent paradigms and languages
of the distributed environment.
      </p>
      <p>Along this line, we introduce the notion of label to tag logic variables, and
the associated computational model for their elaboration, which proceeds along
with the resolution procedure without being strictly subject to the standard LP
rules. Generally speaking, labels provide a customisable computational model,
which can be charged of the domain-speci c { and possibly not declarative {
part of the computation, and bound to the standard LP computation.</p>
      <p>
        Before formally de ning (Section 3) the Labelled Variables model in Logic
Programming (LVLP), we informally discuss some examples to give the avour
of our approach. For instance, in a WordNet-like scenario [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], representing a
network of semantically-related words, labels (unlike standard LP) o er a way
to split the representation onto two di erent levels, each one with its own
computational model: logic variables stand for individual objects in the domain, while
labels can be exploited to represent the network of related words.
      </p>
      <p>Following our prototype syntax, X^label is a labelled variable denoting a
logic variable X labelled with label |where label is a term in the set of
admissible labels de ned by the user. In a LVLP clause, the list of the labelled variables
precedes the remaining part of the body. Given the following LVLP program:
wordnet_fact ([ ` dog ',` domestic dog ',` canis ',` pet ',` mammal ',` vertebrate ']).
wordnet_fact ([ ` cat ', ` domestic cat ', `pet ', ` mammal ', ` vertebrate ']).
wordnet_fact ([ ` fish ', ` aquatic vertebrates ', ` vertebrate ']).
wordnet_fact ([ ` frog ', `toad ', ` anauran ', ` batrachian ']).
animal (X) :- X^[ ` pet '], X = ` minnie '.
animal (X) :- X^[ ` fish '], X = `nemo '.
animal (X) :- X^[ ` cat '], X = ` vmolly '.
animal (X) :- X^[ ` dog '], X = ` frida '.</p>
      <p>animal (X) :- X^[ ` frog '], X = `cra '.
the following query, looking for a pet animal, generates four solutions:
?- X^[ ` pet '], animal (X ).
yes . X / ` minnie '
[X^[ ` dog ', ` domestic dog ', ` canis ', `pet ', ` mammal ', ` vertebrate ']] ;
yes . X / ` minnie '
[X^[ ` cat ', ` domestic cat ', `pet ', ` mammal ', ` vertebrate ']] ;
yes . X / ` molly '
[X^[ ` cat ', ` domestic cat ', `pet ', ` mammal ', ` vertebrate ']] ;
yes . X / ` frida '
[X^[ ` dog ', ` domestic dog ', ` canis ', `pet ', ` mammal ', ` vertebrate ']]
Looking instead for a less speci c vertebrate produces ve solutions:
?- X ^[ vertebrate ], animal (X ).
yes . X = ` minnie '
X^[ ` dog ', ` domestic dog ', ` canis ', `pet ', ` mammal ', ` vertebrate '] ;
yes . X = ` minnie '
X^[ ` cat ', ` domestic cat ', `pet ', ` mammal ', ` vertebrate '] ;
yes . X = ` molly '
X^[ ` cat ', ` domestic cat ', `pet ', ` mammal ', ` vertebrate '] ;
yes . X = ` frida '
X^[ ` dog ', ` domestic dog ', ` canis ', `pet ', ` mammal ', ` vertebrate '] ;
yes . X = `nemo '
X^[ ` fish ',` aquatic vertebrates ', ` vertebrate ']
A relevant aspect of LVLP is that labels are not subject to the single-assignment
assumption: each time two labelled variables unify, their labels are processed and
combined according to a user-de ned function that embeds the desired
computational model, and the resulting label is associated to the uni ed variable. Thus,
the LP model per se is left untouched, whereas diverse computational models
can be de ned next to it, possibly in uencing the result of a logic computation
by restricting the set of admissible solutions according to each speci c domain.</p>
      <p>For instance, let us consider the case in which the knowledge base consists
of a collection of ingredients, each featuring properties such as calories count,
amount of proteins, fat, etc. There, labels could be used to describe the weight,
calories and category of the food, as in the program below:
meat (M) :- M ^[100 g , 156 cal , [ alternativeMeats ]] , M=[ ` tofu meatballs '].
meat (M) :- M ^[100 g , 145 cal , [ curedMeats ]] , M=[ ` Parma ham '].
meat (M) :- M ^[100 g , 210 cal , [ curedMeats ]] , M=[ ` ham '].
meat (M) :- M ^[200 g , 220 cal , [ whiteMeats ]] , M=[ ` chicken '].
vegetable (V) :- V ^[100 g , 35 cal , [ vegetables ]] , V=[ ` carrots '].
vegetable (V) :- V ^[ 50g , 10 cal , [ vegetables ]] , V=[ ` salad '].
bread (B) :- B ^[100 g , 265 cal , [ whiteBread ]] , B=[ ` bread with poolish '].
bread (B) :- B ^[100 g , 240 cal , [ integralBread ]] , B=[ ` whole grain bread '].
recipe (R) :- R^ , meat ( Meat ), vegetable ( Vegetable ), R =[ Meat , Vegetable ].
recipe (R) :- R^ , Meat ^[ any , any , [ curedMeats ]] , bread ( Bread ), meat ( Meat ),
vegetable ( Vegetable ), R =[ Bread , Meat , Vegetable ].</p>
      <p>Labels (with</p>
      <p>representing the any label) make it possible, for instance, to ask
for a meal with an upper bound of calories, with a given tolerance. Assuming,
e.g., that the label-combining function accounts for a 10% tolerance, a possible
query asking for a recipe with 200( 20) calories could be the following:
?- R ^[ any , 200 cal , any ], recipe (R ).
yes . R / [` tofu meatballs ', ` carrots ']
R ^[200 g , 191 cal , [ alternativeMeats , vegetables ]] ;
yes . R / [` tofu meatballs ', ` salad ']
R ^[200 g , 166 cal , [ alternativeMeats , vegetables ]] ;
yes . R / [` Parma ham ', ` carrots ']
R ^[200 g , 180 cal , [ curedMeats , vegetables ]] ;
yes . R / [` ham ', ` salad ']
R ^[150 g , 220 cal , [ curedMeats , vegetables ]]
Comparing the labels of R in the query and in the answers should make it clear
how avoiding single assignment in the labels (not in the logic variable) makes
the language more expressive, without harming the logic computation.</p>
      <p>Multiple matching criteria could also be applied simultaneously|for
instance, combining calories with a speci c food category:
?- R ^[ any , 180 cal , [ alternativeMeats ]] , recipe (R ).
yes . R / [` tofu meatballs ',` carrots ']
R ^[200 g , 191 cal , [ alternativeMeats , vegetables ]] ;
yes . R / [` tofu meatballs ',` salad ']</p>
      <p>
        R ^[150 g , 166 cal , [ alternativeMeats , vegetables ]]
All \standard" domains for logic languages (like the CLP ones [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]) are also
supported. For instance, labels could be used to represent the integer interval
over which the logic variable values span: accordingly, the label syntax could take
the form X^[min,max ], and a simple interval program could look as follows:
The uni cation of two variables labelled with an interval would then result in a
variable labelled with the intersection of the intervals. Accordingly, the following
simple query generates two solutions:
interval (X ): - X ^[
        <xref ref-type="bibr" rid="ref4">-1 ,4</xref>
        ].
interval (X ): - X ^[
        <xref ref-type="bibr" rid="ref10 ref6">6 ,10</xref>
        ].
?- X ^[
        <xref ref-type="bibr" rid="ref2 ref7">2 ,7</xref>
        ] , interval (X ).
yes .
      </p>
      <p>
        X ^[
        <xref ref-type="bibr" rid="ref2 ref4">2 ,4</xref>
        ] ;
yes .
      </p>
      <p>
        X ^[
        <xref ref-type="bibr" rid="ref6 ref7">6 ,7</xref>
        ]
neighbourhood (X ): - X ^[
        <xref ref-type="bibr" rid="ref4">-1 ,4</xref>
        ] , X =3.
neighbourhood (X ): - X ^[
        <xref ref-type="bibr" rid="ref10 ref6">6 ,10</xref>
        ] , X =8.
?- X ^[
        <xref ref-type="bibr" rid="ref2 ref7">2 ,7</xref>
        ] , neighbourhood (X ).
yes . X / 3
      </p>
      <p>
        X ^[
        <xref ref-type="bibr" rid="ref2 ref4">2 ,4</xref>
        ]
In addition, the expressiveness of LVLP makes it possible to easily move from
the domain of integer intervals to more complex domains, like for instance the
domain of integers with a neighbourhood, as in the following program:
There, constant values unify with labelled variables if they belong to the interval
in the label. Accordingly, the following query would result in just one solution:
given that the second clause would set X out of the interval in the query.
3
3.1
      </p>
    </sec>
    <sec id="sec-3">
      <title>The Labelled Variables Model in Logic Programming</title>
      <sec id="sec-3-1">
        <title>The model</title>
        <p>Let C be the set of constants, with c1; c2 2 C being two generic constants.
Let V be the set of variables, with v1; v2 2 V being two generic variables. Let
F 2 H be the set of function symbols, with f1; f2 2 F being two generic
function symbols. f 2 F is assigned to an arity ar (f ) &gt; 0 that states the
number of arguments. Let T H be the set of terms, with t1; t2 2 T being
two generic terms. Terms can be either simple (constant, variable) or compound
(when containing a f 2 F; ar (f ) &gt; 0). Let H be the Herbrand universe and
HB be the Herbrand base.</p>
        <p>A Labelled Variables Model in Logic Programming is de ned as follows.
{ A set B = f 1; : : : ; ng of basic labels that are the basic entities of the
domain of labels.3
{ A set L }(B) of labels, where each ` 2 L is a subset of B, namely a set
of basic labels (e.g., ` = f 1; 3; 6g). A \singleton" label f g where 2 B
will be identi ed simply by in the following for the sake of simplicity.
{ A set of variables V , where v 2 V is the generic variable.
{ A labelling which is a set of pairs hvi; `ii, associating the label `i to the
variable vi. A \singleton" labelling fhv; `ig { a labelled variable { will be
identi ed simply by hv; `i in the following for the sake of simplicity.
{ A (label-)combining function fL, synthesising a new label from two given
ones
fL : L</p>
        <p>L
! L
We require that fL be associative, commutative, and idempotent (brie y,
ACI), namely that fL(`1; fL(`2; `3)) = fL(fL(`1; `2); `3); fL(`1; `2) =
fL(`2; `1); fL(`; `) = `. As discussed later, in some cases (e.g.,
incompatibility), the output of fL can be the empty set ; which is a signal for \wrong".
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Programs, clauses, uni cation</title>
        <p>In a labelled variables logic program a rule is represented as</p>
        <sec id="sec-3-2-1">
          <title>Head</title>
        </sec>
        <sec id="sec-3-2-2">
          <title>Labellings; Body :</title>
          <p>where Head is an atomic formula, Labellings is the list of Variable/Label
associations in the clause and Body is a list of atomic formulas. This can be read
declaratively as Head if Body given Labellings.</p>
          <p>The uni cation of two labelled variables is represented by the extended tuple
(true=false, , `), where true=false represents the existence of an answer,
represents the most general substitution, and ` represents the new label associated
to the uni ed variables de ned by the (label-)combining function fL.</p>
          <p>More generally, considering all the variables of the goal, the solution is
represented by the extended tuple (true=false, , A), where true=false represents the
existence of an answer, represents the most general substitutions for all such
variables, and A represents the corresponding label-variable associations.
3 In this paper we require that B is nite and it is not a real restriction for the
applications we discuss. An in nite set of basic labels can be considered anyway, as
soon as we can guarantee a sort of solution compactness of the extended uni cation
algorithms involved.</p>
          <p>;
=6
d
n ))
a2 :::) lse
if (`</p>
          <p>L
f
)
2
`
;
1
`
(
; L</p>
          <p>f
=6 ; e
)
2 2g ls
n
e
h
t
1
e `
C
f n
f e
i h</p>
          <p>t
e
l
b
a
i
r i
a 1
v `</p>
          <p>;
n
a b
t 1 a 1
s c ir v d 1
on a le vh
c v l</p>
          <p>e
2
s
d h
1 t
v
f
i
in g s n ab s2 ,2g ;`1
r 2 in ;` l</p>
          <p>s
u =</p>
          <p>L
f
1
s
n
i g
r 1</p>
          <p>s
u =
cc v2f lea</p>
          <p>s
o
t ; f
o e</p>
          <p>e
u s
sn rt le
eo en
d h
2 t
v
f
i
e
s
l
a
f
m
r
e
t
d
p
m
o
c
n 1
u s
o</p>
          <p>L io
f t
a
c
i
n
U
The tuple (true=false, , A) represents the solution of the labelled variables
program. The implicit assumption is that the LP computation, whose answer is
given by , and of the label computation, whose answer is given by A, can be
read independently from each other from the domain expert's viewpoint.</p>
          <p>This is as to say that, in principle, any computed label-variable association
is \acceptable" in the domain|for instance, if LP computes over numbers and
labels over colors, each number/color association might be equally valid.</p>
          <p>For some application scenarios, however, this might not necessarily be the
case: if the LP and label computations somehow capture di erent views over
the same domain (or two interconnected domains), some label-variable
association could actually be unacceptable from the domain expert's viewpoint|for
instance, in the above example even numbers could not be red, or alike.</p>
          <p>In order to formalise such a notion of acceptability, let us introduce the
compatibility function fC as:
fC : H</p>
          <p>L
! ftrue; falseg
In particular, given a a ground term t 2 H and label ` 2 L :
fC (t; `) =
8&gt;true
&gt;
&gt;
&lt;
there exists at least an element of the domain which
the interpretations of t and ` both refer to the same
entity
&gt;
&gt;
&gt;:false otherwise
Example 1 discusses an application scenario where variables are labelled with
their admissible numeric interval, formalising the fL and fC functions
accordingly.</p>
          <p>Example 1. Let us suppose that the LP variables in a certain
application scenario span over some integer domains and that they are labelled
with their admissible numeric interval. In this case, the combining
function fL, which embeds the scenario-speci c label semantics, is supposed
to intersects intervals: accordingly, fL is de ned so that, given two labels
`1 = f 11; : : : ; 1ng and `2 = f 21; : : : ; 2mg, the resulting label `3 is the
intersection of `1 and `2, as:</p>
          <p>`3 = fL(`1; `2) = fL(f 11; : : : 1ng; f 21; : : : 2mg) =
f( 11 \ 21);
; ( 11 \ 2m); : : : ; ( 1n \ 21);
; ( 1n \ 2m)g
In such a scenario, the LP computation aims to compute numeric values,
while the label computation aims to compute admissible numeric intervals
for the LP variables.</p>
          <p>In principle, the solution tuple (true=false, , A) could describe
situations such as (true; X = 3; h3; [4; 5]i), since the LP computation and the
label computation proceed without interfering with each other. However, if
numeric intervals are interpreted as the boundaries for acceptable values of
LP variables, such label-variable associations could appear to be
inconsistent to the domain expert's eyes. So, a reasonable behaviour for the LVLP
system should allow the domain expert to embed his/her knowledge,
capturing such incompatibility so that the system can reject this solution.</p>
          <p>This is what the compatibility function fC is for: its purpose is to check
whether the ground term t 2 H is compatible with the interval represented
by label ` = [A::B]; ` 2 L. It could be de ned so as to return false for
solutions where the computed LP values do not belong to the numeric
interval computed by the corresponding label computation, thus capturing
the connection among the two universes.</p>
          <p>Summing up, the result of a labelled variables program can be written as:
(true=false ^ fC ( ; A); ; A)
meaning that the truth value potentially computed by the LP computation can
be restricted { i.e., forced to false { by the fC ( ; A). In turn, this is a convenient
shortcut for the conjunction of all fC (t; `) 8(t; `) couples, where ` and t are,
respectively, such that the label-variable association hv; `i 2 A and the
substitution v=t 2 . Of course, in case of independent domains, fC (t; `) is true for any
t and any `.</p>
          <p>Table 1 reports the uni cation rules for two generic terms: to lighten the
notation, unde ned elements in the tuple are omitted|i.e., labels or substitutions
that have no sense in a particular situation.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Semantics</title>
      <p>Labels domains are expected to support tests and operations on labels, in order
to guarantee the basic theoretical results of logic programming, such as the
equivalence of denotational and operational semantics.</p>
      <p>In the following, in Subsection 4.1 we de ne the denotational ( xpoint)
semantics in the context of labels domain (under reasonable requests for fL), while
in Subsection 4.2 we discuss the operational semantics of the model describing
an abstract state machine.
4.1</p>
      <sec id="sec-4-1">
        <title>Fixpoint Semantics</title>
        <p>Let us call X = (H ; L) a labelled variable logic programming domain and let us
de ne the notion of X -interpretation I as a set of pairs of the form
p(t1; : : : ; tn); [`1; : : : ; `n]
where p(t1; : : : ; tn) is a ground atom and `1; : : : ; `n are labels s.t. for i = 1; : : : ; n
the term ti is compatible with the label `i, i.e. fC (ti; `i) = true. Truthness
of fC is based on the LVLP domain X . With a slight abuse of notation, we
write X j= [ht1; `1i; : : : ; htn; `ni] i Vin=1 fC (ti; `i) = true. We also write X j=
(p(t1; : : : ; tn); [`1; : : : ; `n]) if p is a predicate symbol and Vn
i=1 fC (ti; `i) = true.</p>
        <p>We denote as the part of clause body that stores labelling associations.
Without loss of generality we assume that there is exactly one label association
for each variable in the head. We de ne the function feL that in a sense extends
fL and takes as argument a rule
r = h
; b1; : : : ; bn
and n + 1 lists of labels. The rule r is used here to identify multiple
occurrences of the variables. Let us assume the variables in h are x1; : : : ; xm, and
consider one of them, say xi. If xi occurs in h (and hence in ) and in (some of)
b1; : : : ; bn then the corresponding labels `; `1;i; : : : ; `n;i for xi are retrieved from
(if xi does not occur in bj simply we do not consider such contribution). Then
`0i = fL(`; fL(`1;i; : : : ; fL(`n 1;i; `n;i) : : : )) is computed and the pair hxi; `0i is
returned. This is done for all variables x1; : : : ; xm occurring in the head h and
the list [`01; : : : ; `0m] is returned.</p>
        <p>The denotational semantics we are presenting is based on the one-step
consequence functions T P de ned as:</p>
        <p>T P (I) =
h p(et); `e i :
X j=
r = p(xe) xe j b1; : : : ; bn (1)
where r is a fresh renaming of a rule of P;
v is a valuation on H such that v(xe) = et; (2)
Vin=1 9 `ei s.t. hv(bi); `eii 2 I; (3)
(4)
et ^ Vin=1 fC v(bi); `ei ;
`e = feL r; et; `e1;
; `en
(5)
where et = v( xe) = [ht1; `1i; : : : ; htn; `mi] if xe = [hx1; `1i; : : : ; hxm; `mi]. It is
worth noting that the condition Vin=1 fC v(bi); `ei (line 4) is always satis ed
when TP is used \bottom-up" starting from I = ;.</p>
        <p>In the following some examples are discussed. Note that, in the LVLP the
equality operator is represented by =/2 and its behaviour is summarised by
Table 1 (uni cation rules). One label association is possibly null in that might
be the any label, de ned as the neutral element of fL, henceforth represented
as in the following. As a consequence, any standard (i.e. non labelled) LP
variable is interpreted as labelled with . For such reasons, the =/2 in LVLP can
be de ned as:</p>
        <p>
          X = Y : [&lt; X; &gt;; &lt; Y; &gt;]; X =LP Y
where =LP is the standard =/2 LP operator.
Example 2. Now let us consider the labelled variables program P:
r (0). r (1). r (2). r (3). r (4).
r (5). r (6). r (7). r (8). r (9).
q(Y ,Z) :- Y ^[
          <xref ref-type="bibr" rid="ref2 ref4">2 ,4</xref>
          ] , Z ^[
          <xref ref-type="bibr" rid="ref3 ref8">3 ,8</xref>
          ] , Y=Z , r(Y), r(Z ).
        </p>
        <p>
          p(X ,Y ,Z) :- X ^[
          <xref ref-type="bibr" rid="ref3">0 ,3</xref>
          ] , Y^ , Z^ , X=Y , q(Y ,Z ).
        </p>
        <p>Let us consider the interpretation I0 = ;. Then:</p>
        <p>hr(0); [ ]i; : : : ; hr(9)[ ]i
Let us apply TP to I1:
and now TP to I2:</p>
        <p>I2 = T P (I1) = I1 [ hq(3; 3); [[3; 4]; [3; 4]]i; hq(4; 4); [[3; 4]; [3; 4]]i</p>
        <p>
          I3 = T P (I2) = I2 [ hp(3; 3; 3); [[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]; [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]; [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]]i
which is also the least xpoint of TP .
        </p>
        <p>The above example shows the similarities between labelled logic programming
on a domain X (brie y, LVLP(X )) and CLP (X ). It would be su cient, e.g., to
replace [hY; [2; 4]i; hZ; [3; 8]i] with Y in 2::4; Z in 3::8. However, this is not true for
other domains of labels, as in Example 3.</p>
        <p>
          Example 3. In the WordNet case presented in Section 2, labels are words
describing the variable object. The combination of two di erent labels
(combining function) returns a new label only if the two labels have a lexical
relation, fail otherwise. The decision is based on the WordNet network [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
        </p>
        <p>WordNet is a large lexical database of English. Nouns, verbs, adjectives
and adverbs are grouped into sets of cognitive synonyms (synsets). Synsets
are interlinked by means of conceptual-semantic and lexical relations. The
resulting network of meaningfully related words and concepts can be
navigated. WordNet super cially resembles a thesaurus, in that it groups words
together based on their meanings.</p>
        <p>Here, the knowledge base locally stores some WordNet groups (a
dynamic consultation to WordNet could be implemented, instead). Let be
program P represented by the following facts|where wordnet fact is a
simulated wordnet synset, while animal(Name) is a predicate describing an
animal's name:
wordnet_fact ([ ` dog ',` domestic dog ',` canis ',` pet ',` mammal ']).
wordnet_fact ([ ` cat ', ` domestic cat ', `pet ', ` mammal ']).
wordnet_fact ([ ` fish ',` aquatic vertebrates ', ` vertebrate ']).
wordnet_fact ([ ` frog ',` toad ', ` anauran ', ` batrachian ']).
pet_name (` minnie ').
fish_name (` nemo ').
animal (X) :- X^[ ` pet '], pet_name (X ).
animal (X) :- X^[ ` fish '], fish_name (X ).
The combining function fL is supposed to nd and return a
wordnet synset compatible with both labels. For instance, if `1 =
pet and `2 = `domestic cat0, the new generated label `3 will be
[`cat0; `domestic cat0; `pet0; `mammal0]. The compatibility function fC in
this scenario is always true, since any animal name is considered compatible
with any animal group.</p>
        <p>In order to show the construction of TP , let us consider the interpretation
I0 = ;. Then, the subsequent step I1 can be computed as:</p>
        <p>hpet name(`minnie0); [ ]i; h sh name(`nemo0); [ ]i
Now, let us apply TP to I1 to compute I2:</p>
        <p>I2 = T P (I1) = I1 [
hanimal(`minnie0); [[`dog0; `domestic dog0; `canis0; `pet0; `mammal0]]i;
hanimal(`minnie0); [[`cat0; `domestic cat0; `pet0; `mammal0]]i;
hanimal(`nemo0); [[` sh0; `aquatic vertebrates0; `vertebrate0]]i
which is also the least xpoint of TP .</p>
        <p>In order to guarantee soundness and completeness of TP in the following we
demonstrate that it is a monotonic and continuous mapping on partial orders.
De nition 1. An interpretation I is a model of a program P if for each rule
r = p(xe) xe j b1; : : : ; bn of P and each valuation v of the variables in r on H
(let us denote with et = v(xe)) it holds that
{ if for i = 1; : : : ; n there are hv(bi); `eii 2 I
{ such that X j= fC (v(bi); `ei) and
{ X j= et, then it must be
{ p(et); feL r; et; `e1; ; `en 2 I.</p>
        <p>Proposition 1. Given a LVLP program P and a LVLP domain X , TP is (1)
monotonic and (2) continuos and (3) TP (I) I i I is a model of P .
Proof. (1) Let I and J be two interpretations such that I J . We need to prove
that TP (I) TP (J ). If a = h p(et); `e i 2 TP (I) it means that there is a clause
r 2 P , a valuation v on H for the variables in r and n elements hv(bi); `eii 2 I
satisfying the remaining conditions. Since I J they belong to J as well. Then
a 2 TP (J ).
(2) Let us consider a chain of interpretations I0 I1 : : : . We need to prove
that: TP Sk1=0 Ik = Sk1=0 TP (Ik).
( ) Let a = h p(et); `e i 2 TP Si1=0 Ik . This means that there is a clause r 2 P ,
a valuation v on H for the variables in r and n elements hv(bi); `eii 2 Sk1=0 Ik
satisfying the remaining conditions. This means that there are j1; : : : ; jn such
that for i = 1; : : : ; n hv(bi); `eii 2 Iji . Let j = maxfj1; : : : ; jng, since I0 I1</p>
        <p>Ij we have that all hv(bi); `eii 2 Ij . Thus a 2 TP (Ij+1) and henceforth
a 2 S1</p>
        <p>k=0 TP (Ik).
( ) Let a = h p(et); `e i 2 Sk1=0 TP (Ik). This means that there is j such that
a 2 TP (Ij ). Then, due to monotonicity, a 2 TP Sk1=0 Ik .
(3) Let TP (I) I and let r = p(xe) xe ; b1; : : : ; bn be a generic clause of P ,
and v be a generic valuation on H of all the variables of r. If we assume that
hv(bi); `eii 2 I for i = 1; : : : ; n, and that X j= fC (v(bi); `ei) and X j= et, then
the pair h = v(p(xe); `e) 2 TP (I) by de nition of TP |and `e is the same of the
de nition of model. Since TP (I) I then h 2 I, therefore (since r and v are
chosen in general) I is a model of P .</p>
        <p>On the other hand, if I is a model of P we prove that TP (I) I. Let
a = h p(et); `e i 2 TP (I). This means that there is a rule r = p(xe) xe ; b1; : : : ; bn
of P and a valuation v of the variables in r on H such that for i = 1; : : : ; n
there are v(bi); `ei 2 I and X j= ; `en ). such that
t and `e = feL r; et; `e1;
e
X j= fC (v(bi); `ei). Since I is a model, and X j= fC (v(bi); `ei) then a 2 I.
tu
Let be TP " ! de ned as usual: TP " ! = SfTP " k : k
0g. Then:
Corollary 1. There is a notion of least model which is TP " !.
Proof. Immediate from Knaster-Tarksi theorem, Kleene's xpoint Theorem, and
Proposition 1.
tu
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Operational Semantics</title>
        <p>
          In this section we de ne the operational interpretation of labels: our approach is
inspired by the methodology introduced for Constraint Logic Programming [
          <xref ref-type="bibr" rid="ref12 ref13 ref4">4,
12, 13</xref>
          ], namely we de ne the LVLP abstract state machine based on that
suggested by Colmerauer for Prolog III. It resembles a push-down automaton [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]
whose stack is updated whenever a program rule is applied. We de ne a
labelledmachine state as the triplet:
        </p>
        <p>= ht0 t1:::tn; W; i
where
{ t0 t1:::tn is the list of terms (goals)
{ W is the current list of variables bindings
{ is the set of the current labelling associations on W .</p>
        <p>An inference step for the machine consists of making a transition from the state
to a state 0 by applying a program rule. Considering the rule (m 0)
s0</p>
        <p>0; s1; s2; : : : ; sm
where 0 is the set of the labellings of the rule, if the following conditions hold:
{ 9 mgu
such that (t0) = (s0) and
{ fe L( ; ( 0)) 6= ;
the rule is applied (fail otherwise). The function fe L is a generalisation of the
combining function fL in that takes as arguments two vectors of labelling
associations. If xi occurs both in and ( 0) with labels ` and `0, `00 = fL(`; `0) is
rst calculated, then, if fC ( (xi); `00) = true the labelling association hxi; `00i is
returned. The new state becomes:
0 = h (s1; : : : ; sm; t1; : : : ; tn); W 0 = W
; 00 = fe L( ; ( 0))i
where applies the classical composition of substitutions.</p>
        <p>A solution is found when a nal state is reached. The nal state has the form:
f = ( ; Wf ; f )
where is the empty sequence, Wf is the nal list of variables and bindings,
f is the corresponding labelling associations set. A sequence of applications of
inference steps is said a derivation. A derivation is successful if it ends in a nal
state, failing if it ends in a non- nal state where no inference step is possible.
Proposition 2. Let p(xe) be an atom, v a valuation on H such that v(xe) =
et where et are ground terms, and `e a list of labels. Then there is a successful
derivation for hp(et); v; hv(xe); `eii i hp(et); `ei 2 TP " !.</p>
        <p>Proof (In the following we provide a proof sketch, deferring the full proof to a
future paper for the sake of brevity).
(!). We prove the proposition by induction on the length k of the derivation.
If k = 0 the result holds trivially.</p>
        <p>For the inductive case, let us suppose that there is a successful derivation
for hp(et); v; hv(xe); `eii of k + 1 steps. Let us focus on the rst step: there is a
rule r: s0 0; s1; s2; : : : ; sm such that (p(et)) = (s0) leading to the new
state = h (s1; s2; : : : ; sm); v ; 00 = fe L( ; ( 0)i, where fC ( 00) = true, that
admits a successful derivation of k steps.</p>
        <p>Consider now the states 1; : : : ; m de ned as i = h (si); v ; 0i0i where
0i0 is the restriction of 00 to the variables in si. Since admits a successful
derivation of k + 1 steps, each i should admit a successful derivation of at most
k steps.</p>
        <p>If for all i 2 f1; : : : ; mg, (si) is ground, then, by inductive hypothesis we
have that h (si); `ii 2 TP " ! where `i = 2( 0i0), and hence that there are his
such that h (si); `ii 2 TP " hi. Since Tp is monotonic, all of them belong to
TP " h where h = maxi=1;:::;m hi. Then, by applying TP considering the rule
r, since we already know that 00 = fe L( ; ( 0)), and fC ( 00) = true, we have
that hp(et); `ei 2 TP " h + 1, hence to TP " !.</p>
        <p>If for some i, (si) is not ground, the above property holds for any ground
instantiation of the remaining variables and again the results follows.
( ). Now, let us analyse the converse direction. If hp(et); `ei 2 TP " ! this means
that there is a k 0 such that hp(et); `ei 2 TP " k.</p>
        <p>Let us prove by induction on k. Again, if k = 0 the result holds trivially.
Let us suppose now that hp(et); `ei 2 TP " k + 1. This means (by de nition of
TP ) that there is a rule r: s0 0; s1; s2; : : : ; sm such that s0 = p(xe) and
there is a valuation u on H such that u(s0) = p(et) and that, in particular,
hs1; `1i; : : : ; hsm; `mi 2 TP " k (and fL can be computed and fC is true on these
arguments). By inductive hypothesis, for i 2 f1; : : : ; mg there is a derivation,
say, of hi steps for i = hu(si); v u; hu(si); `iii</p>
        <p>Since fC is true on such arguments and fL can be computed, the same holds
for TP : so, we have a derivation of Pim=1 hi + 1 steps for hp(et); v u ; het; `eii.</p>
        <p>This completes the proof of the inductive step.
tu
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusions &amp; Future Work</title>
      <p>The primary result of this paper is the de nition of the LVLP theoretical
framework, where di erent domain-speci c computational models can be expressed via
labelled variables, capturing suitably-tailored labelled models. The framework is
aimed at extending LP to face the challenges of today's pervasive systems, by
providing the models and technologies required to e ectively support distributed
situated intelligence, while maintaining the features of a declarative
programming paradigm. We also present the xpoint and operational semantics, discuss
correctness, completeness, and equivalence.</p>
      <p>
        Beside completing our LVLP prototype [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], currently implemented over
tuProlog [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], a focal point of our forthcoming activity is the design and
implementation of a full- edged middleware for tuProlog and LVLP, which could
be exploited to test the e ectiveness of distributed LP (and its extensions) in
real-world pervasive intelligence scenarios|a sketch of the forthcoming
middleware is reported in Fig. 1.
      </p>
      <p>
        Future work will be devoted to a more complete proof of the result sketched
in Subsection 4.1 as well as to the deeper exploration and better understanding
of the consequences of applying labels to formulas, as suggested by Gabbay
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Other research lines will possibly include the further development of the
Labelled tuProlog [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] prototype, as well as the application of the LVLP framework
to di erent scenarios and approaches|such as probabilistic LP [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], the many
CLP approaches [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], distributed ASP reasoning [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], and action languages [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
Acknowledgements. Agostino Dovier is partially supported by INdAM-GNCS
2015 and 2016 projects.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Alsinet</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Chesn~evar,
          <string-name>
            <given-names>C.I.</given-names>
            ,
            <surname>Godo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Simari</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.R.:</surname>
          </string-name>
          <article-title>A logic programming framework for possibilistic argumentation: Formalization and logical properties</article-title>
          .
          <source>Fuzzy Sets and Systems</source>
          <volume>159</volume>
          (
          <issue>10</issue>
          ),
          <volume>1208</volume>
          {1228 (May
          <year>2008</year>
          ), http://dx.doi.org/10.1016/ j.fss.
          <year>2007</year>
          .
          <volume>12</volume>
          .013
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Barany</surname>
          </string-name>
          , V.,
          <string-name>
            <surname>ten Cate</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kimelfeld</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Olteanu</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vagena</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>Declarative probabilistic programming with Datalog</article-title>
          . In: Martens,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Zeume</surname>
          </string-name>
          , T. (eds.) 19th
          <source>International Conference on Database Theory (ICDT</source>
          <year>2016</year>
          ).
          <source>LIPIcs</source>
          , vol.
          <volume>48</volume>
          , pp.
          <volume>7</volume>
          :
          <issue>1</issue>
          {7:
          <fpage>19</fpage>
          . Dagstuhl,
          <string-name>
            <surname>Germany</surname>
          </string-name>
          (
          <year>2016</year>
          ), http://dx.doi.org/10.4230/LIPIcs.ICDT.
          <year>2016</year>
          .7
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Calegari</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Denti</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Omicini</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Labelled variables in logic programming: A rst prototype in tuProlog</article-title>
          . In: Bellodi,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Bon</surname>
          </string-name>
          <string-name>
            <surname>etti</surname>
          </string-name>
          , A. (eds.)
          <source>AI*IA 2015 DC Proceedings. CEUR Workshop Proceedings</source>
          , vol.
          <volume>1485</volume>
          , pp.
          <volume>25</volume>
          {
          <fpage>30</fpage>
          . AI*IA, Ferrara, Italy (
          <volume>23</volume>
          {
          <issue>24</issue>
          <year>Sep 2015</year>
          ), http://ceur-ws.
          <source>org/</source>
          Vol-1485
          <source>/proceedings.pdf#page= 30</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Cohen</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>Constraint Logic Programming languages</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>33</volume>
          (
          <issue>7</issue>
          ),
          <volume>52</volume>
          {68 (Jul
          <year>1990</year>
          ), http://dx.doi.org/10.1145/79204.79209
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Denti</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Omicini</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ricci</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>: Multi-paradigm Java-Prolog integration in tuProlog</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>57</volume>
          (
          <issue>2</issue>
          ),
          <volume>217</volume>
          {250 (Aug
          <year>2005</year>
          ), http: //dx.doi.org/10.1016/j.scico.
          <year>2005</year>
          .
          <volume>02</volume>
          .001
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Dovier</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Formisano</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pontelli</surname>
          </string-name>
          , E.:
          <article-title>Autonomous agents coordination: Action languages meet CLP(FD) and Linda</article-title>
          .
          <source>Theory and Practice of Logic Programming</source>
          <volume>13</volume>
          (
          <issue>2</issue>
          ),
          <volume>149</volume>
          {173 (Sep
          <year>2013</year>
          ), http://dx.doi.org/10.1017/S1471068411000615
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dovier</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pontelli</surname>
          </string-name>
          , E.:
          <article-title>Present and future challenges for ASP systems</article-title>
          . In: Erdem,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Schaub</surname>
          </string-name>
          , T. (eds.)
          <article-title>Logic Programming and Nonmonotonic Reasoning</article-title>
          . 10th International Conference, LPNMR 2009, Potsdam, Germany,
          <source>September 14-18</source>
          ,
          <year>2009</year>
          . Proceedings, pp.
          <volume>622</volume>
          {
          <fpage>624</fpage>
          . Springer (
          <year>2009</year>
          ), http://dx.doi.org/10. 1007/978-3-
          <fpage>642</fpage>
          -04238-6_
          <fpage>70</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Gabbay</surname>
            ,
            <given-names>D.M.</given-names>
          </string-name>
          :
          <source>Labelled Deductive Systems</source>
          , Volume
          <volume>1</volume>
          . Clarendon Press,
          <source>Oxford Logic Guides</source>
          <volume>33</volume>
          (
          <year>Sep 1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hofstedt</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Multiparadigm Constraint Programming Languages</article-title>
          .
          <source>Cognitive Technologies</source>
          , Springer (
          <year>2011</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -17330-1
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Holzbaur</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Metastructures vs. attributed variables in the context of extensible uni cation</article-title>
          . In: Bruynooghe,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Wirsing</surname>
          </string-name>
          , M. (eds.)
          <source>Programming Language Implementation and Logic Programming, Lecture Notes in Computer Science</source>
          , vol.
          <volume>631</volume>
          , pp.
          <volume>260</volume>
          {
          <fpage>268</fpage>
          . Springer (
          <year>1992</year>
          ), http://dx.doi.org/10.1007/3-540-55844-6_
          <fpage>141</fpage>
          , 4th International Symposium (PLILP'92)
          <string-name>
            <surname>Leuven</surname>
          </string-name>
          , Belgium,
          <source>August</source>
          <volume>26</volume>
          {
          <fpage>28</fpage>
          , 1992 Proceedings
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Hopcroft</surname>
            ,
            <given-names>J.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Motwani</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ullman</surname>
            ,
            <given-names>J.D.</given-names>
          </string-name>
          :
          <article-title>Introduction to Automata Theory, Languages, and Computation</article-title>
          . Pearson / Addison-Wesley,
          <year>3rd</year>
          edn. (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Imbert</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cohen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weeger</surname>
            ,
            <given-names>M.D.:</given-names>
          </string-name>
          <article-title>An algorithm for linear constraint solving: Its incorporation in a Prolog meta-interpreter for CLP</article-title>
          .
          <source>The Journal of Logic Programming</source>
          <volume>16</volume>
          (
          <issue>3</issue>
          ),
          <volume>235</volume>
          {
          <fpage>253</fpage>
          (
          <year>1993</year>
          ), http://dx.doi.org/10.1016/
          <fpage>0743</fpage>
          -
          <lpage>1066</lpage>
          (
          <issue>93</issue>
          )
          <fpage>90044</fpage>
          -
          <lpage>H</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Ja</surname>
            <given-names>ar</given-names>
          </string-name>
          , J.,
          <string-name>
            <surname>Maher</surname>
            ,
            <given-names>M.J.:</given-names>
          </string-name>
          <article-title>Constraint Logic Programming: A survey</article-title>
          .
          <source>The Journal of Logic Programming</source>
          <volume>19</volume>
          {
          <fpage>20</fpage>
          (
          <issue>Supplement 1</issue>
          ),
          <volume>503</volume>
          {581 (May{
          <year>Jul 1994</year>
          ), http:// dx.doi.org/10.1016/
          <fpage>0743</fpage>
          -
          <lpage>1066</lpage>
          (
          <issue>94</issue>
          )
          <fpage>90033</fpage>
          -
          <lpage>7</lpage>
          ,
          <string-name>
            <given-names>Special</given-names>
            <surname>Issue</surname>
          </string-name>
          : Ten Years of Logic Programming
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Mariani</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Omicini</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Coordinating activities and change: An event-driven architecture for situated MAS</article-title>
          .
          <source>Engineering Applications of Arti cial Intelligence</source>
          <volume>41</volume>
          ,
          <fpage>298</fpage>
          {309 (May
          <year>2015</year>
          ), http://dx.doi.org/10.1016/j.engappai.
          <year>2014</year>
          .
          <volume>10</volume>
          .006
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Omicini</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zambonelli</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>MAS as complex systems: A view on the role of declarative approaches</article-title>
          . In: Leite,
          <string-name>
            <given-names>J.A.</given-names>
            ,
            <surname>Omicini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Sterling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Torroni</surname>
          </string-name>
          , P. (eds.)
          <source>Declarative Agent Languages and Technologies, Lecture Notes in Computer Science</source>
          , vol.
          <volume>2990</volume>
          , pp.
          <volume>1</volume>
          {
          <fpage>17</fpage>
          . Springer (May
          <year>2004</year>
          ), http://dx.doi.org/10.1007/ 978-3-
          <fpage>540</fpage>
          -25932-
          <issue>9</issue>
          _
          <fpage>1</fpage>
          , 1st International Workshop (DALT
          <year>2003</year>
          ), Melbourne, Australia,
          <volume>15</volume>
          Jul.
          <year>2003</year>
          .
          <article-title>Revised Selected</article-title>
          and Invited Papers
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Russo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Generalising propositional modal logic using labelled deductive systems</article-title>
          . In: Baader,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Schulz</surname>
          </string-name>
          , K.U. (eds.)
          <source>Frontiers of Combining Systems, Applied Logic Series</source>
          , vol.
          <volume>3</volume>
          , pp.
          <volume>57</volume>
          {
          <fpage>73</fpage>
          . Springer (
          <year>1996</year>
          ), http://dx.doi.org/10.1007/
          <fpage>978</fpage>
          -94-009-0349-
          <issue>4</issue>
          _
          <fpage>2</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Skarlatidis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Artikis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Filippou</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paliouras</surname>
          </string-name>
          , G.:
          <article-title>A probabilistic logic programming event calculus</article-title>
          .
          <source>Theory and Practice of Logic Programming</source>
          <volume>15</volume>
          (
          <issue>Special Issue 02</issue>
          (
          <issue>Probability</issue>
          , Logic and Learning)),
          <volume>213</volume>
          {
          <issue>245</issue>
          (3
          <year>2015</year>
          ), http://dx.doi. org/10.1017/S1471068413000690
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. WordNet:
          <article-title>Home page</article-title>
          . http://wordnet.princeton.edu
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>