<!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>Conversational Recommendations Using Model-based Reasoning</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Oliver A. Tazl</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexander Perko</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Franz Wotawa</string-name>
          <email>wotawag@ist.tugraz.at</email>
        </contrib>
      </contrib-group>
      <abstract>
        <p>Chatbots as conversational recommender have gained increasing importance over the years. The chatbot market offers a variety of applications for research and industry alike. In this paper, we discuss an implementation that supports the use of our recommendation algorithm during chatbot communication. The program eases communication and improves the underlying recommendation flow. In particular, the implementation makes use of our model-based reasoning approach for improving user experience during a chat, i.e., in cases where user configurations cause inconsistencies. The approach deals with such issues by removing inconsistencies in order to generate a valid recommendation. In addition to the underlying definitions, we demonstrate our implementation along use cases from the tourism domain.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>Recommender systems aim to lead users in a helpful and
individualized way to interesting or useful items drawn from a large space
of possible options. Recommender systems may utilize
knowledgebases for guiding the users through the whole process of finding the
right recommendation, i.e., a recommendation that satisfies the user’s
requirements, needs, or expectations. Most recently, conversational
agents like chatbots have gained importance because of the fact that
they – in principle – offer a well-known and ideally more intuitive
interface for human users, i.e., either textual or speech interaction.</p>
      <p>
        In previous work [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] we introduced the basic foundations and
principles behind a chatbot-based recommender system that allows
to interact with users in a smart way being capable of finding
contradictions during observation and efficiently pruning the overall
recommendation process via selecting the right questions to be asked
to the user. The basic principles behind our approach rely on
classical model-based reasoning. In case, the conversation leads to an
inconsistent state, e.g., caused by contradictions between user
requirements and the recommendation knowledge-base, the chatbot is able
to react and to resolve this issue. For this purpose, the chatbot asks
the user which requirements to retract in order to eliminate
inconsistencies. In the case where the chatbot has far to many solutions
to be presented effectively to the user, the system makes use of an
entropy-based approach for selecting those requirements or attributes
that have to be fixed in order to reduce the number of possible
solutions. When using entropy the number of steps necessary to reach to
a solution can be substantially reduced.
      </p>
      <p>This paper is a direct successor of our previous work, where we
report on an implementation of our chatbot approach. In particular,
we discuss the implementation details, present experiences gained,
and finally introduce the results of an evaluation of the
implementation. The evaluation is based on a case study from the tourism
domain, i.e., a scenario where a user wants to book a hotel in a certain
city. The obtained results show that the proposed chatbot approach is
applicable and beneficial for the intended purpose. Furthermore, we
gained experiences about the limitations of the approach. For
example, it seems that entropy is not always the best measure for selecting
questions to be answered, and further research is needed.</p>
      <p>The main contributions of this paper can be summarized as the
follows:
1. An implementation of an algorithm that is based on model-based
diagnosis and Shannon’s information entropy to solve
recommendation problems and
2. the evaluation of the system with synthetic and real-world data
sets.</p>
      <p>The remainder of this paper is organized as follows: In the next
section we give an overview of our algorithmic approach.
Afterwards, we present the implementation of the algorithms and show
evaluation results in greater detail. Finally, we discuss related
research and conclude the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>FOUNDATIONS AND ALGORITHM</title>
      <p>
        In our previous work [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], we introduced the algorithm EntRecom,
which utilizes model-based diagnosis and in particular the ConDiag
algorithm [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], and on a method that applies Shannon’s information
entropy [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. To be self-contained, we briefly recapitulate the
underlying definitions and EntRecom. We first formalize the inconsistent
requirements problem by exploiting the concepts of Model-Based
Diagnosis (MBD) [
        <xref ref-type="bibr" rid="ref1 ref20">1, 20</xref>
        ] and constraint solving [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>The inconsistent requirements problem requires information on
the item catalog (i.e., the knowledge-base of the recommendation
system) and the current customer’s requirements. Note that the
knowledge-base of the recommender may be consistent with the
customer’s requirements (i.e., the customer’s query) and an appropriate
number of recommendations can be offered. In this case, the
recommendation system shows the recommendations to the customer and
no further algorithms have to be applied. Otherwise, if no solutions
to the recommendation problem are available, then the minimal set
of requirements, which determined the inconsistency with the
knowledge base, have to be identified and consequently offered to the user
as explanation for not finding any recommendation. The user can in
this case adapt the requirement(s) (relax it/them). Here we borrow the
idea from MBD and introduce abnormal modes for the given
requirements, i.e., we use Ab predicates stating whether a requirement i is
should be assumed valid (:Abi) or not (Abi) in a particular context.</p>
      <p>Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
The Ab values for the requirements are set by the model-based
diagnosis algorithm so that the assumptions together with the
requirements and the knowledge-base are consistent. In the following, we
define the inconsistent requirements problem and its solutions.</p>
      <p>More formally, we stating the inconsistent requirements problem
as follows:
Definition 1 (Inconsistent Requirements Problem). Given a tuple
(KB; REQ) where KB denotes the knowledge base of the
recommender system, i.e., the item catalog, and REQ denotes the
customer requirements. The Inconsistent Requirements Problem arises
when KB together with REQ is inconsistent. In this case we are
interested in identifying those requirements that are responsible for
the inconsistency.</p>
      <p>
        A solution or explanation to the inconsistent requirements
problem can be easily formalized using the analogy with the definition of
diagnosis from Reiter [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. We first introduce a modified
representation of (KB; REQ) comprising (KBD; REQ) where KBD
comprises KB together with rules of the form AbR for each requirement
R in REQ. The solution to the Inconsistent Requirements Problem
can now be defined using the modified representation as follows:
Definition 2 (Inconsistent Requirements). Given a modified
recommendation model (KBD; REQ). A subset REQ is a valid set
of inconsistent requirements iff KBD [ f:AbRjR 2 REQ n g [
fAbRjR 2 g is satisfiable.
      </p>
      <p>A set of inconsistent requirements is minimal iff no other set
of inconsistent requirements 0 exists. A set of inconsistent
requirements is minimal with respect to cardinality iff no other set
of inconsistent requirements 0 with j 0j &lt; j j exists. From here
on we assume minimal cardinality sets when using the term minimal
sets.</p>
      <p>The second problem occurring during a recommendation session
is the availability of too large number of recommendations, which
have to be narrowed down to a reasonable number. The too many
recommendation problem can be solved again using ideas
borrowed from model-based diagnosis. In diagnosis, we have the similar
problem of coming up with too many diagnoses because of too less
observations known. The corresponding problem in case of
recommendation is that we do have far too less requirements from the user.</p>
      <p>
        Hence, we have to ask the user about adding more information in
order to reduce the number of available solutions. In model-based
diagnosis Shannon’s information entropy [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] is used to come up
with observations and in our case requirements that should be known
in order to reduce the recommendations as fast as possible.
      </p>
      <p>Algorithm 1 provides recommendations in the context of chatbots
making use of diagnosis and Shannon’s information entropy
computation. EntRecom converts the available knowledge into a
corresponding constraint model and checks its consistency. If the
knowledge is inconsistent, the algorithm tries to find a requirements that
can be retracted by the user in order to get rid of the inconsistency.</p>
      <p>Afterwards, EntRecom searches for the best requirement to be set by
the user in order to reduce the number of solutions if necessary. The
algorithm stops when reaching a set of recommendations that has a
cardinality of less than n.</p>
      <p>With the provide algorithms a chatbot for recommendations can
be build that is able to deal with inconsistent requirements as well as
missing requirements in a more or less straightforward way making
use of previously invented algorithms.</p>
      <p>Algorithm 1 EntRecom(KBD; REQ; n)
Input: A modified knowledge base KBD, a set of customer
requirements REQ and the maximum number of recommendations
n
Output: All recommendations S
1: Generate the constraint model CM from KBD and REQ
2: Call CSolver(CM ) to check consistency and store the result</p>
      <p>in S
3: if S = ; then
4: Call MI REQ(CM; jREQj) and store the inconsistent
re</p>
      <p>quirements in IncReqs
5: Call askUser(IncReqs) and store the answer in</p>
      <p>AdaptedReqs
6: CM = KB [ (REQ n IncReqs [ AdaptedReqs)
7: go to Step 2
8: end if
9: while jSj &gt; n do
10: Call GetBestEntrAttr(AS ) and store the result in a
11: AS = AS n a
12: Call askUser(a) and store the answer in va
13: S = R (S; va))
14: end while
15: return S
3</p>
    </sec>
    <sec id="sec-3">
      <title>IMPLEMENTATION AND EVALUATION</title>
      <p>For the user, the interaction with the recommender system within
the chatbot starts, when he or she formulates a query for a search
within the domain. The natural language processing framework
Rasa2 parses this query and passes it on to the EntRecom-algorithm.
The recommender algorithm then searches a previously conducted
and preprocessed knowledge base. Depending on the satisfiability of
the generated constraint model, results are presented to the user. If
necessary the user is asked follow up questions regarding his or her
requirements until we have results to return to the user.</p>
      <p>When the query can be answered, EntRecom exits and the user
can continue interacting with the Rasa-based chatbot.</p>
      <p>As mentioned before, we choose a tourism domain, searching for
a hotel to be more specific. The process of searching a hotel in an
iterative conversation helps us to see the capabilities and shortcomings
of the algorithm.</p>
      <sec id="sec-3-1">
        <title>2 see https://rasa.com/</title>
        <p>For our tests, we chose the community-curated data from Open Street
Maps (OSM). We use the python bindings for Microsofts’ Z3
framework as a constraint solver. For language processing and basic
interaction with the user, we utilize the Rasa framework. Rasa is used for
natural language understanding by extrating the users’ intend and
requirements but can also respond immediatly with an answer (without
calling EntRecom) when it detects the users’ intend to chitchat.</p>
        <p>In a first step, we query the OSM-API for hotels in a predefined
region. The size of the region is a major factor for performance.
Because of this, it is reasonable to let the user select a region on
initialization.</p>
        <p>To conduct our internal knowledge base, we process the exported
data set in the following way: As some attributes do not add
humanreadable information or tend to mislead users, we have to filter them
out. This is especially necessary because some classes of attributes
have a severe impact on later steps in our recommender system. For
example, categories like ”fixme” (annotation from an OSM user)
would give the user no advantage in a real-world scenario and in this
case, would lead to unwanted recommendations. We use a
whitelistfilter for the attributes of every entry in the data set. Furthermore, not
every entry in the OSM data has the same fields, why we maintain a
list of all attributes in a data set. If an entry does not include a
certain attribute, we add it with a value of False. This leaves us with a
”normalized” data set.</p>
        <p>After our preprocessing step, every entry in the dictionary has
the same number of attributes we add uniform clauses to our
constraint model. An exemplary normalized clause looks like this:
(amenity = "none" ^ addr : city = "Graz" ^ name =
"P arkhotelGraz" ^ cuisine = "none" ^ : : : ^ smoking =
"isolated" ^ wheelchair = "limited" ^ swimming pool =
"none" ^ stars = "4" ^ tourism = "hotel"). Regarding data
types, we choose between two different approaches, when creating
the Z3 constraint model. The first one being data type selection for
every attribute in the domain and the second one being string
translation for every value, regardless of the specific class of an attribute.
In our implementation, every attribute and value is translated to a
Z3 string. While this may result in slower runtimes, we ensure
flexibility, as data types may vary across attributes. Usually, the user is
asked to select a region of interest. For our tests, we use a data set
of a specific size. This is a very critical and, depending of the size
of the test set, time consuming step. Therefore, we try to do it only
once when the user initially specifies an area. This Z3 constraint
model, consisting of OR-connected uniform clauses of Z3 strings is
our main knwoledge base within EntRecom and shall be refered to
as kb and subsets therof as S in the remainder of this paper.</p>
        <p>The first interaction the user has with our chatbot
implementation is handled via the trained natural language understanding (NLU)
model within Rasa. If the user’s intent to search within the domain
”hotels”, our recommender is called via a webhook, and the
parameters are passed over. This call to our internal API is the only
interaction between EntRecom and the chatbot framework, Rasa, in our
case, which leads to very low coupling and a high degree of
flexibility. The parameters represent the NLUs interpretation of the users’
query and give us our initial set of requirements.
3.2</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Recommender Algorithm</title>
      <p>In this section, we are describing the implementation of the
previously introduced algorithm EntRecom.</p>
      <p>Before the algorithm ready to use, we have to prepare our data set,
generate the constraint model and interpret the user’s intent. Then
we enter the EntRecom-implementation. As described before, if the
query is satisfiable for our knowledge base and the given maximum
number of results, we return our recommendations and exit
EntRecom.A maximum of n hotels is presented to the user, we retrieved
from the knowledge base, with n representing a preselected
maximum number of results.</p>
      <p>
        Though, as stated in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], we are confronted with two potential
problems at this point. Given a knowledge base kb, a maximum
number of results n and a user-defined set of requirements REQ:
We could get too many results to present in a meaningful way. In
this case, the function GetBestEntrAttr is called.
      </p>
      <p>We could get no results at all. In this scenario, we call the function
M iREQ.
3.2.1</p>
      <sec id="sec-4-1">
        <title>GetBestEntrAttr</title>
        <p>
          This part of the algorithm is called, when the query is satisfiable, but
the result does not lie within [n]. Therefore, we have to add further
constraints to our model. Because we want to occupy as little of the
user’s time as possible, we have to efficiently select additional
constraints. This is done by choosing a category out of the domain which
best splits the current subset S of the data set. The criterion for our
selection is Shannon’s information entropy [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]:
        </p>
        <p>H(X) =</p>
        <p>X P (xi)log(P (xi))</p>
        <p>i</p>
        <p>To apply entropy as a measure, we have to restructure the
data slightly. AS represents this restructured version of S, which
maps every attribute in the domain to all values of its
occurrences in S. This is realized with python dictionaries of the form:
"attribute1" : ["value1"; "value2"]; "attribute2" : ["value1"]; :::.
After computing the number of occurrences of every value for a
(a) SAT
(b) MiREQ
specific attribute, we now calculate the entropy, for every attribute.
The attribute with the highest entropy splits the data set S most
effectively. As mentioned above, some attributes may lead to
unwanted recommendations. One reason for this is the appearance of
seemingly random values when looked at them lacking context. This
could be attributes internally used within OSM, for instance. Fields
like ”source” often have seemingly random values like ”survey” or
”Kleine Zeitung”. The same pseudo-randomness can be observed
with attributes like ”housenumber” which can take an arbitrary
integer value. Those values appear in many data points and, when
observed isolated, do not contribute any information with regard
to splitting the data set. When computing the information entropy
based on attributes lacking spatial ordering or clustering properties,
we are not dividing the data set strategically but randomly. This is
why we chose to exclude them from our knowledge base beforehand.
If several attributes occur with equal entropies in the data set, we
can randomly select one of these categories, as all of them split the
data equally well. In the last step, the user is asked for selecting one
value for this category. The user’s selection is added to the set of
requirements and EntRecom gets called again.
3.2.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>M iREQ</title>
        <p>
          This part of the algorithm is called, when the query is not satisfiable
for our knowledge base KB with the user-defined set of
requirements REQ. Following [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], we state the Inconsistent Requirements
Problem. As a counter measurement to the Inconsistent Requirement
Problem, we have to soften the query to get results. To achieve this,
we have to find inconsistencies in REQ, being a subset thereof. 8
inconsistent subsets , KB [f:AbR j R 2 REQ n g[fAbRjR 2
g is satisfiable, with AB being a Boolean variable for selecting
and deselecting a requirement R to be considered [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] This, we
implemented by checking on models with combinatoric variations of
subsets of REQ. This means, that we evaluate a constraint model
consisting of our knowledge base and requirements with varying
values for AB. Given the cardinality of , we iterate over all possible
distributions of AB with jREQj j j considered requirements.
Because we want to preserve as much of the user’s initial query as
possible, we want to find a minimal set of inconsistent constraints. As
proposed in [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], to find such a minimal set of inconsistencies, we
have to obtain a constraint model that is satisfiable for the smallest
cardinality of possible. For this, we repeat the process of
checking on combinatoric variations of subsets, with increasing numbers
of assumed inconsistencies, starting with one. This we do until we
reach jREQj, in which case there are no consistent requirements.
When a satisfiable constraint model is found, we are able to retrieve
all inconsistent requirements in the form of all unconsidered
requirements. With this subset of REQ, we return from M iREQ. After the
M iREQ-function returns, we ask the user for his or her preference
for dropping one of his or her previously defined requirements within
the minimal set of inconsistencies. While the current
implementations assure us to find minimal sets of inconsistent requirements, in
future implementations, we hope to be able to make use of the
unsatcore functionality of Z3 for this task. This is expected to significantly
improve performance.
3.3
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Evaluation</title>
      <p>
        We developed our tests concentrating on the algorithm itself and the
data structures needed for execution. The data preprocessing was not
in the focus of this test. For our tests with synthetic test data this is
especially true, as they use a adapted version of EntRecom without
user interaction, as depicted in Figure 5. The goal of our experiments
is to show potentials for optimizations of the implementation, as well
as proofing the versatility of the algorithm proposed in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>In our tests, we used both, synthetic and real-world data. For
benchmarking and basic experiments, we mainly used synthesized
data, while real-world data, specifically from Open Street Maps is
h) Ranges (e.g. distance-to-the-center, price-category)
ad a) Boolean values appear often in real-world data and are easy to
process. This class represents attributes like internet-access or
payment-credit-card in the domain tourism and esp or abs in the
automotive domain.
ad b) Arbitrary integer values appear often as counter variables like
vis</p>
      <p>itors, likes or 5-star-reviews
ad c) Floating-point numbers occur within both domains, tourism, and</p>
      <p>cars in various forms. This class covers all attributes in the context
Figure 5: Focus of Tests with Synthetic Data of distance, like distance-to-the-center for a hotel or mileage for
a car. It also stands for location attributes given in coordinates
important to ensure the flexibility and robustness of the implementa- (longitude, latitude) and mean values like user-rating.
tion in real-world scenarios. ad d) Strings are very versatile and therefore used in many ways in
different sources. In many cases, strings contain informational value
3.3.1 Real-World Test Data beyond what a number may cover. But often strings are used in
places, where the informative content is not higher than
numberAs described before, we use data from Open Street Maps for our valued attributes and could be represented with Boolean values or
tests. First, we want to observe, how the algorithm copes on real- numbers instead. This is true for several classes of attributes like
world data and which degree of data preprocessing and filtering of stars with values of ”4-star”.
the data is necessary. Furthermore, we developed the rules for gener- ad e) The name attribute is always a string and does not have to but is
ating our synthetic test data based on the exported data from OSM. likely to include a domain-specific term in its value. For hotels,</p>
      <p>For this part of our evaluation, we empirically tested the algorithm this would be ”Hotel” or a synonym thereof. Because of these
refor usable results as well as automated tests for exhaustive testing on curring terms and the omnipresence over all domain-specific data
the data. sources, we treat this attribute separately from the more general
string class. When generating data sets, we introduce these terms
3.3.2 Synthetic Test Data into our samples regularly.</p>
      <p>ad f) Fields like city or manufacturer contain frequently reappearing
Our modus operandi for generating and conducting tests with syn- values, which makes it special regarding information entropy and
thetic data can be described as follows: therefore interesting to us.</p>
      <p>ad g) Stars of a hotel can be represented with 1 to 5, which makes a
1.) Definition of attribute classes and generation of data sets reappearance in this category very probable.
2.) Definition of requirement sets and classifying them within a test- ad h) As we want to simplify the selection process, we reduce the date
ing matrix to the year. This results in an integer value often constrained by an
3.) Performing speed tests following the testing matrix upper boundary being the current year and a case dependent lower</p>
      <p>To evaluate our results for the performance test, we order tests boundary. Depending on the specific attribute, these values may
within a three-dimensional testing matrix. The first axis of this ma- recur frequently.
trix represents the size of the test set. The second axis represents the ad i) Ranges are special because they consist not only of one, but two
number of attributes and the last axis represents the number of al- boundary values. For simplification reasons, we categorize ranges
lowed results n. The value at every position in the matrix represents within the relative classes: low, med and high. Of course, these
the called subfunction within our recommender algorithm. range classes are also very likely to reoccur.</p>
      <p>We randomly generated data sets of different sizes and with
different numbers of attributes for our performance tests. Because data Our synthetic data is randomly generated with respect to those
within the domains ”hotels” and ”cars”, have several distinct proper- classes of attributes and with varying occurrences of the different
ties, we set up our test data following certain rules. To achieve this, types.
we categorized the attributes dependent on the data type of their
corresponding values. Furthermore, we added complementary classes 3.4 Results
based on certain characteristics of the domain.</p>
      <p>This results in the following basic classes of attributes based on
their data type:</p>
      <sec id="sec-5-1">
        <title>a) Boolean values b) Integer values c) Float values d) String values</title>
      </sec>
      <sec id="sec-5-2">
        <title>Additionally, we added the following supplementary classes:</title>
      </sec>
      <sec id="sec-5-3">
        <title>e) Often reappearing parts in string values (e.g. names) f) Frequently recurring string values (e.g. city, manufacturer) g) Restricted numbers (e.g. star-rating, number of seats) h) Dates (e.g. registration date)</title>
        <p>The results are splited in two parts. First, we discuss the results of
the synthetic data, followed by the proof of concept results with
realworld data.</p>
        <p>Using the synthetic data, we define sets of requirements to test
the algorithm on. These sets belong to one of the following classes
relative to the knowledge base e.g. the test data and the given n, they
are tested with:
i) Satisfiable with n or less results. This leads to a direct return from
the EntRecom-algorithm, presenting us the results S the
constraint solver found.
ii) Satisfiable with more than n results. In this case, we have to call
GetBestEntrAttr, which calculates entropies for all attributes.
Another interaction with the algorithm is needed, as we have to
select a value for the attribute with the highest informational
content.
iii) Not satisfiable. In this case, we have to call M iREQ which
iteratively chooses subsets of REQ until it finds the largest satisfiable
subset. Its complement is the set of inconsistent requirements s.
Again, another interaction through AskU ser is necessary. Now
we have to select a requirement out of s we want to keep in REQ
the other constraints are dropped.</p>
        <p>To classify the requirement sets for every test set according to the
three classes from above, we use an adapted version of EntRecom,
which does not return results or perform any recursive calls. The
purpose of this classification is, to be able to identify test results with
regard to the sub-functions called within EntRecom. The class of
REQ - either i, ii, or iii - for a certain test configuration represents
the value of the three-dimensional testing matrix.</p>
        <p>After classification, we perform our tests on the generated data.
A typical test-scenario starts with the users first interaction with the
chatbot environment, which, in turn, results in setting up the
knowledge base. Regularly the user is asked to select a region of interest.
For our tests, we use a data set of a specific size. Then a set of
requirements and a maximum for the expected results are chosen. We
now perform a test for every class in the testing matrix and get results
in the form of execution times.</p>
        <p>For a fixed n of 5 and tests performed with one to five
requirements in the sets, we plot the function calls of M iREQ and
GetBestEntrAttr on increasingly sized test sets. In case, we
obtain a result for our query which lies within n, our constraint solver
CSolver is the only function call made.</p>
        <p>As you see, the function calls of M iREQ decrease, while the calls
of GetBestEntrAttr increase for larger test sets. While this basic
assumption holds for real data, the impact is not as drastic, as users
tend to perform queries with less than five requirements initially.</p>
        <p>The algorithm was also used with real-world data. Therefore, we
inserted the data from OSM into the knowledge base. We interact
with the textual chat-like web interface in the intended way and get
the correct results from the algorithm. The algorithm returned a result
set within a few iterations and these results fit to the user
specification.</p>
        <p>These experiments show also that there is a problem of relevance
of attributes. The attributes, which have a high entropy to reduce the
result set, are not nessesarily relevant for users. Our tests show that
i.e. the attribute wheelchair, which is part of accessibility, has a high
entropy but will not be interesting for a large amount of users. This
issue has to be addressed in an upcoming version of the algorithm.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>RELATED WORK</title>
      <p>
        The application of model-based reasoning, and especially
modelbased diagnosis, in the field of recommender systems is not novel.
For example, papers like [
        <xref ref-type="bibr" rid="ref11 ref19 ref4">4, 11, 19</xref>
        ] compute the minimal sets of
faulty requirements. These requirements should be changed in
order to find a solution. In these papers, the authors rely on the
existence of minimal conflict sets computing the diagnosis for
inconsistent requirements. Felfernig et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] present an algorithm that
calculates personalized repairs for inconsistent requirements. The
algorithm combines concepts of MBD with a collaborative problem
solving approach to improve the quality of repairs in terms of
prediction accuracy. In [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], the concept of representative explanations
is introduced. This concept follows the idea of generating diversity
in alternative diagnoses informally, constraints that occur in
conflicts should as well be included in diagnoses presented to the user.
Jannach [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] proposes to determine preferred conflicts ”on demand”
and use a general-purpose and fast conflict detection algorithm for
this task, instead of computing all minimal conflicts within the user
requirements in advance.
      </p>
      <p>
        Papers that deal with the integration of diagnosis and constraint
solving are [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and [
        <xref ref-type="bibr" rid="ref24 ref25">24, 25</xref>
        ], who proposed a diagnosis algorithm for
tree-structured models. The approach is generally applicable due to
the fact that all general constraint models can be converted into an
equivalent tree-structured model using decomposition methods, e.g.,
hyper tree decomposition [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ]. [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] provides more details regarding
the coupling of decomposition methods and the diagnosis algorithms
for tree-structured models. In addition to that, [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] generalized the
algorithms of [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] the authors also propose the use of
constraints for diagnosis where conflicts are used to drive the
computation. In [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], which is maybe the earliest work that describes the
use of constraints for diagnosis, the authors introduce the use of
constraints for computing conflicts under the correctness assumptions.
For this purpose they developed the concept of constraint
propagation. Despite of the fact that all of these algorithms use constraints for
modeling, they mainly focus on the integration of constraint solving
for conflict generation, which is different to our approach. For
presenting recommendation tasks as constraint satisfaction problem, we
refer to [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        Human-chatbot communication represents a broad domain. It
covers technical aspects as well as psychological and human
perspectives. Contributions like [
        <xref ref-type="bibr" rid="ref30 ref9">9, 30</xref>
        ] show several ways of implementing
chatbots in different domains. Wallace [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] demonstrates an artificial
intelligence robot based on a natural language interface (A.L.I.C.E.)
that extends ELIZA [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], which is based on an experiment of Alan
M. Turing in 1950 [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. This work describes how to create a robot
personality using AIML, an artificial intelligence modelling
language, to pretend intelligence and self-awareness.
      </p>
      <p>
        Sun et al. [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] introduced a conversational recommendation
system based on unsupervised learning techniques. The bot was trained
by successful order conversations between user and real human
agents.
      </p>
      <p>
        Papers like [
        <xref ref-type="bibr" rid="ref10 ref13 ref32 ref5">5, 10, 13, 32</xref>
        ] address the topics user acceptance and
experience. In [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] a pre-study shows that users infer the
authenticity of a chat agent by two different categories of cues: agent-related
cues and conversational-related cues. To get an optimal
conversational result, the bot should provide a human-like interaction.
Questions of conversational UX design raised by [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] demonstrate
the need to rethink user interaction at all.
      </p>
      <p>
        The topic of recommender systems with conversational interfaces
is shown in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], where an adaptive recommendation strategy was
shown based on reinforcement learning methods. In the paper [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ],
the authors proposed a deep reinforcment learning framework to
build personalized conversational recommendation agents. In this
work, a recommendation model trained from conversational sessions
and rankings is also presented.
5
      </p>
    </sec>
    <sec id="sec-7">
      <title>CONCLUSION AND FUTURE WORK</title>
      <p>In this paper, we showed an implementation and its evaluation of
EntRecomm, an algorithm using model-based diagnosis and Shanon’s
information entropy. In our tests, we used both, synthetic and
realworld data. For benchmarking and basic experiments, we mainly
used synthesized data, while real-world data, specifically from Open
Street Maps is important to ensure the flexibility and robustness of
the implementation in real-world scenarios. We also showed the
performance for different data sets and also revealed open issues, like
the relevance of chosen attributes, which is already a starting point
for future work. Another important step will be a user study to
evalute the acceptance of the algorithm.</p>
    </sec>
    <sec id="sec-8">
      <title>ACKNOWLEDGEMENTS</title>
      <p>Research presented in this paper was carried out as part of the
ASIT-IC project that is co-financed by the Cooperation Programme
Interreg V-A Slovenia-Austria 2014-2020, European Union, European
Regional Development Fund.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Johan de Kleer and Brian C. Williams</surname>
          </string-name>
          , '
          <article-title>Diagnosing multiple faults'</article-title>
          ,
          <source>Artificial Intelligence</source>
          ,
          <volume>32</volume>
          (
          <issue>1</issue>
          ),
          <fpage>97</fpage>
          -
          <lpage>130</lpage>
          , (
          <year>1987</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Rina</given-names>
            <surname>Dechter</surname>
          </string-name>
          , Constraint Processing, Morgan Kaufmann,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Yousri</given-names>
            <surname>El Fattah and Rina Dechter</surname>
          </string-name>
          , '
          <article-title>Diagnosing tree-decomposable circuits'</article-title>
          ,
          <source>in Proceedings 14th International Joint Conf. on Artificial Intelligence</source>
          , pp.
          <fpage>1742</fpage>
          -
          <lpage>1748</lpage>
          , (
          <year>1995</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Alexander</given-names>
            <surname>Felfernig</surname>
          </string-name>
          , Gerhard Friedrich, Monika Schubert, Monika Mandl, Markus Mairitsch, and Erich Teppan, '
          <article-title>Plausible repairs for inconsistent requirements</article-title>
          .',
          <source>in IJCAI International Joint Conference on Artificial Intelligence</source>
          , pp.
          <fpage>791</fpage>
          -
          <lpage>796</lpage>
          , (01
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Asbjørn</given-names>
            <surname>Følstad</surname>
          </string-name>
          and Petter Bae Brandtzaeg, '
          <article-title>Chatbots and the new world of hci'</article-title>
          , interactions,
          <volume>24</volume>
          (
          <issue>4</issue>
          ),
          <fpage>38</fpage>
          -
          <lpage>42</lpage>
          , (
          <year>June 2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Hector</given-names>
            <surname>Geffner</surname>
          </string-name>
          and
          <string-name>
            <given-names>Judea</given-names>
            <surname>Pearl</surname>
          </string-name>
          , '
          <article-title>An Improved Constraint-Propagation Algorithm for Diagnosis'</article-title>
          ,
          <source>in Proceedings 10th International Joint Conf. on Artificial Intelligence</source>
          , pp.
          <fpage>1105</fpage>
          -
          <lpage>1111</lpage>
          , (
          <year>1987</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Georg</given-names>
            <surname>Gottlob</surname>
          </string-name>
          , Nicola Leone, and Francesco Scarcello, '
          <article-title>Hypertree Decomposition and Tractable Queries'</article-title>
          ,
          <source>in Proc. 18th ACM SIGACT SIGMOD SIGART Symposium on Principles of Database Systems (PODS99)</source>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>32</lpage>
          , Philadelphia, PA, (
          <year>1999</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Georg</given-names>
            <surname>Gottlob</surname>
          </string-name>
          , Nicola Leone, and Francesco Scarcello, '
          <article-title>A comparison of structural CSP decomposition methods'</article-title>
          ,
          <source>Artificial Intelligence</source>
          ,
          <volume>124</volume>
          (
          <issue>2</issue>
          ),
          <fpage>243</fpage>
          -
          <lpage>282</lpage>
          , (
          <year>December 2000</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>B.</given-names>
            <surname>Graf</surname>
          </string-name>
          , M. Kru¨ger,
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>Mu¨ller, A. Ruhland, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Zech</surname>
          </string-name>
          , 'Nombot - simplify
          <source>food tracking'</source>
          , volume
          <volume>30</volume>
          -November-2015, pp.
          <fpage>360</fpage>
          -
          <lpage>363</lpage>
          , (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Jennifer</given-names>
            <surname>Hill</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. Randolph</given-names>
            <surname>Ford</surname>
          </string-name>
          , and Ingrid G. Farreras, '
          <article-title>Real conversations with artificial intelligence: A comparison between humanhuman online conversations and human-chatbot conversations'</article-title>
          ,
          <source>Computers in Human Behavior</source>
          ,
          <volume>49</volume>
          ,
          <fpage>245</fpage>
          -
          <lpage>250</lpage>
          , (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Dietmar</surname>
            <given-names>Jannach</given-names>
          </string-name>
          , '
          <article-title>Finding preferred query relaxations in content-based recommenders'</article-title>
          ,
          <source>IEEE Intelligent Systems</source>
          ,
          <volume>109</volume>
          ,
          <fpage>81</fpage>
          -
          <lpage>97</lpage>
          , (04
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Dietmar</surname>
            <given-names>Jannach</given-names>
          </string-name>
          , Markus Zanker, and Matthias Fuchs, '
          <article-title>Constraintbased recommendation in tourism: A multiperspective case study'</article-title>
          ,
          <source>Journal of IT and Tourism</source>
          ,
          <volume>11</volume>
          ,
          <fpage>139</fpage>
          -
          <lpage>155</lpage>
          , (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Khanna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kumar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Pandey</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Jha</surname>
          </string-name>
          , '
          <article-title>Anatomy and utilities of an artificial intelligence conversational entity'</article-title>
          , pp.
          <fpage>594</fpage>
          -
          <lpage>597</lpage>
          , (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Tariq</surname>
            <given-names>Mahmood</given-names>
          </string-name>
          , Francesco Ricci, and Adriano Venturini, '
          <article-title>Learning adaptive recommendation strategies for online travel planning'</article-title>
          ,
          <source>Information and Communication Technologies in Tourism</source>
          <year>2009</year>
          ,
          <fpage>149</fpage>
          -
          <lpage>160</lpage>
          , (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Jakob</given-names>
            <surname>Mauss</surname>
          </string-name>
          and Martin Sachenbacher, '
          <article-title>Conflict-driven diagnosis using relational aggregations'</article-title>
          ,
          <source>in Working Papers of the 10th International Workshop on Principles of Diagnosis (DX-99)</source>
          , Loch Awe, Scotland, (
          <year>1999</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.J.</given-names>
            <surname>Moore</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Arar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.-J.</given-names>
            <surname>Ren</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.H.</given-names>
            <surname>Szymanski</surname>
          </string-name>
          , '
          <article-title>Conversational ux design'</article-title>
          ,
          <source>volume Part F127655</source>
          , pp.
          <fpage>492</fpage>
          -
          <lpage>497</lpage>
          , (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Iulia</surname>
            <given-names>Nica</given-names>
          </string-name>
          , Oliver A.
          <string-name>
            <surname>Tazl</surname>
          </string-name>
          , and Franz Wotawa, '
          <article-title>Chatbot-based tourist recommendations using model-based reasoning'</article-title>
          , in
          <string-name>
            <surname>ConfWS</surname>
          </string-name>
          , (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Iulia</given-names>
            <surname>Nica</surname>
          </string-name>
          and Franz Wotawa, '
          <article-title>Condiag - computing minimal diagnoses using a constraint solver'</article-title>
          , (
          <year>2012</year>
          ). International Workshop on Principles of Diagnosis ; Conference date:
          <fpage>31</fpage>
          -
          <lpage>07</lpage>
          -2012 Through 03-
          <fpage>08</fpage>
          -
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Barry O'Sullivan</surname>
            ,
            <given-names>Alexandre</given-names>
          </string-name>
          <string-name>
            <surname>Papadopoulos</surname>
          </string-name>
          , Boi Faltings, and Pearl Pu, '
          <article-title>Representative explanations for over-constrained problems', 1</article-title>
          , (07
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Raymond</surname>
            <given-names>Reiter</given-names>
          </string-name>
          , '
          <article-title>A theory of diagnosis from first principles'</article-title>
          ,
          <source>Artificial Intelligence</source>
          ,
          <volume>32</volume>
          (
          <issue>1</issue>
          ),
          <fpage>57</fpage>
          -
          <lpage>95</lpage>
          , (
          <year>1987</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>Martin</given-names>
            <surname>Sachenbacher and Brian C. Williams</surname>
          </string-name>
          , '
          <article-title>Diagnosis as semiringbased constraint optimization'</article-title>
          ,
          <source>in European Conference on Artificial Intelligence</source>
          , pp.
          <fpage>873</fpage>
          -
          <lpage>877</lpage>
          , (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>C. E.</given-names>
            <surname>Shannon</surname>
          </string-name>
          , 'A Mathematical Theory of Communication',
          <source>The Bell System Technical Journal</source>
          ,
          <volume>27</volume>
          (
          <issue>3</issue>
          ),
          <fpage>379</fpage>
          -
          <lpage>423</lpage>
          , (
          <year>1948</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>C. E.</given-names>
            <surname>Shannon</surname>
          </string-name>
          , '
          <article-title>A mathematical theory of communication'</article-title>
          ,
          <source>Bell System Technical Journal</source>
          ,
          <volume>27</volume>
          ,
          <fpage>379</fpage>
          -
          <lpage>623</lpage>
          , (
          <year>1948</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>Markus</given-names>
            <surname>Stumptner</surname>
          </string-name>
          and Franz Wotawa, '
          <article-title>Diagnosing Tree-Structured Systems'</article-title>
          ,
          <source>in Proceedings 15th International Joint Conf. on Artificial Intelligence</source>
          , Nagoya, Japan, (
          <year>1997</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>Markus</given-names>
            <surname>Stumptner</surname>
          </string-name>
          and Franz Wotawa, '
          <article-title>Diagnosing tree-structured systems'</article-title>
          ,
          <source>Artificial Intelligence</source>
          ,
          <volume>127</volume>
          (
          <issue>1</issue>
          ),
          <fpage>1</fpage>
          -
          <lpage>29</lpage>
          , (
          <year>2001</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>Markus</given-names>
            <surname>Stumptner</surname>
          </string-name>
          and Franz Wotawa, '
          <article-title>Coupling CSP decomposition methods and diagnosis algorithms for tree-structured systems'</article-title>
          ,
          <source>in Proceedings of the 18th International Joint Conference on Artificial Intelligence (IJCAI-03)</source>
          , pp.
          <fpage>388</fpage>
          -
          <lpage>393</lpage>
          , Acapulco, Mexico, (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Jin</surname>
          </string-name>
          , '
          <article-title>Conversational recommendation system with unsupervised learning'</article-title>
          , pp.
          <fpage>397</fpage>
          -
          <lpage>398</lpage>
          , (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>Yueming</given-names>
            <surname>Sun</surname>
          </string-name>
          and Yi Zhang, '
          <article-title>Conversational recommender system'</article-title>
          ,
          <source>in The 41st International ACM SIGIR Conference on Research &amp;#38; Development in Information Retrieval, SIGIR '18</source>
          , pp.
          <fpage>235</fpage>
          -
          <lpage>244</lpage>
          , New York, NY, USA, (
          <year>2018</year>
          ). ACM.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>Alan</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Turing</surname>
          </string-name>
          ,
          <source>Computing Machinery and Intelligence</source>
          ,
          <fpage>23</fpage>
          -
          <lpage>65</lpage>
          , Springer Netherlands, Dordrecht,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>R.S.</given-names>
            <surname>Wallace</surname>
          </string-name>
          ,
          <article-title>The anatomy of</article-title>
          <string-name>
            <surname>A.L.I.C.E.</surname>
          </string-name>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>J.</given-names>
            <surname>Weizenbaum</surname>
          </string-name>
          , '
          <article-title>Eliza-a computer program for the study of natural language communication between man and machine'</article-title>
          ,
          <source>Communications of the ACM</source>
          ,
          <volume>9</volume>
          (
          <issue>1</issue>
          ),
          <fpage>36</fpage>
          -
          <lpage>45</lpage>
          , (
          <year>1966</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>N.V.</given-names>
            <surname>Wu</surname>
          </string-name>
          <article-title>¨nderlich and S. Paluch, 'A nice and friendly chat with a bot: User perceptions of ai-based service agents', (</article-title>
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>