<!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>A Question Answering System For Interacting with SDMX Databases</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Guillaume Thiry</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ioana Manolescu</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Leo Liberti</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institut Polytechnique de Paris</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Among existing sources of Open Data, statistical databases published by national and international organizations such as the International Monetary Fund, the United Nations, OECD etc. stand out for their high quality and valuable insights. However, technical means to interact easily with such sources are currently lacking. This article presents an e ort to build an interactive Question Answering system for accessing statistical databases structured according to the SDMX (Statistical Data and Metadata Exchange) standard promoted by the abovementioned institutions. We describe the system architectures, its main technical choices, and present a preliminary evaluation. The system is available online.</p>
      </abstract>
      <kwd-group>
        <kwd>statistical databases</kwd>
        <kwd>Question Answering</kwd>
        <kwd>SDMX</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Open Data has the potential of enabling societal changes of signi cant impact.
On the one hand, the availability of data allows the creation of innovative
products and applications. On the other hand, data that documents various aspects
of a societal functioning is a crucial ingredient for its self-understanding, and it
enables citizens to make informed choices, from personal consumer decisions to
voting in elections. Such statistical databases are also valuable as references to
be used in fact-checking [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Indeed, claims about statistical quantities such as
unemployment or immigration gures are a hot topic of political debate in many
countries.
      </p>
      <p>Statistical databases published by national and international institutions
such as the United Nations (UN), the Organisation for Economic Co-operation
and Development (OECD), the International Monetary Fund (IMF), EuroStat,
etc. stand out among Open Data sources for the quality and
comprehensiveness of their data, gathered at a signi cant expense of quali ed personnel and
carefully curated, structured and organized. To enable interoperability among
their data sources, these and other organizations have established a standard
Copyright c 2020 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).</p>
      <sec id="sec-1-1">
        <title>SDMX Metadata</title>
      </sec>
      <sec id="sec-1-2">
        <title>SDMX Data</title>
        <p>Description of each
cell of the dataset
(dimensions + value)</p>
        <p>Data Structure Definition</p>
        <p>List of the dimensions and
the attributes of the table
Dimension 1</p>
        <p>...</p>
        <p>Concept Codelist</p>
        <p>Dataflow</p>
        <p>Constraints
Accepted values for
each dimension</p>
        <p>Categorisation</p>
        <p>Category
Schemes</p>
        <p>
          Fig. 1. SDMX data organisation.
for describing their statistical data, named SDMX (Statistical Data and
Metadata eXchange) [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. The standard speci cation describes the various elements
involved in specifying the (mostly numerical) data, and in describing it
according to the relevant dimensions. Several institutions have adopted the standard,
and published Web sites online with data sheets together with textual
descriptions and sometimes automated visualization means for human users to interact
with the data. As an example on which we build our presentation, we used the
data and metadata provided by OECD, our partner, through its Web Service:
http://de-staging-oecd.redpelicans.com/.
        </p>
        <p>As this example shows, currently, interaction with an SDMX dataset takes
the following form. (i) Users locate one or more pages on the Internet hosting
the dataset(s) they are interested in; (ii) Users read the descriptions to check the
expected content and semantics; (iii) they visualize the numerical data, possibly
with the help of the visualization tools included in the pages.</p>
        <p>Discussions with OECD experts working on Smart Data Practices and
Solutions highlighted that this current usage scenario su ers from several limitations.
First, searching for the right dataset is not easy, when multiple datasets may
contain interesting answers, or when users' terms specifying their question(s) do not
match those used by statisticians describing their data. Second, having to face
tables of numbers may be cumbersome for users interested in point queries, e.g.,
\what is the unemployment rate in Spain in Q3 of 2018?" Third, this scenario
gives no support for more advanced queries of the form \where is unemployment
higher than in Spain, in Q3 of 2018?"</p>
        <p>Motivated by this observation, we have developed a tool which allows users
to interact in an easier, more natural manner with SDMX statistical databases,
by means of a QA system. In the remainder of the paper, we describe the SDMX
standard (Section 2), before delving into our contribution: an architecture and
algorithms for an interactive, English-speaking agent allowing natural language
interaction with SDMX databases (Section 3 to Section 6). We present an
evaluation in Section 7, before discussing related work and concluding.
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>The SDMX standard</title>
      <p>The SDMX standard enables the description of: statistical data (typically under
the form of a multidimensional array whose cells contain numbers, e.g., sales
volume or percentage of people unemployed), and metadata, that is, the set of
dimensions characterizing the data, as well as the values that these dimensions
actually take in the data. Sample dimensions are for instance geographic (what
area does a certain statistic correspond to), temporal (time period) or more
speci c to the data being described, e.g., tourist stays in a certain area can be
split in hotel stays, bed-and-breakfast stays, and camping stays.</p>
      <p>
        Concretely, SDMX advocates representing both data and metadata in XML1,
a self-describing syntax which has several advantages. First, it lends itself easily
to publishing data sets online, since XML can be easily turned into a Web page
with the help of a style sheet. Second, XML is the syntax favored by Web
service technologies such as SOAP [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] (for message exchange) and WSDL [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] (for
Web service communications). This simpli es the implementation of an SDMX
endpoint which allows querying an SDMX database (or repository) remotely,
through a Web service client application.
      </p>
      <p>The SDMX metadata is split into several parts, each of them describing one
speci c aspect of the data. These di erent pieces point to each other, as well as
interact with the data, which could not be readable without its metadata. An
overview of the design of the SDMX standard is given in Figure 1.</p>
      <p>Data are organized in data tables which consist of cells. Each cell
corresponds to a combination of values along each dimension present in the data table;
each cell contains a numerical value (in green in the gure). A data table points
to its metadata description, which is necessary in order to interpret its content.
Speci cally, the data table points to a Data Structure De nition (DSD),
which is the central piece of the metadata architecture (in purple in the gure).
The DSD lists the di erent dimensions used for this dataset, and attaches to each
dimension a concept and a codelist (in blue in the gure). The concept gives
more details about the dimension (an explicit name and a description) while
the codelist is a dictionary that can be used to decode information about this
dimension. For instance, the codelist of the dimension AREA may contain the
pair \AU" = \AUSTRALIA" to state that \AU" may be used as a dimension
value to denote \Australia" compactly. The DSD also lists other characteristics
of the table, for instance whether its values are predicted, estimated, or actually
computed.</p>
      <p>Other important metadata components are the Constraints (in red) and the
Categorisation (yellow). The Constraints specify the legal values for each
dimension of the table, to guarantee the integrity of the dataset. The Categorisation
characterizes the way in which the data is classi ed within the Web Service that
makes it available to users. For example, the table \Domestic tourism" is found
in the category \Tourism", itself a subcategory of \Industry". These two parts
are ultimately linked to the DSD via a part called the Data ow (orange).</p>
      <p>The SDMX metadata comprises more elds, for example some which are
designed to ensure the proper construction of the data sets themselves etc. The</p>
      <sec id="sec-2-1">
        <title>1 XML being the main standard, it is however useful to note that SDMX is also</title>
        <p>compatible with JSON and CSV</p>
        <p>User</p>
        <p>Display the results
Query</p>
        <p>Ask for more precision</p>
        <p>Parsers
Grammatical Structure Dependency Structure Named Entity Recognition
Request filler
- Table to select
- Dimension</p>
        <p>values
- Comparisons
- Aggregations
Generic information extractors</p>
        <p>Dates Locations
Type of Comparisons
sentence &amp; Aggregations</p>
        <p>OECD Web Service
SDMX
Metadata</p>
        <p>SDMX
Data</p>
        <p>Fill the request</p>
        <p>Complete</p>
        <p>Request</p>
        <p>Data
Extraction
REST API</p>
        <p>Data
Extractor
Specific information
extractors</p>
        <p>Main topic</p>
        <p>Other dimensions
Distance
computing
modules mentioned above are those that we exploit for building our system,
assuming that the data is correctly organized and described.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>System overview</title>
      <p>The main problem addressed by our QA agent is to understand information
requests, when expressed in natural language. A typical question we aim at
answering is: \What was the population of Japan in 2010?" A successful interaction
with the system, thus, is a sequence in which a query was asked in natural
language, understood correctly by the algorithm, and answered through appropriate
queries on the SDMX data.</p>
      <p>Our QA system is implemented in Python, based on the nltk toolkit and
parsers from the Stanford NLP Group. It consists of 12 les and about 1800 lines
of code; it is available online at
https://github.com/guillaume-thiry/OECDChatbot. The general analysis pipeline, outlined in Figure 2, is as follows.</p>
      <p>
        First, the user query, a natural language sentence, is analyzed by three di
erent parsers, each gathering speci c information from the query. A lexical parser
assigns to each word a Part Of Speech (POS) Tag and captures how they form
grammatical groups (such as a Noun Phrase [NP] or a Prepositional Phrase
[PP]). The dependency parser identi es connections between non-consecutive
words. These two rst parsers are supplied by the Stanford CoreNLP toolkit [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
(interfacing with nltk). Lastly, a Named Entity Recognition (NER) parser
recognizes speci c entities such as dates or places; we rely on the Stanford NER
module [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The results of these parsers are then used as input for di erent
analysis functions (see below).
      </p>
      <p>From the nature of SDMX data it follows that we expect user's input to be
questions concerning a statistical measure over one or more countries, at a given
time. We have therefore implemented functions to extract dimensions such as
the location(s) and date(s) from the phrase, when present; a separate module is
tasked with understanding the type of the question asked. These modules are
described more speci cally in Section 4.</p>
      <p>Concerning the query type (or structure), beyond direct questions asking for
the value of a certain metric in a certain time and place, we also considered
questions featuring comparisons, e.g., \Countries with more than 100 M
inhabitants", and aggregation, e.g., \What are the ve largest countries in term of
GDP per capita ?". The words used in such questions are relatively few and
easy to detect (\more", \less", \higher", \than", \above" ...). However, because
the syntactic structure of such questions is inherently more complex than that of
simple questions, detecting and properly handling such structure is slightly more
complex than understanding simple dimensions (date, place) in direct questions.
We detail this in Section 5.</p>
      <p>Last but not least, each question refers to a speci c topic, e.g., unemployment
rate, public debt or health investments, and speci c dimensions, e.g., a question
about a metric de ned on the general population can be accompanied by a
quali er that restricts the questions to males or females. That depends on the user's
information needs. This part of the question would naturally change depending
on the content of the database and the user interest; a generic approach needs
to be taken for understanding it, based on the known metadata of the SDMX
endpoint behind the system. This is discussed in Section 6.</p>
      <p>Once all these questions have been answered by the di erent parts of our
algorithm (with potentially some requests of precision addressed to the user), a
nal section of the system uses the SDMX REST API to get the correct table
with the correct dimensions, applies potential comparisons and aggregations,
and displays the answer in a appropriate way (a list, a graph, a map ...).
4</p>
    </sec>
    <sec id="sec-4">
      <title>Understanding general dimensions of user questions</title>
      <p>We discuss here the rst steps for analysing the question: what is the quantity of
interest to the user, and (if speci ed), in which time frame, and in which spatial
location? Each of these tasks is handled by a speci c module as explained below.</p>
      <p>Assumptions on the grammatical structure. We decided to focus on
two very common question forms. First, the so-called WH-questions, such as
\What is the population of Russia in 2012 ?", include an explicit question
indicator such as \Who", \What" etc. Second, we also consider Nominal Phrase
questions, e.g., \French GDP per capita". Other questions types exist, such as
Yes/No questions, or imperative statements (\Give me the surface of Peru"); in
the current project state, these are not tackled, although we believe the extension
would be quite easy.</p>
      <p>We identify the question form based on the grammatical structure given by
the parsers: a WH question usually corresponds to a WH Noun Phrase (WHNP,
in short), while a nominal question is speci ed through a Nominal Phrase (NP).</p>
      <p>The question form can be used to determine the type of result the user wants.
We have identi ed three main types of result: (i) The user could ask for the value
of a speci c metric or statistic, e.g., \What is the employment rate in Canada ?".
In such questions, the geographical area (e.g., Canada) and the time associated
to the query metric may or may not be present. (ii) Users can ask for one or
more geographical areas, e.g., \Largest nations of the world". (iii) Users can ask
for one or more time periods, e.g., \How many years with more unemployment
than 2014".</p>
      <p>
        We detect those, depending on the structure, by looking for speci c words.
For instance, a WH question is signaled by the presence of a speci c WH word;
a geographical question is signaled by a \where", and a set of time periods by a
\when". Finally, if the WH-word is \what", we need to identify the word
connected to it: \what" in conjunction with \countries" has a di erent meaning than
when used with \population". This connection is captured by the dependency
parser. While these two question shapes do not exhaust the set of possibilities,
they are those that occur most frequently in real-world journalistic fact-checks,
as noted for instance in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>Time search. Time is a central dimension characterizing statistical data.
We implemented a function that detects time questions at the granularity of the
year, since this appeared su cient for the SDMX data we used. This could be
easily extended to quarter or month granularity. Our function is also capable of
understanding time intervals such as \from 1930 to 1950" or \since 1950". We
can also detect time expressions such as \nowadays" or \over the last 10 years".</p>
      <p>We rely on the NER component to signal DATE occurrences in the text. For
instance, 1950 is tagged by the NER in all the sample occurrences mentioned
above. However, NER does not capture the other quali ers such as \from... to"
or \since", which are important to correctly understand the question. Therefore,
after identifying a year such as \1950" in a sentence, we examine the
Prepositional Phrase [PP] (in the grammatical structure) containing it. In this PP, we
consider speci c words such as \since", \till" or \between" to know the meaning
of that year. It is crucial to focus only on the PP of \1950" because words such as
\since" can appear elsewhere in the sentence, even near \1950", without having
any relation with it.</p>
      <p>Based on this analysis, we ll two parameters, FROM DATE and TO DATE,
specifying the time period of interest for the user. We also keep a variable
THAN DATE in memory, for the speci c case of a year linked with the word
\than". This can be useful when working with comparisons, as we explain in
Section 5.</p>
      <p>Locations search. Another essential information for our statistical data is
the location. The granularity adopted by most of the international organizations
using SDMX is that of the countries, and that is our choice as well. This could
be easily re ned to regions or cities.
Experimenting with the NER component has shown that it is not su
ciently powerful in identifying occurrences of countries. Speci cally, problems
were raised by abbreviations such as \USA" or \UK" and with adjectives
denoting countries, such as \French", \Finnish" etc. Instead, we created a set
of dictionaries containing every country, with the corresponding adjectives and
their multiple spellings. To achieve this, we took the list of member states from
the UN website, and obtained the related linguistic information (abbreviations,
alternative spellings, adjectival forms) from the Wikipedia pages of each country
in the list. Another dictionary contains the names of several regions of the world
with the corresponding countries, under the UN M49 standard2. This enables us
to correctly understand expressions like \Western Europe" or \Latin America"
and know exactly what countries are concerned.</p>
      <p>Once countries or regions have been detected in the sentence, we analyze the
context in the same way as for the dates. This enables us to correctly handle
questions over statistical metrics between two countries, e.g., tourism or trade
\from country A to country B". These are detected by examining the contextual
words in the PP of each country.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Understanding advanced search criteria</title>
      <p>Comparisons and aggregations are the next more complex class of queries we
consider; they occur quite naturally, even if not as often as the simpler queries
discussed above. Typical examples are the questions \Countries with more than
...", \Five countries with most ..." Such comparisons and aggregations are also
basic features of database languages, such as SQL. We therefore decided to
enhance the QA agent with the ability to handle them too.</p>
      <p>Comparisons. We detect comparison questions that satisfy one of the
structural patterns described below.</p>
      <p>First, we look for a comparative adjective that can be speci ed by one word
(e.g., \larger") or two words (e.g., \more populous"), followed by the word
\than". This form is easy to detect, as the words expressing the exact
comparison (\more", \less", \richer", \higher" etc.) are identi ed by a speci c POS
tag, and the word \than" is only used in English to signal such comparisons.
We only need to verify that all the words that are necessary to form a correct
comparative question are present and placed correctly in the sentence. If the
word \than" is missing or appears in a position that does not correspond to the
pattern, we do not recognize the question (thus we can ask for a reformulation
of the query).</p>
      <p>Second, in the speci c case of a comparison with a numerical value (that we
name threshold below), one can use words like \over" or \below", e.g., \What
countries have a population below 50 M". A di culty raised by these words is
that they can appear in other contexts in a sentence. For instance, in the
timerelated expression \over the last 5 years", the word \over" does not contribute
to expressing a comparison. To avoid such confusions, every time one of these
words appears, we check if it is linked to a numerical value and if this value is</p>
      <sec id="sec-5-1">
        <title>2 https://unstats.un.org/unsd/methodology/m49/</title>
        <p>not already interpreted as a date. If so, we consider that the sentence expresses
a comparison, and the numerical value is the threshold.</p>
        <p>Multiple comparisons in a phrase Next, we extended the algorithm to also
handle multiple comparisons. Our system tries to split the sentence in as many
clauses as there are comparisons, each one of them containing one comparison
only; the splitting is based on separative words such as \and", \but" or \while".
Therefore, a sentence like \Countries with a population above 10 M but below
50 M in 2012" is split into two clauses: \Countries with a population above 10
M" and \below 50 M in 2012". This separation is only used to interpret each
comparison properly: the other functions, such as for the detection of the time
(\2012" here), are applied to the whole sentence.</p>
        <p>Each clause thus extracted falls in one of the following three cases:
{ Comparison with a threshold (discussed above). If the comparative
structure uses \above" or \under" for example, we check the threshold as
explained before. If it uses \more ... than", then we search for the threshold
after \than". Observe that the function detecting the thresholds also looks
for multiples like \M" (millions) or \bn" (billions) attached to the numbers.</p>
        <p>At the end, we know the exact value involved in the comparison.
{ Comparison with a country or a year, e.g., \What countries have a
higher GDP than Spain ?" Answering this requires the comparison of the
GDP value for each country with the Spanish one. The same can happen
with a list of years. This is the reason why we had a \THAN" category when
looking for countries and years (Section 4). In such cases, we know that the
user asks for a list of countries, and we know that a comparison is made,
therefore we check in the detected countries of the sentence if one of them
was linked to the word \than". If so, we know that the comparison is of this
country against all the others.
{ Otherwise, we consider that two di erent values of the table are
compared, e.g., \Countries with more male population than female population"
or \Countries with less population in 2020 than in 1990". In such cases, we
inspect the phrase before and after the word \than" to determine what the
two values compared are. This is performed on di erent levels, such as when
lling the dimensions of the table (see Section 6), as a dimension can have
one value before \than" and another \after".</p>
        <p>Aggregations Such patterns are easier to handle than the comparisons,
because there are fewer possible variations in the respective linguistic structures.
We are able to detect three ways to aggregate a list of countries or of years:
through counting, maximum and minimum. Counting queries, such as \How
many countries have ...", can already be detected when analyzing the type of
sentence (Section 4), as we have to treat structures like \How many" or \Number
of" and inspect the sequel of the phrase to determine the type of information
wanted: \How many countries ..." aims at measuring a list of countries, while
\How many inhabitants ..." aims at a value. We detect queries interested in a
maximum (or minimum) through the presence of certain words like superlatives
(\highest", \biggest", \most" ...) or a few other speci c words (\maximum",
\top", ...). Subsequently, the algorithm checks if a number is linked to this
word, as it would indicate the number of items the user wants to see (\Best 5
countries ...", \Top 10 highest ..."). If no such number is found, a default value
is used: 1 if the word is singular (\Country with highest ...") and 10 otherwise.
This analysis outputs: if an aggregation was found; and, if yes, whether it is a
maximum or minimum, and the number of items to return.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Understanding the question topic and dimensions</title>
      <p>While we described above a set of methods for identifying some query elements
speci c to the kind of question, we now explain how we detect question topics.
Speci cally, we aim at answering the question \Which dataset should we use to
answer this query?".</p>
      <p>Find the topic. Before looking for more details in the query, we have to
determine the general topic of the query. Indeed, the details highly depend on
the topic: if the query is about \population", we may have to identify \male" or
\female" as categories, but these do not apply if the query is about the \GDP".
For each table, we build a set of keywords using the SDMX metadata. We do the
same for the query, removing query words that are too generic (e.g., \country")
or stop words (such as \in", \to", \with" etc.). Next, we compute a proximity
score between the words of the query and the set of words corresponding to each
table, in order to determine the tables most related to the query.</p>
      <p>
        Our proximity function compares the stems of the input words, and nds
their proximity according to word2vec [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and WordNet [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. We consider a set
of di erent cases, shown in Table 1; to each there corresponds a certain similarity
score. When two cases hold simultaneously, the higher similarity is kept.
      </p>
      <p>To calculate the proximity between the query and a given table, we sum
the proximity of each meaningful query word with the keywords of the table.
Keywords characterizing a table can be found in four di erent places in the
table metadata. Depending on the position, we give them di erent weights in
the proximity computation formula, as shown in Table 2. [These weights were
found by hand through trial and error; a Machine Learning approach could be
used instead to learn their values] Finally, the proximity between a query and a
table is computed as:</p>
      <p>X</p>
      <p>max
q2QueryWords t2TableWords
prox(query; table) =
prox(q; t) weight(t)
(1)</p>
      <p>Once we are able to compute the proximity score between our query and a
given table, we can rank the tables according to their scores to nd the most
relevant ones. As shown in Section 7, this technique is not perfect, as some tables
are very similar. The table with the highest proximity score may not always be
Name Details</p>
      <p>Title Table title keywords
Description Description keywords if any
Dimensions Dimension name/value keywords
Categories Table category name keywords
Weight
1
0.6
0.6
0.6</p>
      <p>Example
population
number, inhabitants</p>
      <p>sex, female, male
society, demography
the most relevant one to answer the question. The solution we have found is to
display a list of the tables with the highest scores to the user for him to choose.
Indeed, the correct table usually belongs to this list in practice.</p>
      <p>Filling the dimensions. Our last task is to detect possible dimension values
in the user query, that is, e.g., \women" in the question \Number of French
women". Given a table that we identi ed as described above and which could
contain relevant query results (for instance, a table about \French population"),
we compute, for each dimension of the table and each value of a dimension, a
proximity score between the query's useful words and the name of the value. For
each dimension, the value name most similar to the query keywords is nally
retained, if the similarity is above a certain threshold. In our example, the query's
useful words are \French" and \women" and the table has a dimension \sex"
with two values \male" and \female". Because the similarity between \women"
and \male" is lower than between \women" and \female", the dimension \sex"
gets the value \female".</p>
      <p>If, for a given dimension, no value is close enough to the query, three cases
are possible. (i) If the dimension has only one value (e.g., \FREQUENCY" has
\ANNUAL" as its only value in many SDMX datasets), this is systematically
the default value. (ii) The default value can be the \total" value, as this is
quite frequent in the data (\SEX" has \MALE", \FEMALE" and \TOTAL" as
values). (iii) Otherwise, no default value is identi ed, and the user is presented
the possible values for the dimension in order to clarify the request. In our
example, if the table also has a dimension \age" (with values \0-20 years old",
\20-40 years old" ...), no value is close enough, and \total" is used instead.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Experimental evaluation</title>
      <p>Below, we describe qualitative evaluation results on each of the modules we
developed and described above. Some of these (in particular those described
in Section 6) can only be evaluated on an actual dataset; it should be noted
that the only SDMX endpoint we had access to during this work (mentioned in
Section 3) had relatively little data. Some others (e.g., detecting the question
type, or extracting the time interval etc.) can be evaluated independently of an
actual SDMX endpoint. All the queries used in the evaluation are available in
the Github deposit of our code.</p>
      <p>To perform our tests, we wrote for every module a set of test cases (queries)
that we strived to make as realistic as possible, and also to highlight the
capabilities and limitations of our approach. For each query, we manually speci ed
the expected results, then we ran our code and measured how many correct
results we obtained. Some query topics come from the available OECD data; the
Categories Tables</p>
      <p>Domestic Tourism
Industry Inbound Tourism
[IND] Employment in tourism</p>
      <p>Key tourism indicators</p>
      <p>Open govt data
Government Public nance and economics
[GOV] Structure of govt expenditures by function and govt type
Structure of govt investment by function</p>
      <p>Enrolment by eld
Education Educational attainment
[EDU] Enrol by gender, program orientation and mode of study
Enrolment by age</p>
      <p>It is interesting to see where the algorithm failed and why: in our case, this
is due to our linguistic patterns not being exible enough. For example, in the
sentence \Highest mortality rate before 40 years in the world", the code falsely
detects, based on \highest" and \years", that we seek an aggregation over a list
of years. Another example is the query \What is the minimum wage in Canada
?" because here \minimum" does not indicate an aggregation but belongs to the
expression \minimum wage". While these errors point to possible avenues for
improvement, the accuracy results are already quite high.</p>
      <p>Detecting time and location For this test, we wrote 30 queries with
time and location indicators. These queries specify values to be extracted for
FROM, TO and THAN, sometimes several in a single query. We assess for each
query if the time, respectively, location was correctly found. If one of the three
information is incorrect (e.g., the FROM and TO are good, but the THAN was
not detected), then the query is considered wrongly predicted. We obtained:</p>
      <sec id="sec-7-1">
        <title>3 https://ec.europa.eu/eurostat</title>
        <p>Parameter</p>
        <p>Time</p>
        <p>Accuracy
97%</p>
        <p>Parameter</p>
        <p>Location</p>
        <p>Accuracy
100%</p>
        <p>Understanding comparisons and aggregations. For this evaluation,
we created 35 queries with comparisons and 30 with aggregations. Most of the
comparisons had just one clause, but 6 of them were written with two to test
the split. The thing being compared could be a numerical value (threshold), a
country, a year, or something else. In the latter case, we only check if a
comparison is actually detected (not its details) as the correct understanding of details
(e.g., dimensions) is evaluated separately. In the former cases, we are also able
to check whether all the details are correctly understood.</p>
        <p>For aggregation queries, we assess whether the code detects (i) the aggregate
(count, minimum or maximum) and (ii) the number of items to display, e.g.,
from \5 best countries with ..." we should detect (max, 5) while from \12 years
with least ..." the expected result is be (min, 12). We obtained:</p>
        <p>Parameter</p>
        <p>Comparison (total)
Aggregation (aggregate)</p>
        <p>Aggregation (value)</p>
        <p>The accuracy is slightly lower than the one obtained in the assessment of the
type of the sentence because then, we only checked if a comparison or aggregation
was actually detected; now, we look more into the details and count a test correct
only if all the information was correctly extracted.</p>
        <p>Our algorithm failed for comparisons such as \How many countries with
falling GDP in 2020" as it is an implicit comparison of the GDP growth value
with the value 0. Among aggregation queries, the algorithm is confused by queries
like \Highest minimum wages in the world". These failures are due to the lack
of general knowledge which could have enabled, e.g., to answer with the highest
minimum wage in the database (even if it did not re ect the whole world); even
more domain knowledge is necessary to verify whether it does.</p>
        <p>Understanding query topics For this test, we used the 12 SDMX tables
(from 3 di erent categories) described earlier in this Section. We wrote a total
of 48 queries: 36 are about one of the 12 known topics (3 per topic), while the
12 remaining ones are on unknown topics (for which we do not have any data or
metadata). The latter were introduced to check the behavior of the proximity
score. For each query, we measured the accuracy for: Top 1 table (that or those
with the best score), Top 3 tables (those with the 3 best scores) and Top category
(the category with the best score).
The highest-score table is the best one only 58% of the time, but the
topthree tables are correctly found 80% of the time. The category identi cation
accuracy is quite high (94%). A likely explanation for the di erence between
these accuracy values is that some table names are very similar, e.g., \Inbound
Tourism" and \Domestic Tourism", while category names are quite di erent
from each other, thus easier to separate with a proximity function.</p>
        <p>It is also interesting to examine the proximity score distribution for queries
with known and unknown topics. Figure 3 shows that the scores for Top 1
and Top 3 (average of 3 scores) are lower when the topic is not present in the
database. This is of course expected. However, in some cases, the proximity score
for a known topic may be low, while on the opposite, an unknown topic may
still reach a relatively high score. For instance, the best score for a query about
\Government investment" (in a table we have) is 0:42, while the best score for
\GDP per capita" (on which we do not have data) is 0:53. Thus, our current
scores, alone, do not su ce to con dently determine whether our database does
contain the information requested in a query.</p>
        <p>Unknown topics
(12 queries)
Known topics
(36 queries)
1
0
0</p>
        <p>Best scores
3 best scores (average)
1</p>
        <p>Thus, while our algorithm works generally well, the best approach appears to
be to show the user the highest-rank datasets and let her chose the one(s) that
look more promising, similarly to the way in which Web search engines work.</p>
        <p>Dimensions To test our identi cation of data dimensions in queries, we
wrote 40 queries on 10 tables (4 queries per table). Each query speci es one
value for one dimension of the table. For example, the query \Female population
in Russia" would concern the dimension \SEX" with the value \FEMALE".
Furthermore, 6 queries contained a comparison of dimension values, introduced
through \than" (e.g., \Countries with more male population than female"). The
value of a dimension can be speci ed (\MALE" or \FEMALE") or can default
to \TOTAL". For each query, we assess if this speci c dimension was given the
correct value by the algorithm: we obtained 78% accuracy with no notable
di erences across query groups. Compared with other accuracy results, these
are a bit lower, but they still show relatively good performance.</p>
        <p>Another question we study is the utility of a threshold similarity score (recall
Section 6). Figure 4 plots the accuracy of dimension understanding from the</p>
        <p>78%
Accuracy (%)</p>
        <p>Threshold value
query, against the value of this threshold. The most accurate results are obtained
with the lowest threshold, i.e., in general, the best value for the dimension is
the one with the highest score, even if this score is quite low. However, it is
worth noting that our test queries only used one dimension, e.g., they do not
simultaneously constrain the gender and the age of people (mostly because the
data we had access to did not provide interesting, meaningful combinations of
dimensions). Thus, our observations on the threshold are based on such
singledimension queries. In general, care should be taken not to set the threshold too
low, so as not to miss dimension(s) matched with lower similarity.
8</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>Related work</title>
      <p>
        Chatbots have become ubiquitous tools for human-computer interaction [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
While some are designed to handle conversations with the user, others are built
for speci c tasks, e.g., book plane tickets). Our work falls into the second
category. The general framework for this kind of systems is to use the user's inputs
to ll a set of frames (origin city, destination city, departure time...) and once
everything is complete, execute the task (book the tickets). Some tools like
DialogFlow (Google) or Wit.ai (Facebook) o ers turnkey solutions for developers
to specify the desired frames and let AI models ll them automatically.
      </p>
      <p>
        To facilitate the task of querying relational databases, several works
proposed natural-language query interfaces which are given user queries in natural
language and translate them into SQL queries, e.g., [
        <xref ref-type="bibr" rid="ref15 ref16">15,16</xref>
        ]. Prior e orts in
facilitating access to high-quality statistical data have focused rst, on extracting
the data out of HTML pages and HTML or Excel tables [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and then on
developing a speci c keyword search algorithm for nding the datasets (and, if possible,
dataset cells) most pertinent for answering a query [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. A claim extraction tool [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
focused on extracting, from a natural language phrase making some statement
about a statistical quantity, the quantity name and possible dimensions.
      </p>
      <p>
        The need for question answering systems over Linked Data has grown in sync
with the popularity of the RDF4 format and the development of its associated
query language, i.e. SPARQL5. Several projects have aimed at implementing
QA systems over large linked datasets, for instance DBpedia [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The RDF Data
Cube Vocabulary6 gives the RDF format additional means to deal with
multidimensional linked data, such as statistics. A lot of research works have been
done on the Question Answering on Data Cubes [
        <xref ref-type="bibr" rid="ref10 ref3 ref9">10,3,9</xref>
        ]. Challenges also take
place regularly to assess state of the art techniques in this eld [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>We tried to build our system using a di erent approach compared to these
existing works. First, because this high-quality data is speci cally available in
SDMX, we wanted to stick to this format. Even though a lot of similarities
exist between SDMX and Data Cubes, we wanted to take advantage of the
SDMX speci cities (like the extended metadata) rather than just doing a format
translation and using another system. Moreover, these works usually include
machine learning methods based on neural networks. In this study, given the
relatively simple shape of the questions we expect over the statistical databases,
we have not relied upon such methods. Instead, we used a rule-based approach
based on the question syntax to classify and understand the question, and relied
on linguistic distance to determine the dataset that is closest to the query.
9</p>
    </sec>
    <sec id="sec-9">
      <title>Conclusion and future work</title>
      <p>Among existing agents and natural language interfaces to databases, the novelty
of our work is to be the rst to consider the development of a system over
SDMX data. Sponsored by major international institutions such as the European
Central Bank, Eurostat, the International Monetary Fund, the United Nations
and the World Bank, SDMX allows sharing datasets across institutions and
facilitates their processing by stakeholders (government at all levels, the press,
interested citizens). Large volumes of SDMX data are published and exchanged
by these and other institutions. In this study, we only had access to an endpoint
(Web service capable of answering structured queries sent by the algorithm)
publishing a limited amount of data. Future work could test and consolidate our
methods on more data, improve the accuracy of our topic understanding, and
implement the conversational capabilities of a chatbot.</p>
      <p>Acknowledgments We thank Eric Anvar, Head of Smart Data Practices and
Solutions at OECD, Jonathan Challener, Partnerships and Community Manager
at OECD, for their suggestions and support. This work was partially funded by
the ANR Project ContentCheck (ANR-15-CE23-0025).</p>
      <sec id="sec-9-1">
        <title>4 https://www.w3.org/RDF/</title>
      </sec>
      <sec id="sec-9-2">
        <title>5 https://www.w3.org/TR/sparql11-query/</title>
      </sec>
      <sec id="sec-9-3">
        <title>6 https://www.w3.org/TR/vocab-data-cube/</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>SDMX</surname>
          </string-name>
          (
          <article-title>Statistical Data and Metadata eXchange)</article-title>
          . https://sdmx.org/ (
          <year>2020</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Athreya</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Ngonga</given-names>
            <surname>Ngomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.C.</given-names>
            ,
            <surname>Usbeck</surname>
          </string-name>
          , R.:
          <article-title>Enhancing community interactions with data-driven chatbots{the DBpedia chatbot</article-title>
          . pp.
          <volume>143</volume>
          {
          <issue>146</issue>
          (
          <year>2018</year>
          ). https://doi.org/10.1145/3184558.3186964
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Atzori</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mazzeo</surname>
            ,
            <given-names>G.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaniolo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Querying rdf data cubes through natural language</article-title>
          .
          <source>In: SEBD</source>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Cao</surname>
          </string-name>
          , T.D.,
          <string-name>
            <surname>Manolescu</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tannier</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>Extracting linked data from statistic spreadsheets</article-title>
          .
          <source>In: Int'l. Workshop on Semantic Big Data</source>
          (
          <year>2017</year>
          ). https://doi.org/10.1145/3066911.3066914, https://hal.inria.fr/hal-01583975
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cao</surname>
          </string-name>
          , T.D.,
          <string-name>
            <surname>Manolescu</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tannier</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>Searching for Truth in a Database of Statistics</article-title>
          . In: WebDB. pp.
          <volume>1</volume>
          {
          <issue>6</issue>
          (Jun
          <year>2018</year>
          ), https://hal.inria.fr/hal-01745768
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Cao</surname>
          </string-name>
          , T.D.,
          <string-name>
            <surname>Manolescu</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tannier</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>Extracting statistical mentions from textual claims to provide trusted content</article-title>
          .
          <source>In: NLDB (Jun</source>
          <year>2019</year>
          ), https://hal.inria.fr/ hal-02121389
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Cazalens</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamarre</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leblay</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manolescu</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tannier</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <string-name>
            <given-names>A Content</given-names>
            <surname>Management</surname>
          </string-name>
          <article-title>Perspective on Fact-Checking</article-title>
          .
          <source>In: The Web Conference</source>
          <year>2018</year>
          <article-title>- alternate paper tracks "Journalism, Misinformation and Fact Checking"</article-title>
          . pp.
          <volume>565</volume>
          {
          <fpage>574</fpage>
          .
          <string-name>
            <surname>Lyon</surname>
          </string-name>
          , France (
          <year>Apr 2018</year>
          ), https://hal.archives-ouvertes.fr/hal-01722666
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Finkel</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grenager</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manning</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Incorporating non-local information into information extraction systems by Gibbs sampling</article-title>
          .
          <source>In: ACL</source>
          . pp.
          <volume>363</volume>
          {
          <issue>370</issue>
          (
          <year>2005</year>
          ), http://nlp.stanford.edu/~manning/papers/gibbscrf3.pdf
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. Ho ner,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Lehmann</surname>
          </string-name>
          , J.:
          <article-title>Towards question answering on statistical linked data</article-title>
          .
          <source>In: In'tl Conf. on Semantic Systems (SEM)</source>
          . p.
          <volume>61</volume>
          {
          <issue>64</issue>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. Ho ner,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Lehmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Usbeck</surname>
          </string-name>
          , R.:
          <article-title>Cubeqa|question answering on rdf data cubes</article-title>
          .
          <source>In: ISWC</source>
          (
          <year>2016</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -46523-420
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Jurafsky</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martin</surname>
            ,
            <given-names>J.H.</given-names>
          </string-name>
          :
          <source>Speech and Language Processing (3rd ed. draft)</source>
          ,
          <source>Chapter 26 : Dialog Systems and Chatbot</source>
          . (
          <year>2019</year>
          ), http://web.stanford.edu/ ~jurafsky/slp3/
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Manning</surname>
            ,
            <given-names>C.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Surdeanu</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bauer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finkel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bethard</surname>
            ,
            <given-names>S.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McClosky</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>The Stanford CoreNLP natural language processing toolkit</article-title>
          .
          <source>In: ACL (System Demonstrations)</source>
          . pp.
          <volume>55</volume>
          {
          <issue>60</issue>
          (
          <year>2014</year>
          ), http://www.aclweb.org/anthology/P/P14/ P14-5010
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Mikolov</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corrado</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dean</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>E cient estimation of word representations in vector space</article-title>
          .
          <source>In: Proceedings of Workshop at ICLR</source>
          (
          <year>2013</year>
          ), https: //arxiv.org/pdf/1301.3781.pdf
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          :
          <article-title>Wordnet: A lexical database for english</article-title>
          .
          <source>In: Communications of the ACM</source>
          Vol.
          <volume>38</volume>
          , No.
          <volume>11</volume>
          . pp.
          <volume>39</volume>
          {
          <issue>41</issue>
          (
          <year>1995</year>
          ), https://arxiv.org/pdf/1301.3781.pdf
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Quamar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lei</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ozcan</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kreulen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moore</surname>
            ,
            <given-names>R.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Efthymiou</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>An ontology-based conversation system for knowledge bases</article-title>
          .
          <source>In: ACM SIGMOD</source>
          . pp.
          <volume>361</volume>
          {
          <issue>376</issue>
          (
          <year>2020</year>
          ). https://doi.org/10.1145/3318464.3386139
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Saha</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Floratou</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sankaranarayanan</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Minhas</surname>
            ,
            <given-names>U.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mittal</surname>
            ,
            <given-names>A.R.</given-names>
          </string-name>
          , Ozcan, F.:
          <article-title>ATHENA: an ontology-driven system for natural language querying over relational data stores</article-title>
          .
          <source>Proc. VLDB Endow</source>
          .
          <volume>9</volume>
          (
          <issue>12</issue>
          ),
          <volume>1209</volume>
          {
          <fpage>1220</fpage>
          (
          <year>2016</year>
          ), http://www. vldb.org/pvldb/vol9/p1209-saha.pdf
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Usbeck</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gusmita</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Saleem</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Ngonga</given-names>
            <surname>Ngomo</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.C.</surname>
          </string-name>
          :
          <article-title>9th challenge on question answering over linked data (qald-9) (11</article-title>
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <source>SOAP Version 1</source>
          .2. https://www.w3.org/TR/soap12/
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Web</surname>
          </string-name>
          <article-title>Services Description Language (WSDL) Version 2</article-title>
          .0. https://www.w3.org/TR/wsdl/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>