<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>International Workshop on the Resurgence of Datalog in Academia and Industry, October</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>A Tool For Reasoning Over CNL Sentences With Temporal Constructs</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Pierangela Bruno</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Simone Caruso</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carmine Dodaro</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Maratea</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DIBRIS, University of Genova</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>DeMaCS, University of Calabria</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2024</year>
      </pub-date>
      <volume>11</volume>
      <issue>2024</issue>
      <fpage>0000</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>CNL2ASP is a recent tool designed to convert sentences in controlled natural language (CNL), based on English, into Answer Set Programming (ASP) rules. In this paper, we present an extension of CNL2ASP to support temporal constructs, called CNL2TEL, that facilitates the translation of sentences in this controlled language into rules in temporal equilibrium logic and processable by the telingo tool. We demonstrate the efectiveness of CNL2TEL by applying it to some domains of the telingo test suite, showcasing the readability and utility of our approach. Additionally, we compare the performance of our translation with telingo executed on the original specifications in its native language showing that our tool does not introduce significant overhead.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Answer Set Programming</kwd>
        <kwd>Controlled Natural Language</kwd>
        <kwd>Temporal Equilibrium Logic</kwd>
        <kwd>Telingo</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <sec id="sec-1-1">
        <title>Answer Set Programming (ASP) [1, 2, 3] is a well-known declarative programming paradigm proposed</title>
        <p>
          in the area of knowledge representation and reasoning (KRR), and geared toward solving hard
combinatorial problems. ASP has been widely used for solving problems in both academic and industrial
contexts (see, e.g., [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] for a complete survey on ASP applications). The success of ASP is due to several
factors, including its simple syntax and intuitive semantics, the availability of eficient systems [
          <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
          ],
and the availability of interesting extensions, e.g., the integration with Constraint Programming and
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>SMT [7, 8, 9], and with machine learning (see, e.g., [10, 11]), and the specification of and reasoning</title>
        <p>
          about temporal concepts and constraints [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>
          While ASP and other KRR formalisms have been successful in representing and reasoning about
complex knowledge domains, they may not be suitable for all types of users and applications. Specifically,
the need for formal and logic-based languages can be an entry barrier for non-experts or those without
prior experience with KR techniques. Motivated by this observation, recent eforts have focused on
developing higher-level languages that are closer to natural language, with automatic translations
to ASP [
          <xref ref-type="bibr" rid="ref13 ref14 ref15 ref16">13, 14, 15, 16</xref>
          ]. These approaches aim to provide a more intuitive and accessible means of
expressing knowledge and rules, thereby expanding the reach and applicability of KR formalisms. In
this context, [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] introduced a controlled natural language (CNL) and a novel tool called CNL2ASP,
which enables users to specify sentences in high-level English and automatically translate them into
        </p>
      </sec>
      <sec id="sec-1-3">
        <title>ASP rules that can be later on processed by standard ASP systems.</title>
      </sec>
      <sec id="sec-1-4">
        <title>In this paper, we introduce an enhanced version of the CNL2ASP tool. This extended tool, called</title>
      </sec>
      <sec id="sec-1-5">
        <title>CNL2TEL, integrates temporal operators and the ability to represent temporal specifications. CNL2TEL is capable of translating these specifications into the language of telingo [18], which is the state-ofthe-art tool for temporal reasoning within ASP. This allows for the specification of and reasoning about temporal operators, enabling the creation of rules that encompass both past and future references.</title>
        <p>To test the viability and efectiveness of our proposal, we apply our solution to some of the use
cases within the telingo suite. We demonstrate how these problems can be expressed in our CNL and
showcase the automatic translation into telingo specifications made by CNL2TEL. Additionally, we
compare the performance of our translation with telingo executed on the original specifications in its
native language showing that our tool does not introduce significant overhead.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Background</title>
      <sec id="sec-2-1">
        <title>This section introduces needed preliminaries about the CNL2ASP tool, Temporal Equilibrium Logic,</title>
        <p>and telingo.</p>
        <p>
          CNL2ASP is a tool for converting Controlled Natural Language (CNL) sentences into ASP rules. A CNL
is a restricted language, in this case English, which is shaped to be processed from a computer although
it is flexible enough to be natural to use. Thus, a CNL has a grammar with fixed strings (terminal
symbols) that we will identify as quoted strings, e.g., "prohibited", and some non-terminal symbols
which are substituted with other rules. While the complete description of CNL2ASP is presented in [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ],
here we recall some concepts useful to understand the temporal extensions presented later. CNL2ASP
takes as input a set of CNL propositions and converts them into a set of ASP rules. Propositions can
be either concept definitions, i.e., sentences describing the entities of the domain problem, or
standard propositions that are used for reasoning over the defined concepts and are translated
into ASP rules by the tool. Standard propositions are, for example, constraint propositions and
guess propositions.
        </p>
        <p>A concept definition is of the form:</p>
        <p>"A" concept "is identified by" attributes (", and has"
concept_defintion →−</p>
        <p>attributes)?
constraint_proposition →−</p>
        <p>condition
where concept and attributes are arbitrary names. The first list of attributes represents the
definition of the keys, i.e., the attributes that uniquely identify the concept, while the second list defines
other attributes and is optional. Then, constraints are of the form:</p>
        <p>
          "It is" ("prohibited" | "required") "that"
where condition is a sequence of sentences containing aggregates, operations, or other statements.
Guess rules and assignments instead are of the form:
guess_proposition →− whenever_clauses ", then" entity ("can" | "must")
predicate cardinality objects
where whenever_clauses is a list of conditions, entity is how the defined entities are accessed and
initialized, predicate can be seen as the new relation between the entities and it will be the head of
the rule. Finally, objects is a list of entities that will be translated into the condition in the head of the
rule. For a complete description of the CNL, we refer the reader to [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
2.2. Temporal Equilibrium Logic
Temporal Equilibrium Logic (TEL) is an extension of propositional logic with past and future temporal
operators shown in the first column of Table 1. The initial and final operators, in the first row, exclusively
hold in the initial and final state, respectively. Previous and next, instead, are unary operators that are
used to check if a proposition () is true, in the previous or next state, respectively. They also have a
corresponding weak, eventually and always version. The weak previous operator is defined as • ∨ I,
while the weak next as ◦ ∨ F, i.e.,  must be true in the previous (next) state or it is the initial (final)
state. Then, the eventually before (after) and always before (after) operators have the intuitive meaning
that a proposition holds in at least one of the previous (next) states and in all the previous (next) states,
respectively. Finally, the binary operators since, trigger, until, and release are defined as follows:
•  S  is true whenever there is a state in which  is satisfied and then, in the following state,  is
satisfied;
•  T  is true whenever  becomes true from the state in which  became true;
•  U  is true whenever there is a sequence of states in which  is true and it becomes false in the
state in which  becomes true;
•  R  is true whenever  holds until and including the state in which  becomes true. If  never
becomes true, then  must be always true.
        </p>
        <p>
          For a more detailed and formal description of the temporal operators, we refer the reader to [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. As
[
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] shows, any temporal formula can be translated into a temporal logic program made of three types
of rules:
• initial rules:  → 
• dynamic rules: ◦̂︀□ ( → )
• final rules: □ (F→ ( → ))
where, given an alphabet ,  and  are defined as follows:  = 1 ∧ · · · ∧  with  ≥ 0,  = 1 ∨
· · · ∨  with  ≥ 0, having for dynamic rules  and  as temporal literals {, ¬, •, ¬•, |  ∈ },
while for initial and final rules as regular literals {, ¬ |  ∈ }. Naturally, initial and final rules
allow to define the initial and final conditions, and dynamic rules define the state transitions. Finally,
it is possible to convert any temporal logic program into a regular one, i.e., a program only made of
initial rules, adorning literals with an explicit timestamp. The timestamp, in fact, allows to make rules
applicable only in a certain time point. Moreover, also temporal operators can be timestamped, e.g.,
consider the previous operator (•) applied to a proposition  at a time point  (•): it can be converted
into − 1. Thus, by iterating this process it is possible to increase at each step the time horizon by 1.
        </p>
        <sec id="sec-2-1-1">
          <title>2.3. telingo</title>
          <p>telingo is a solver for temporal programs, based on TEL on finite traces. telingo makes usage of the
clingo theory introducing &amp;tel, &amp;initial and &amp;final atoms, temporal operators and Boolean operators.
Thus, in telingo, a temporal formula is defined as &amp;tel{ }, where  is made of temporal operators,
whose syntax is shown in the second column of Table 1, and Boolean operators. Moreover, the unary
operators next and previous can be represented with a single quote, sufixed (e.g., predicate’(X))
and prefixed (e.g., ’predicate(X)) to the predicate to which they are referred, respectively. Initial,
dynamic and final rules are achieved leveraging the clingo’s # directive that allows to split a
program into subprograms. Thus, telingo defines the three corresponding programs: , ,
and  , and one more program, called , that is a combination of  and , i.e.,
rules in this program apply both in  and . All the rules outside any program are
considered part of . Finally, temporal programs are converted into regular programs and then
solved by clingo, using its multi-shot solving capability, where a loop iteratively increments the time
horizon until a stopping criterion is met. Such a criterion can be set by the three options controlling
the loop: –imin and –imax, used to set the minimum and maximum solving steps, respectively, and
–istop whose default value is sat but it can be also set to unsat or unknown.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. CNL grammar with temporal constructs</title>
      <sec id="sec-3-1">
        <title>CNL2TEL extends CNL2ASP to support the new concepts introduced in telingo, summarized into</title>
        <p>three main elements: (i) well-defined program parts, whose rules apply in particular states; (ii) the
possibility of being able to refer to an atom in the previous, subsequent and initial state; and (iii) the
temporal formulas, detailed below.</p>
        <sec id="sec-3-1-1">
          <title>Concerning (i), telingo defines four program parts, namely , whose rules apply only to the</title>
          <p>ifrst state, , whose rules apply to all the states, , whose rules apply to all states except
the initial state, and  , whose rules apply only to the last state. Therefore, we introduce program
in the grammar:
program →−</p>
          <p>TEMPORAL_PART? (standard_proposition END_OF_LINE)+
that is made of the old standard_proposition token, i.e., the CNL’s constraints, guess and
assignment rules shown in Section 2.1, adorned with the optional token TEMPORAL_PART mapped as
follows:
TEMPORAL_PART →− "The following propositions apply in the initial state:" |
"The following propositions always apply:" | "The following
propositions always apply except in the initial state:" |"The following
propositions apply in the final state:"
Intuitively, the sentences correspond to the , ,  and   programs, respectively,
and, as TEMPORAL_PART is optional, when it is not declared the propositions are considered by telingo
part of .</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Concerning (ii), to refer to the concepts in the previous, subsequent, and initial state, we extended</title>
          <p>the entity token as follows:
temporal_entity →−</p>
          <p>TELINGO_ENTITY_STATE entity
where TELINGO_ENTITY_STATE is one of "previously", "subsequently" or "initially". The
following examples should clarify their usage:
1 Whenever there is previously a gun unloaded, whenever there is not a gun
loaded then we must have a gun with status equal to unloaded.
2 It is prohibited that there is a gun loading, whenever there is not
subsequently a gun loaded.
3 It is required that there is a gun loading, whenever there is initially a
gun unloaded.</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>Concerning (iii), temporal formulas are concatenations of telingo operators:</title>
          <p>TELINGO_TEMPORAL_OPERATOR →− ","? ("always" | "eventually" | "before" | "
since before" | "after" | "since after") ("this state" | "now" | "here")
? ","?
hold_condition →− ("that" VERB_NEGATION? TELINGO_TEMPORAL_OPERATOR "hold")
| ("that" VERB_NEGATION? "hold" TELINGO_TEMPORAL_OPERATOR)
telingo_formula →− "there is" VERB_NEGATION? TELINGO_TEMPORAL_OPERATOR?
telingo_operand hold_condition? (TELINGO_BINARY_OPERATOR telingo_formula
)?
where the combination of TELINGO_TEMPORAL_OPERATOR and hold_condition allows to specify
the temporal operators. The full list of temporal operators supported in TEL with the corresponding
telingo and CNL syntax is shown in Table 1.</p>
          <p>Instead, the optional elements TELINGO_BINARY_OPERATOR and telingo_operation are used
to concatenate temporal formulas where TELINGO_BINARY_OPERATOR includes all the temporal and</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Boolean operators that accept two operands:</title>
        <p>TELINGO_BINARY_OPERATOR →− "and" | "or" | "implies" | "imply" | "equivalent
" | "trigger" | "since" | "precede" | "release" | "until" | "follow"</p>
      </sec>
      <sec id="sec-3-3">
        <title>Finally, telingo_operand is defined as:</title>
        <p>telingo_operand →− entity (TELINGO_BINARY_OPERATOR telingo_operand)?
| TELINGO_CONSTANT (TELINGO_BINARY_OPERATOR telingo_operand)?
TELINGO_CONSTANT →− "it is the initial state" | "it is the final state"
| "the true constant" | "the false constant"
thus, a telingo_operand can be an entity or a TELINGO_CONSTANT (initial and final constants in
Table 1), while the optional pair TELINGO_BINARY_OPERATOR telingo_operand is used for
concatenation. The telingo_formula can be used in whenever_clauses and constraint_proposition,
presented before. The following sentences are some possible examples:
1 Whenever there is a gun shooting, whenever, before now, there is a gun
unloaded that always holds and there is eventually a gun shooting that
holds since before, then we must have a gun with status equal to broken.
2 It is prohibited that, after now, there is a gun loaded and a gun shooting
that does not always hold.</p>
      </sec>
      <sec id="sec-3-4">
        <title>The first sentence shows the usage of the keywords before used with always holds, and</title>
        <p>eventually with holds since before which defines the telingo operator always before
(&lt;*) and eventually before (&lt;?), respectively. The second sentence shows the keyword after
with not always hold, and defines the operator always after (&gt;*) followed by the Boolean
negation. Moreover, the keyword and represents a Boolean conjunction.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Use cases</title>
      <sec id="sec-4-1">
        <title>In this section, we present the CNL specifications for a selection of the domain examples taken from</title>
        <p>the telingo repository (https://github.com/potassco/telingo), namely Gun Problem, Tower of Hanoi,
and Logistic problem, containing the most significant constructs introduced. Moreover, in this section,
we report the results of an experimental analysis conducted on the aforementioned domains, where
we compare telingo executed on the original program and on the program generated by CNL2TEL.</p>
      </sec>
      <sec id="sec-4-2">
        <title>The CNL2TEL encodings of the analyzed domains and the generated instances are available at https: //github.com/simocaruso/datalog24cnl2tel.</title>
        <sec id="sec-4-2-1">
          <title>Gun Problem. In the gun problem, there is a gun that can either shoot, wait, or load. Whenever the</title>
          <p>gun shoots two times without loading, then it breaks. In the following, we present the CNL specification
of the problem with the corresponding translation.</p>
          <p>First, we define the concepts of the problem (lines 1–2) and then the  state:
1 A gun is identified by a status.
2 A shooter is identified by an id.
3 The following propositions apply in the initial state:
4 There is a gun with status equal to unloaded.</p>
          <p>as concept definitions (lines 1–2) do not have a corresponding telingo representation, this block is
translated into the two following rules:
1 #program initial.
2 gun("unloaded").</p>
        </sec>
        <sec id="sec-4-2-2">
          <title>Then, it is defined an  program:</title>
          <p>5 The following propositions always apply:
6 There is a shooter with id 1.</p>
          <p>which is translated into:
3 #program always.
4 shooter(1).</p>
          <p>The following set of CNL propositions, instead, constitute a  program.
7 The following propositions always apply except in the initial state:
8 Whenever there is a shooter X, then we must have a gun with status equal to
shooting, or a gun with status equal to loading, or a gun with status
equal to waiting.
9 Whenever there is a gun loading then we must have a gun with status equal to
loaded.
10 Whenever there is not a gun unloaded, whenever there is previously a gun
loaded then we must have a gun with status equal to loaded.
11 Whenever there is a gun shooting, whenever there is previously a gun loaded,
whenever there is not a gun broken, then we must have a gun with status
equal to unloaded.
12 Whenever there is previously a gun unloaded, whenever there is not a gun
loaded then we must have a gun with status equal to unloaded.
13 It is prohibited that there is a gun loading, whenever there is previously a
gun loaded.
14 Whenever there is a gun shooting, whenever, before now, there is a gun
unloaded that always holds and there is eventually a gun shooting that
holds since before, then we must have a gun with status equal to broken.
15 Whenever there is previously a gun broken, then we must have a gun with
status equal to broken.</p>
        </sec>
      </sec>
      <sec id="sec-4-3">
        <title>It is first defined which action can be selected, then how that gun updates its status based on the</title>
        <p>selected action, and finally the condition that if a gun shoots two times without loading, then it breaks.</p>
      </sec>
      <sec id="sec-4-4">
        <title>The corresponding telingo encoding is presented below:</title>
        <p>5 #program dynamic.
6 gun("shooting") | gun("loading") | gun("waiting") :- shooter(X).
7 gun("loaded") :- gun("loading").
8 gun("loaded") :- not gun("unloaded"), ’gun("loaded").
9 gun("unloaded") :- gun("shooting"), ’gun("loaded"), not gun("broken").
10 gun("unloaded") :- ’gun("unloaded"), not gun("loaded").
11 :- gun("loading"), ’gun("loaded").
12 gun("broken") :- gun("shooting"), not not &amp;tel {(&lt;* gun("unloaded")) &amp; (&lt;
&lt;? gun("shooting"))}.
13 gun("broken") :- ’gun("broken").</p>
        <p>Notice how the previously operator has been converted into ’gun("loaded") in the line 8 of
the encoding and how the temporal formula of the CNL in line 14 (whenever there is before
a gun unloaded that always holds and there is eventually a gun shooting
that holds since before) has been converted into the complex telingo formula in line 12
(not not &amp;tel {(&lt;* gun("unloaded"))&amp; (&lt; &lt;? gun("shooting"))}). Finally, there is the
goal of the problem, in which we ensure that the gun shoots at least once, as defined in the following:
16 The following propositions apply in the final state:
17 It is prohibited that, before here, there are not a gun loaded and a gun
shooting that eventually hold.</p>
      </sec>
      <sec id="sec-4-5">
        <title>Again, the CNL presents a temporal formula that is converted into:</title>
        <p>14 #program final.
15 :- not &amp;tel {&lt;? (gun("loaded") &amp; gun("shooting"))}.</p>
        <p>Tower of Hanoi. The following are the specifications for the Tower of Hanoi problem:
1 A disk is identified by an id.
2 A peg is identified by an id.
3 A goal is identified by a disk, and by a peg.
4 The following propositions always apply:
5 A disk ranges from 0 to 3.
6 A peg ranges from 1 to 3.
7 There is a goal with disk id 3, with peg 3.
8 There is a goal with disk id 2, with peg 3.
9 There is a goal with disk id 1, with peg 3.
10 The following propositions apply in the initial state:
11 Every disk X must be on peg 1, where X is greater than 0 and X is less than
4.
12 The following propositions always apply except in the initial state:
13 Whenever there is a disk D, then D can be moved to a peg.
14 It is required that the number of disks that are moved to a peg is equal to
1.
15 A disk D is on a peg P when disk D is moved to peg P.
16 A disk D is moved when disk D is moved to a peg P.
17 A disk D is on a peg P when disk D is previously on peg P and also disk D is
not moved.
18 A disk X is blocked in peg P when disk D is previously on peg P, where X is
equal to D-1.
19 A disk X is blocked in peg P when disk D is blocked in peg P, where X is
equal to D-1.
20 It is prohibited that a disk D is moved to a peg P, when a disk X is blocked
in peg P, where X is equal to D-1.
21 It is prohibited that a disk D is moved to a peg P1, when disk D is
previously on peg P2 and also disk D is blocked in peg P2.
22 The following propositions apply in the final state:
23 It is prohibited that disk D is not on peg P, whenever there is a goal with
disk id D, with peg id P.</p>
        <p>Similarly to the previous problem, first we have the declaration of the concepts of the problem (lines
1–3), then we have a definition of the  program (line 4) that is made of a series of propositions
that declare the facts, i.e. the disks, pegs, and goal of the problem (lines 5–9). Then, we have a program
part that applies in the initial state in which all disks are put on peg 1 (lines 10 and 11) and a definition
of a  program (lines 12–21), where we state that one disk at the time can be moved, the
constraints to respect and how the disk position is updated accordingly. Finally, it is defined the goal of
the problem (lines 22 and 23), that is to have all the disks on the desired peg. As for the gun problem, it
can be noticed the usage of the TEMPORAL_ENTITY_STATE previously to refer to a previous state.</p>
        <p>The resulting telingo encoding is:
1 #program always.
2 disk(0..3).
3 peg(1..3).
4 goal(3,3).
5 goal(2,3).
6 goal(1,3).
7 #program initial.
8 on(X,1): peg(1) :- X &gt; 0, X &lt; 4, disk(X).
9 #program dynamic.
10 {moved_to(D,PG_D): peg(PG_D)} :- disk(D).
11 :- #count{D: moved_to(D,MVD_T_D), peg(MVD_T_D)} != 1.
12 on(D,P) :- moved_to(D,P), disk(D), peg(P).
13 moved(D) :- moved_to(D,P), peg(P), disk(D).
14 on(D,P) :- ’on(D,P), not moved(D), disk(D), peg(P).
15 blocked_in(X,P) :- disk(D), ’on(D,P), X = D-1, disk(X), peg(P).
16 blocked_in(X,P) :- disk(D), blocked_in(D,P), X = D-1, disk(X), peg(P).
17 :- disk(D), moved_to(D,P), disk(X), blocked_in(X,P), peg(P), X = D-1.
18 :- moved_to(D,P1), peg(P1), ’on(D,P2), disk(D), blocked_in(D,P2), peg(P2).
19 #program final.
20 :- disk(D), not on(D,P), peg(P), goal(D,P).</p>
        <p>Logistic problem. The Logistic problem consists of delivering packages to a specific location in a
specific city. Packages can be carried by truck or airplanes, but trucks can only move to locations inside
the same city, and airplanes, obviously, can only move between airports. The following is the CNL
specification of the problem:
1 An object is identified by an id.
2 A vehicle is identified by a object.
3 A truck is identified by a object.
4 An airplane is identified by a object.
5 A package is identified by an id.
6 A location is identified by an id.
7 A city is identified by a location, and by a name.
8 An airport is identified by a location.
9 A goal is identified by a package, and by a location.
33 The following propositions apply in the final state:
34 It is prohibited that package P is not deposited in location L, whenever
there is a goal with package P, and with location L.
35 It is prohibited that package P is loaded, whenever there is a goal with
package P.</p>
      </sec>
      <sec id="sec-4-6">
        <title>After the domain definitions in lines 1-9, the concepts of vehicles and locations are introduced. The</title>
        <p>former is a general name for trucks and aircraft while the latter is a part of city. Then, from line 14,
the  rules are defined. First, it is specified when a vehicle can load and unload a package
(lines 15-16) and then how this consequentially updates the state of the package (lines 17-20). Here, the
previously operator is used to check whether a package can be loaded or unloaded and if its state
changes. Lines 21 and 22 define the concept of task, while lines 23 to 31 define the action of moving a
vehicle. Again, previously operator is used, which ensures that the vehicle moves from its location
to a diferent location. Line 32 ensures that a vehicle moves only to have task, i.e. to load or to unload a
package, which is guaranteed by the after operator. Finally, the last 3 lines define the objective of the
problem, which is having all the packages deposited in the goal location. Below, the corresponding
encoding:
1 #program always.
2 vehicle(T) :- truck(T).
3 vehicle(A) :- airplane(A).
4 location(L) :- city(L,_).
5 #program dynamic.
6 {load(V,P)} &lt;= 1 :- ’deposited_in(P,L), ’at(V,L), location(L), package(P),
not ’loaded(P), vehicle(V).
7 {unload(V,P)} :- package(P), ’loaded_in(P,V), vehicle(V).
8 loaded_in(P,V) :- ’loaded_in(P,V), not unload(V,P), package(P), vehicle(V).
9 loaded(P) :- loaded_in(P,V), vehicle(V), package(P).
10 loaded_in(P,V) :- load(V,P), package(P), vehicle(V).
11 :- vehicle(V1), load(V1,P), vehicle(V2), load(V2,P), package(P), V1 != V2.
12 task(V) :- load(V,P), package(P), vehicle(V).
13 task(V) :- unload(V,P), package(P), vehicle(V).
14 {move_to(T,L): city(L,C), L != M} &lt;= 1 :- ’at(T,M), location(M), city(M,C),
truck(T).
15 {move_to(A,L): airport(L), L != M} &lt;= 1 :- ’at(A,M), location(M),
airplane(A).
16 :- vehicle(V), move_to(V,L), location(L), task(V).
17 moving(V) :- move_to(V,LCTN_D), location(LCTN_D), vehicle(V).
18 deposited_in(P,L) :- loaded_in(P,V), vehicle(V), at(V,L), package(P),
location(L).
19 at(V,L) :- move_to(V,L), vehicle(V), location(L).
20 at(T,L) :- ’at(T,L), not moving(T), truck(T), location(L).
21 at(A,L) :- ’at(A,L), not moving(A), airplane(A), location(L).
22 deposited_in(P,L) :- ’deposited_in(P,L), not loaded(P), package(P),
location(L).
23 :- vehicle(V), moving(V), not &amp;tel {&gt; task(V)}.
24 #program final.
25 :- package(P), not deposited_in(P,L), location(L), goal(P,L).
26 :- package(P), loaded(P), goal(P,_).</p>
        <sec id="sec-4-6-1">
          <title>Performance comparison. We conducted an analysis where we compare the performance of</title>
          <p>CNL2TEL, which we remind runs telingo, with those of telingo executed on the encodings contained
in the repository. Although, for the Gun problem, the size is fixed with negligible solving times, we
performed more detailed experiments by generating larger input instances for the Logistic problem
and Tower of Hanoi domains. For the Logistic problem, we considered instances with an increasing
number of packages from 5 to 10, while for the Tower of Hanoi problem, we tested instances with 4 up
to 8 disks. Results are shown in Figure 1. Overall, as expected, the original human-written encodings</p>
          <p>Original
CNL
150
140
130
120
110
()s100
e 90
itm80
n
ito 70
cu 60
e
xE 50
40
30
20
10
04</p>
          <p>Original
CNL</p>
          <p>CNL opt
6
7</p>
          <p>Instance
(a) Logistic
8
9
10
5</p>
          <p>6</p>
          <p>Instance
(b) Hanoi
7
8
perform better than those automatically generated by CNL2TEL. Nevertheless, concerning Tower of</p>
        </sec>
      </sec>
      <sec id="sec-4-7">
        <title>Hanoi, the original encoding has a rule that is not necessary for the correct solution of the problem but it improves its performance. Most likely, a non-expert user would not include it; however, if such a rule is included in the CNL, denoted as CNL opt, the CNL2TEL performance matches the original one.</title>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Related Work</title>
      <sec id="sec-5-1">
        <title>In this section, we present an overview of the CNLs proposed in the field of logic programming, with</title>
        <p>
          focus on the usage of temporal constructs. For a complete review of CNLs, we refer the reader to the
interesting survey in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
        </p>
        <p>
          Although several CNLs have been defined with the aim of specifying logic programs in a natural
language, such as Attempto CNL [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] or PENGASP [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], few of them provide an explicit way to represent
temporal concepts and also their grammar is mainly domain-specific. [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] defined a controlled natural
language and a tool for converting such language in a temporal logic called Computation Tree Logic,
for the specification and verification of hardware designs. As a domain-specific CNL, its grammar is
less varied than CNL2TEL and it is mainly built toward signals. [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] proposed a language with support
for temporal relations, defined by 15 diferent templates, for functional testing of control software for
passenger vehicles. CNL2TEL, instead, extends CNL2ASP [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] introducing the temporal concepts, thus,
its grammar is not domain-specific and tries to cover diferent application domains. Similar extensions
could be applied, e.g., to enable natural language specifications over ASP with temporal constructs
following the approach by [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. PENG Light [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] extends PENGASP to support the input language of
the Simplified Event Calculus [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]. The user can describe events, and define states and conditional
statements, then, PENG Light generates a model with the knowledge about the events and in which
time point they are efective, and it is able to answer queries. The main diference with CNL2TEL, apart
from the grammar, is that PENG Light supports Event Calculus while CNL2TEL is based on TEL.
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <sec id="sec-6-1">
        <title>In this paper, we have presented a tool, CNL2TEL, which converts sentences in controlled natural</title>
        <p>language containing temporal constructs in the language of telingo, by extending the specification
and reasoning capabilities of CNL2ASP. The tool is applied and evaluated on domains of the telingo
suite with satisfying results. As future work, we plan to analyze all domains of the telingo suite, and
to employ CNL2TEL in practical applications.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <sec id="sec-7-1">
        <title>Carmine Dodaro and Marco Maratea were supported by the European Union - NextGenerationEU</title>
        <p>and by Italian Ministry of Research (MUR) under PNRR project FAIR “Future AI Research”, CUP</p>
      </sec>
      <sec id="sec-7-2">
        <title>H23C22000860006 and by the European Union - NextGenerationEU and by the Ministry of University and</title>
      </sec>
      <sec id="sec-7-3">
        <title>Research (MUR), National Recovery and Resilience Plan (NRRP), Mission 4, Component 2, Investment</title>
      </sec>
      <sec id="sec-7-4">
        <title>1.5, project “RAISE - Robotics and AI for Socio-economic Empowerment” (ECS00000035) under the</title>
        <p>project “Gestione e Ottimizzazione di Risorse Ospedaliere attraverso Analisi Dati, Logic Programming
e Digital Twin (GOLD)”, CUP H53C24000400006. Carmine Dodaro was supported by the European</p>
      </sec>
      <sec id="sec-7-5">
        <title>Union - NextGenerationEU and by Italian Ministry of Research (MUR) under PNRR project Tech4You “Technologies for climate change adaptation and quality of life improvement”, CUP H23C22000370006; and by GNCS-INdAM.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>G.</given-names>
            <surname>Brewka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Truszczynski</surname>
          </string-name>
          ,
          <article-title>Answer set programming at a glance</article-title>
          ,
          <source>Commun. ACM</source>
          <volume>54</volume>
          (
          <year>2011</year>
          )
          <fpage>92</fpage>
          -
          <lpage>103</lpage>
          . URL: https://doi.org/10.1145/2043174.2043195. doi:
          <volume>10</volume>
          .1145/2043174.2043195.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gelfond</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Lifschitz</surname>
          </string-name>
          ,
          <article-title>The stable model semantics for logic programming</article-title>
          ,
          <source>in: Proc. of Logic Programming</source>
          , MIT Press,
          <year>1988</year>
          , pp.
          <fpage>1070</fpage>
          -
          <lpage>1080</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>I. Niemelä</surname>
          </string-name>
          ,
          <article-title>Logic Programs with Stable Model Semantics as a Constraint Programming Paradigm</article-title>
          , Ann. Math. Artif. Intell.
          <volume>25</volume>
          (
          <year>1999</year>
          )
          <fpage>241</fpage>
          -
          <lpage>273</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>E.</given-names>
            <surname>Erdem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gelfond</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          ,
          <article-title>Applications of answer set programming</article-title>
          ,
          <source>AI Mag</source>
          .
          <volume>37</volume>
          (
          <year>2016</year>
          )
          <fpage>53</fpage>
          -
          <lpage>68</lpage>
          . URL: https://doi.org/10.1609/aimag.v37i3.2678. doi:
          <volume>10</volume>
          .1609/AIMAG.V37I3.2678.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gebser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Kaufmann</surname>
          </string-name>
          , M. Ostrowski,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schaub</surname>
          </string-name>
          , P. Wanko,
          <article-title>Theory solving made easy with clingo 5</article-title>
          ,
          <source>in: Proc. of ICLP Technical Communications</source>
          , volume
          <volume>52</volume>
          of OASIcs,
          <source>Schloss Dagstuhl - Leibniz-Zentrum für Informatik</source>
          ,
          <year>2016</year>
          , pp.
          <volume>2</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>2</lpage>
          :
          <fpage>15</fpage>
          . URL: https://doi.org/10.4230/OASIcs. ICLP.
          <year>2016</year>
          .
          <article-title>2</article-title>
          . doi:
          <volume>10</volume>
          .4230/OASICS.ICLP.
          <year>2016</year>
          .
          <volume>2</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Alviano</surname>
          </string-name>
          , G. Amendola,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dodaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Maratea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          ,
          <article-title>Evaluation of disjunctive programs in WASP</article-title>
          , in: M.
          <string-name>
            <surname>Balduccini</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Lierler</surname>
          </string-name>
          , S. Woltran (Eds.),
          <source>Proc. of LPNMR</source>
          , volume
          <volume>11481</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2019</year>
          , pp.
          <fpage>241</fpage>
          -
          <lpage>255</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>V. S.</given-names>
            <surname>Mellarkod</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gelfond</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y. Zhang,</surname>
          </string-name>
          <article-title>Integrating answer set programming and constraint logic programming</article-title>
          ,
          <source>Ann. Math. Artif. Intell</source>
          .
          <volume>53</volume>
          (
          <year>2008</year>
          )
          <fpage>251</fpage>
          -
          <lpage>287</lpage>
          . URL: https://doi.org/10.1007/ s10472-009-9116-y. doi:
          <volume>10</volume>
          .1007/S10472-009-9116-Y.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Shen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lierler</surname>
          </string-name>
          ,
          <article-title>Smt-based constraint answer set solver EZSMT+ for non-tight programs</article-title>
          , in: M.
          <string-name>
            <surname>Thielscher</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Toni</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Wolter</surname>
          </string-name>
          (Eds.),
          <source>Proc. of KR</source>
          , AAAI Press,
          <year>2018</year>
          , pp.
          <fpage>67</fpage>
          -
          <lpage>71</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Armando</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Castellini</surname>
          </string-name>
          , E. Giunchiglia,
          <string-name>
            <given-names>M.</given-names>
            <surname>Idini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Maratea</surname>
          </string-name>
          , TSAT++
          <article-title>: an open platform for satisfiability modulo theories</article-title>
          ,
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>125</volume>
          (
          <year>2005</year>
          )
          <fpage>25</fpage>
          -
          <lpage>36</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bruno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Calimeri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Marte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Manna</surname>
          </string-name>
          ,
          <article-title>Combining deep learning and asp-based models for the semantic segmentation of medical images</article-title>
          , in: S. Moschoyiannis,
          <string-name>
            <given-names>R.</given-names>
            <surname>Peñaloza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vanthienen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Soylu</surname>
          </string-name>
          , D. Roman (Eds.),
          <source>Proc. of RuleML+RR</source>
          , volume
          <volume>12851</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2021</year>
          , pp.
          <fpage>95</fpage>
          -
          <lpage>110</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bruno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Calimeri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Marte</surname>
          </string-name>
          ,
          <string-name>
            <surname>Dedudeep:</surname>
          </string-name>
          <article-title>An extensible framework for combining deep learning and asp-based models</article-title>
          , in: G. Gottlob,
          <string-name>
            <given-names>D.</given-names>
            <surname>Inclezan</surname>
          </string-name>
          , M. Maratea (Eds.),
          <source>Proc. of LPNMR</source>
          , volume
          <volume>13416</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2022</year>
          , pp.
          <fpage>505</fpage>
          -
          <lpage>510</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>F.</given-names>
            <surname>Aguado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Cabalar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Diéguez</surname>
          </string-name>
          , G. Pérez,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schaub</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Schuhmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Vidal</surname>
          </string-name>
          ,
          <article-title>Linear-time temporal answer set programming</article-title>
          ,
          <source>TPLP</source>
          <volume>23</volume>
          (
          <year>2023</year>
          )
          <fpage>2</fpage>
          -
          <lpage>56</lpage>
          . URL: https://doi.org/10.1017/S1471068421000557. doi:
          <volume>10</volume>
          .1017/S1471068421000557.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>N. E.</given-names>
            <surname>Fuchs</surname>
          </string-name>
          ,
          <article-title>Knowledge representation and reasoning in (controlled) natural language</article-title>
          ,
          <source>in: Proc. of ICCS</source>
          , volume
          <volume>3596</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2005</year>
          , pp.
          <fpage>51</fpage>
          -
          <lpage>51</lpage>
          . URL: https://doi.org/10.1007/11524564_3. doi:
          <volume>10</volume>
          .1007/11524564\_3.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>P.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Harrison</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Jenkins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Thompson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Wojcik</surname>
          </string-name>
          ,
          <article-title>Acquiring and using world knowledge using a restricted subset of english</article-title>
          ,
          <source>in: Proc. of FLAIRS</source>
          , AAAI Press,
          <year>2005</year>
          , pp.
          <fpage>506</fpage>
          -
          <lpage>511</lpage>
          . URL: http://www.aaai.org/Library/FLAIRS/
          <year>2005</year>
          /flairs05-
          <fpage>083</fpage>
          .php.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>C.</given-names>
            <surname>Baral</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dzifcak</surname>
          </string-name>
          ,
          <article-title>Solving puzzles described in english by automated translation to answer set programming and learning how to do that translation</article-title>
          ,
          <source>in: Proc. of KR</source>
          , AAAI Press,
          <year>2012</year>
          . URL: http://www.aaai.org/ocs/index.php/KR/KR12/paper/view/4562.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>E.</given-names>
            <surname>Erdem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Yeniterzi</surname>
          </string-name>
          ,
          <article-title>Transforming controlled natural language biomedical queries into answer set programs</article-title>
          ,
          <source>in: Proc. of BioNLP@HLT-NAACL, ACL</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>117</fpage>
          -
          <lpage>124</lpage>
          . URL: https://aclanthology. org/W09-1315/.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>S.</given-names>
            <surname>Caruso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dodaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Maratea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mochi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Riccio</surname>
          </string-name>
          ,
          <article-title>CNL2ASP: converting controlled natural language sentences into ASP</article-title>
          , TPLP
          <volume>24</volume>
          (
          <year>2024</year>
          )
          <fpage>196</fpage>
          -
          <lpage>226</lpage>
          . URL: https://doi.org/10.1017/ s1471068423000388. doi:
          <volume>10</volume>
          .1017/S1471068423000388.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>P.</given-names>
            <surname>Cabalar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Morkisch</surname>
          </string-name>
          , T. Schaub, telingo = ASP + time, in
          <source>: Proc. of LPNMR</source>
          , volume
          <volume>11481</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2019</year>
          , pp.
          <fpage>256</fpage>
          -
          <lpage>269</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -20528-7_
          <fpage>19</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -20528-7\_
          <fpage>19</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>P.</given-names>
            <surname>Cabalar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schaub</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Schuhmann</surname>
          </string-name>
          ,
          <article-title>Temporal answer set programming on finite traces</article-title>
          ,
          <source>TPLP</source>
          <volume>18</volume>
          (
          <year>2018</year>
          )
          <fpage>406</fpage>
          -
          <lpage>420</lpage>
          . URL: https://doi.org/10.1017/S1471068418000297. doi:
          <volume>10</volume>
          .1017/ S1471068418000297.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kuhn</surname>
          </string-name>
          ,
          <article-title>A survey and classification of controlled natural languages</article-title>
          ,
          <source>Comput. Linguistics</source>
          <volume>40</volume>
          (
          <year>2014</year>
          )
          <fpage>121</fpage>
          -
          <lpage>170</lpage>
          . URL: https://doi.org/10.1162/COLI_a_00168. doi:
          <volume>10</volume>
          .1162/COLI\_A\_
          <volume>00168</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>R.</given-names>
            <surname>Schwitter</surname>
          </string-name>
          ,
          <article-title>Specifying and verbalising answer set programs in controlled natural language</article-title>
          ,
          <source>TPLP</source>
          <volume>18</volume>
          (
          <year>2018</year>
          )
          <fpage>691</fpage>
          -
          <lpage>705</lpage>
          . URL: https://doi.org/10.1017/S1471068418000327. doi:
          <volume>10</volume>
          .1017/ S1471068418000327.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>A.</given-names>
            <surname>Holt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Klein</surname>
          </string-name>
          ,
          <article-title>A semantically-derived subset of english for hardware verification</article-title>
          ,
          <source>in: Proc. of ACL</source>
          , ACL,
          <year>1999</year>
          , pp.
          <fpage>451</fpage>
          -
          <lpage>456</lpage>
          . URL: https://aclanthology.org/P99-1058/. doi:
          <volume>10</volume>
          .3115/1034678. 1034747.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>M.</given-names>
            <surname>Esser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Struss</surname>
          </string-name>
          ,
          <article-title>Obtaining models for test generation from natural-language-like functional specifications</article-title>
          ,
          <source>in: Proc. of DX</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>75</fpage>
          -
          <lpage>82</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>M.</given-names>
            <surname>Borroto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Kareem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          ,
          <article-title>Towards automatic composition of ASP programs from natural language specifications</article-title>
          , Accepted at IJCAI https://doi.org/10.48550/arXiv.2403.04541 (
          <year>2024</year>
          ). URL: https://doi.org/10.48550/arXiv.2403.04541. doi:
          <volume>10</volume>
          .48550/ARXIV.2403.04541. arXiv:
          <volume>2403</volume>
          .
          <fpage>04541</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>R.</given-names>
            <surname>Schwitter</surname>
          </string-name>
          ,
          <article-title>Working for two: A bidirectional grammar for a controlled natural language</article-title>
          ,
          <source>in: Proc. of AJCAI</source>
          , volume
          <volume>5360</volume>
          <source>of LNCS</source>
          , Springer,
          <year>2008</year>
          , pp.
          <fpage>168</fpage>
          -
          <lpage>179</lpage>
          . URL: https://doi.org/10.1007/ 978-3-
          <fpage>540</fpage>
          -89378-3_
          <fpage>17</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -89378-3\_
          <fpage>17</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>R.</given-names>
            <surname>Schwitter</surname>
          </string-name>
          ,
          <article-title>Specifying events and their efects in controlled natural language</article-title>
          ,
          <source>Procedia - Social and Behavioral Sciences</source>
          <volume>27</volume>
          (
          <year>2011</year>
          )
          <fpage>12</fpage>
          -
          <lpage>21</lpage>
          . URL: https://www.sciencedirect.com/science/article/ pii/S1877042811024050. doi:https://doi.org/10.1016/j.sbspro.
          <year>2011</year>
          .
          <volume>10</volume>
          .578,
          <string-name>
            <surname>computational</surname>
            <given-names>Linguistics</given-names>
          </string-name>
          and Related Fields.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>