<!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>Query in linguaggio naturale per il dominio della dieta mediterranea</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Luca Anselma</string-name>
          <email>anselma@di.unito.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dario Ferrero</string-name>
          <email>dario.ferrero@edu.unito.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alessandro Mazzei</string-name>
          <email>mazzei@di.unito.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Informatica, Universita` di Torino</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>English. This paper presents an ongoing work for allowing users to ask questions in natural language to a database management system on the domain of recipes. The system translates questions from Italian language to SQL exploiting an interlingua represented by a logical formalism such as relational calculus. There are two specific features of this project: first, the use of relational calculus as semantic representation for interlingua translation; second, the role played by pragmatic information, that is the Mediterranean diet domain implicitly encoded in the database schema.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Italiano. Questo articolo presenta un
progetto in corso sulla per permettere a
degli utenti di porre domande a un
database management system nell’ambito del
dominio delle ricette. Il sistema
traduce le domande da italiano a SQL
sfruttando una rappresentazione logica
interlingua che consiste nel calcolo
relazionale. Ci sono due specifiche
caratteristiche di questo progetto: l’uso del
calcolo relazionale come rappresentazione
semantica della traduzione interlingua e il
ruolo giocato dall’informazione
pragmatica, che consiste nell’uso del dominio della
dieta mediterranea che e` stato codificata
nello schema del database.
L’accesso a grandi moli di dati da parte di
persone comuni e` una delle molteplici sfide affrontata
da anni per permettere una piu` fluida interazione
uomo-macchina. La natura della comunicazione
umana presenta molti aspetti difficili da
formalizzare tramite regole precise: ambiguita` nell’uso di
parole ed espressioni, differenze culturali ed
idiomatiche, l’affidamento ad informazioni implicite
date dal contesto. Questo e` vero anche in
specifici domini, come quello che lega le persone al
cibo
        <xref ref-type="bibr" rid="ref10">(Jurafsky, 2014)</xref>
        . A questo scopo da diversi
anni sono state argomento di ricerca le Interfacce
al Linguaggio Naturale (NLIs), sistemi in grado
di interpretare, modellare ed eseguire
un’interrogazione formulata in Linguaggio Naturale su un
qualche tipo di base di conoscenza (basi di dati,
ontologie, ecc.). Le applicazioni sono dunque tra
le piu` svariate, dalle semplici barre di ricerca di un
sito web, ai pi u` recenti Voice Assistant ed altri
servizi anche web-based
        <xref ref-type="bibr" rid="ref7">(Balloccu et al., 2021)</xref>
        .
L’uso del linguaggio naturale ha vantaggi e svantaggi
se paragonato a linguaggi formali come le query
scritte in uno dei linguaggi di interrogazione dei
database. Uno dei vantaggi e` la familiarita`
dell’utente con il linguaggio naturale. Uno svantaggio
consiste nell’estrema espressivita` del linguaggio
umano, che rende impossibile una copertura totale
del lessico e quindi delle possibili interpretazioni
del significato.
      </p>
      <p>
        In questo lavoro presentiamo una NLI per
interrogare una base di dati nel dominio della dieta
mediterranea. Una domanda su tale dominio espressa
in lingua italiana verra` analizzata mediante l’uso
di una grammatica feature-based context-free,
rappresentata mediante il calcolo relazionale su tuple,
e infine trasformata in SQL mediante un processo
ricorsivo basato sulla pragmatica del dominio
applicativo. Un elemento distintivo di questo
progetto, rispetto ai classici esempi di conversione basati
sulla logica del primo ordine
        <xref ref-type="bibr" rid="ref14">(Warren and
Pereira, 1982)</xref>
        , e` l’uso esplicito del calcolo relazionale
per rappresentare il significato della frase. Inoltre,
un ruolo importante e` giocato dalla pragmatica del
dominio, che lega il linguaggio usato nelle
domande alla formalizzazione delle ricette, e che risulta
codificata nello schema del database.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Alcuni lavori recenti LN→SQL basati</title>
      <p>
        sulla sintassi
In questa sezione consideriamo alcuni lavori sul
tema della traduzione da linguaggio naturale a
SQL che fanno uso della sintassi, seguendo lo
schema proposto in
        <xref ref-type="bibr" rid="ref1">(Affolter et al., 2019)</xref>
        . Una
rassegna piu` estesa si puo` trovare in
        <xref ref-type="bibr" rid="ref2">(Amer-Yahia
et al., 2021)</xref>
        .
      </p>
      <p>
        Negli approcci basati sul Parsing si derivano
gran parte delle informazioni ricavabili a partire
dalla struttura della frase in input. Tramite
questo approccio e` possibile riconoscere dipendenze
complesse tra i singoli elementi sintattici,
spesso introdotte da particolari espressioni o da
preposizioni: si attribuisce quindi un valore
semantico alla struttura logica della domanda
analizzata. Querix, ad esempio, fornisce un’interfaccia
per l’interrogazione di ontologie tramite la
generazione di una query SPARQL
        <xref ref-type="bibr" rid="ref11">(Kaufmann et al.,
2006)</xref>
        . Questo risultato e` ottenuto tramite tre
componenti: query analyzer, matching center e query
generator. Il query analyzer parte dalla
domanda in Linguaggio Naturale e, tramite
componenti esterne quali lo Stanford Parser e il database
lessicale WordNet, restituisce uno scheletro
della query dato dalla sequenza delle categorie
sintattiche proprie delle parole in input (Nome,
Verbo, Preposizione, Congiunzione, ecc.). Tramite il
matching center si cercano inizialmente dei
pattern Soggetto-Proprieta`-Oggetto all’interno delle
categorie estratte dalla frase (la sua struttura
assume quindi pi u` importanza rispetto ai sistemi basati
su keyword). Si cercano poi possibili match tra
le parole in input e le risorse dell’ontologia
(entrambi accresciuti dei rispettivi sinonimi di
WordNet), ed infine si cerca di ottenere corrispondenze
tra i risultati di queste due fasi intermedie. I
matching delle triple cos`ı ottenute permettono al
query generator di costruire una o piu` query
SPARQL, ad ognuna delle quali e` assegnato un ranking.
L’ambiguita` data dai molteplici risultati e` risolta
mostrando all’utente una finestra di dialogo che
permette di selezionare la query piu` pertinente.
L’efficacia del sistema dipende in gran parte
dalla qualita` del vocabolario dato dall’ontologia su
cui e` usato, limitando potenzialmente il range di
domande esprimibili. Questa assenza di
adattabilita` e` sia la debolezza che il maggior punto di
forza di Querix, in quanto garantisce la piu`
completa portabilita` sui domini di qualsiasi ontologia
utilizzata.
      </p>
      <p>
        Gli approcci basati su Grammatiche si
appoggiano largamente sulle regole di produzione: a
differenza dei sistemi descritti in precedenza, in
questi approcci e` possibile stabilire a priori quali tipi
di domande sia interpretabile e quali no. Da
questa capacita` segue quindi la possibilita` di
implementare un interfacciamento piu` interattivo, dove
la validita` di una domanda in input puo` essere
determinata durante la stessa fase di inserimento e
guidata da parte di feedback visivi. In TR
Discover, ad esempio, la prima fase di traduzione
della query consiste nel suo parsing su una
FeatureBased Context-Free Grammar (FCFG) dove
regole lessicali, generate dai nomi degli attributi della
base di dati, e regole grammaticali, le quali
definiscono la composizione delle informazioni estratte,
permettono di ottenere composizionalmente come
rappresentazione intermedia una formula nella
Logica del Primo Ordine (FOL)
        <xref ref-type="bibr" rid="ref13">(Song et al., 2015)</xref>
        .
Generare questo primo tipo di formulazione
porta una notevole flessibilit a` permettendo una
traduzione finale sia in SQL che in SPARQL. Nella
seconda fase e` effettuata un’ulteriore fase di analisi,
questa volta sulla formula logica, tramite un FOL
parser e un’apposita grammatica. Un importante
punto di forza di TR Discover consiste nel modulo
di auto-suggestion: il fatto che la grammatica
deifnisca precisamente il tipo di domande valide pu o`
essere sfruttato dal sistema per suggerire
all’utente possibili domande. A partire quindi dalle parole
di un input parziale, i suggerimenti sono generati
dalle strutture grammaticali derivabili e ordinati a
seconda della “popolarita`” delle entita`
riconosciute. Il sistema, tuttavia, presenta chiare limitazioni
di espressivita`, non essendo in grado di analizzare
query richiedenti quantificazioni e permettendo le
negazioni solo traducendo in SPARQL.
3
      </p>
      <sec id="sec-2-1">
        <title>Dominio applicativo: il progetto</title>
      </sec>
      <sec id="sec-2-2">
        <title>MAdiMan</title>
        <p>
          Nel dominio della dieta alimentare il progetto
MADiMAN (Multimedia Application for Diet
MANagement) si pone come obiettivo quello di fornire
un intermediario semi-automatizzato (un “dietista
virtuale”) tra l’utente e la gestione della sua
alimentazione: a partire da informazioni quali dati
biologici individuali, una definizione della dieta
da seguire (basata su quantita` di macronutrienti)
e un aggiornamento costante sullo storico dei
pasti, il sistema cloud-based e` in grado di
proporre diversi servizi volti alla pianificazione dei pasti
futuri, alla persuasione dell’utente verso una sana
alimentazione e all’interazione efficace con queste
informazioni
          <xref ref-type="bibr" rid="ref12 ref12 ref3 ref3 ref4 ref6">(Anselma et al., 2018; Anselma and
Mazzei, 2020; Mazzei et al., 2015; Anselma and
Mazzei, 2015)</xref>
          .
3.1
        </p>
        <sec id="sec-2-2-1">
          <title>La base di dati: Gedeone</title>
          <p>Nel considerare il dominio di interesse e`
necessario pensare ai dati stessi su cui andiamo a
lavorare. Gedeone1 e` un portale di Coop Italia
dedicato a promuovere un sano stile di vita e dieta
proponendo consigli, articoli e soprattutto ricette.
Al fine del progetto MADiMAN, le informazioni
presenti su questo sito sono state manipolate e
trasposte in una base di dati con DBMS PostgreSQL,
rendendo disponibili un gran quantitativo di
ricette (circa 500), passi preparativi, ingredienti, valori
nutrizionali e vari metadati.</p>
          <p>Un’ulteriore componente dello schema
analizzato include dati e tabelle su utenti e la loro dieta,
lo storico dei pasti e delle pesate.</p>
          <p>Per gli obiettivi di questo lavoro e` stato deciso di
considerare la parte del database relativa alle
ricette trascurando la parte relativa alla pianificazione
dei pasti considerando il punto di vista di un
utente non esperto del funzionamento della
memorizzazione dei dati, ancor meno di come questi siano
strutturati internamente.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Architettura del prototipo LN→SQL</title>
      <p>
        Primariamente e` stato costruito un corpus di 12
domande in Linguaggio Naturale2 (Tabella 1). Gli
scopi di questo piccolo corpus sono
principalmente due. Primo, nel progettare un sistema che si
interfacci con una persona tramite un unico
passo in un caso d’uso ipotetico (inserimento
testuale), e` stato necessario pensare a delle domande
plausibili che un utente medio potrebbe porre
tramite applicativo. E` stato ipotizzato a questo
fine che le informazioni piu` desiderabili derivino
dalla possibilita` di consultare il ricettario,
ponendo domande implicitamente relative alla propria
dieta personale (per esempio, sapere l’apporto
calorico di un certo piatto) cos`ı come richiedendo
1http://www.gedeone-e-coop.it
2Il corpus completo e` disponibile online: http://ww
w.di.unito.it/˜mazzei/papers/clic2021/Qn
Acorpus.pdf
Tabella 1: Le 12 domande nel dominio delle
ricette di Gedeone ideate per la sperimentazione. Il
simbolo @ indica delle variabili nella domanda.
istruzioni ed ingredienti. Secondo, per
permettere il testing di un prototipo, ognuna di queste
domande e` stata scritta affinch e´ verificasse
l’abilita` del sistema nel riconoscere e derivare
all’interno della struttura sintattica particolari costrutti,
strutture ed operazioni appartenenti alla query
finale. Prendendo spunto da
        <xref ref-type="bibr" rid="ref1">(Affolter et al., 2019)</xref>
        ,
ogni domanda e` stata categorizzata attraverso
varie label, principalmente corrispondenti agli
operatori SQL Join, Filtraggio su attributo (nella
clausola WHERE), Negazione, Ordinamento esplicito,
Raggruppamento, Aggregazione, Sottoquery.
      </p>
      <p>A ogni domanda definita nel corpus e` stata
associata una corrispondente query SQL, la cui
correttezza e` stata verificata sul database. Mentre si
e` cercato il piu` possibile di semplificare il formato
della traduzione finale di ogni domanda in input,
la necessita` a fini sperimentali di definire domande
sempre piu` complesse ha portato ad ottenere
alcune query con strutture articolate, il che ha talvolta
reso arduo il processo di traduzione.</p>
      <p>Il processo di traduzione di ogni domanda del
corpus e` sequenziale e si divide in una fase
preliminare di preanalisi, e in due fasi principali
concatenate fra di loro.</p>
      <p>Nella preanalisi la domanda in italiano e`
suddivisa in token. Oltre a cio` sono riconosciuti
ed estratti possibili valori di attributi relativi
alla base di dati considerata ed e` attuata dove
necessario una sostituzione con sinonimi.
ParPP[PT=?pt, RL=?rl, LF=?fl, ORD=?ord]
-&gt;
P[PT=?pt] NP[RL=?rl, LF=?fl, ORD=?ord]
NN[ORD=&lt;\x.asc(x, id)&gt;] -&gt; ’ordine’
Figura 1: Un frammento della FCFG usata per
rappresentare la semantica di una domanda in Calcolo
Relazionale.
tendo dalla terza frase della Tabella 1, ovvero
Quali sono i piatti con piu` di 40g di proteine?,
la preanalisi, dopo aver eseguito tokenizazione e
sostituzione dei sinonimi, restituisce: [quali,
sono, i, ricetta, con, piu`, di,
40, grammi, di, proteineg].</p>
      <p>La prima fase prende in input i token ottenuti in
preanalisi e restituisce un albero sintattico
annotato, ottenuto tramite il parsing dei token su una
FCFG. E` ottenuta, come rappresentazione
intermedia, un’espressione nel Calcolo Relazionale su
Tuple.</p>
      <p>Infine, nella seconda fase, le informazioni
presenti nell’albero sintattico sono estratte tramite
diverse visite, durante ognuna delle quali e` costruita
una clausola della corrispondente query in SQL.
Nel seguito dettagliamo il funzionamento delle
due fasi principali e poi analizziamo le prestazioni
del sistema.
4.1</p>
      <sec id="sec-3-1">
        <title>Prima fase: dal Linguaggio Naturale al</title>
      </sec>
      <sec id="sec-3-2">
        <title>Calcolo Relazionale</title>
        <p>
          In questo lavoro abbiamo usato delle grammatiche
libere da contesto con feature3 (FCFG)
utilizzando la libreria Python NLTK
          <xref ref-type="bibr" rid="ref8">(Bird, 2006)</xref>
          .
Similmente a
          <xref ref-type="bibr" rid="ref13 ref14">(Warren and Pereira, 1982; Song et al.,
2015)</xref>
          , abbiamo inizialmente usato una
rappresentazione intermedia di tipo logico per rappresentare
il significato della domanda. L’obbiettivo era
appunto quello di realizzarne una traduzione il piu`
possibile fedele a una formula della FoL, la quale
esprimesse precisamente il significato della query
ifnale nel dominio (tabelle coinvolte, espressioni
per la clausola WHERE, valori di attributi, ecc.).
        </p>
        <p>
          Dopo le prime sperimentazioni si e` riscontrato
che questa forma intermedia, per quanto intuitiva
e formale, non permetteva una facile traduzione
finale nella seconda fase. Inoltre, fare affidamento
esclusivamente su una singola formula composta
limitava i potenziali vantaggi dati dall’uso delle
3La grammatica realizzata e` disponibile online: http:
//www.di.unito.it/˜mazzei/papers/clic202
1/calcolo relazionale.fcfg
FCFG. In questo cambio di direzione e` stato
riscontrato che una rappresentazione intermedia piu`
vicina all’obbiettivo della traduzione in SQL
poteva essere data da una query in calcolo relazionale.
Il Calcolo Relazionale su Tuple con
dichiarazione di Range e` un linguaggio formale che permette
di esprimere in modo dichiarativo una
interrogazione su una base di dati relazionale. In questo
formalismo una query comprende tre componenti:
Target List (TL), Range List (RL) e Logic Formula
(LF)
          <xref ref-type="bibr" rid="ref9">(Codd, 1972)</xref>
          (cf. Fig. 1). Per ognuna di
queste riportiamo una breve descrizione, seguita dal
metodo scelto per poterla ottenere e
rappresentare a partire dalla domanda in italiano e tramite la
grammatica basata su feature.
        </p>
        <p>Target List: specifica quali attributi
compaiono nel risultato. Poiche´ il riconoscimento degli
attributi necessari dipende sia da quali vengano
esplicitati nella domanda, sia dalle tabelle
coinvolte, questa componente e` quasi completamente
determinata nella seconda fase (a posteriori della
parsing sintattico). Tramite le regole lessicali
della grammatica sono riconosciuti gli eventuali
attributi di tabelle, i cui simboli terminali sono
annotati dalla loro rappresentazione nella feature LF,
specificandone il tipo tramite la feature booleana
+ATTR. Gli elementi restanti della Target List
saranno in seguito derivati tramite una mappatura
tabella-attributi.</p>
        <p>Range List: specifica le variabili libere nella
Formula Logica, cioe` le tabelle su cui variano le
variabili della LF per generare il risultato.
Similarmente agli attributi, anche le tabelle
possono essere riconosciute esplicitamente (ed annotate
con una feature +TABLE), oppure derivate da
attributi riscontrati, ma non appartenenti a nessuna
tabella trovata fino a quel momento. In
entrambi i casi la loro semantica e` raccolta nella feature
RL di una produzione terminale e, come per gli
attributi, i diversi elementi saranno raccolti
nella fase successiva attraversando l’albero sintattico
annotato.</p>
        <p>Logic Formula: specifica una formula che il
risultato deve soddisfare. A differenza delle
precedenti, la LF (feature LF) e` composta
ricorsivamente e i suoi predicati possono essere introdotti
non solo nelle regole lessicali, ma anche nelle
produzioni non terminali tramite il riconoscimento di
particolari strutture sintattiche. La composizione
della formula a partire da feature di nodi diversi e`
effettuata tramite le astrazioni del lambda-calcolo:
definendo predicati parziali in un nodo e` possibile
applicarli a formule ed argomenti provenienti
dagli altri nodi della stessa produzione in una
semplificazione chiamata Beta-riduzione. Questa
avviene automaticamente durante il parsing
sintattico tramite NLTK, ed il risultato, se presente, e`
visibile nella radice dell’albero sintattico.</p>
        <p>A differenza di SQL, il Calcolo Relazionale, per
propria natura, non esprime esplicitamente un
ordinamento sull’insieme di tuple risultante
(corrispondente al costrutto ORDER BY di SQL). Per
compensare questo aspetto si e` deciso di
utilizzare una feature aggiuntiva ORD, definita in modo
simile alla feature LF ma utilizzata
esclusivamente per mantenere tramite predicati le informazioni
di un eventuale ordinamento esplicito
(riconosciuto a livello lessicale da espressioni come “in ordine
di”, “con meno/piu` X”, ecc.) In generale il
processo di traduzione della prima fase e` completamente
automatizzato: il parser utilizzato e` generato
tramite una funzione della libreria NLTK e necessita
solamente della definizione di una grammatica. Il
parsing dei token in input restituisce dunque un
albero sintattico annotato con feature.</p>
        <p>Partendo dalla preanalisi della frase Quali
sono i piatti con pi u` di 40g di proteine?, si
ottiene l’analisi sintattica in Fig. 2(a), e la
corrispondente rappresentazione in calcolo relazionale in
Fig. 2(b).
4.2</p>
      </sec>
      <sec id="sec-3-3">
        <title>Seconda fase: dal Calcolo Relazionale a SQL</title>
        <p>La costruzione dell’interrogazione SQL utilizza
l’albero sintattico e la corrispondente formula del
calcolo relazionale ottenute entrambe nella fase
precedente, insieme a ulteriori dati provenienti dal
dominio di interesse, e che sono implicitamente
codificate nel database di riferimento. Mentre con
la prima fase si e` potuto modellare la conoscenza
derivata dalla domanda iniziale, molto di cio` che ci
serve sapere non e` direttamente derivabile da una
domanda in italiano. Inoltre, poiche´ l’obbiettivo di
questo progetto rimane la creazione di un sistema
che operi su un dominio definito, e` necessario che
le informazioni piu` importanti riguardanti questo
siano definite ed accessibili nel sistema: queste
informazioni sono fondamentali per stabilire i
legami tra cio` che e` stato chiesto e i nomi effettivi di
tabelle e attributi.</p>
        <p>Il processo di traduzione finale segue un
algoritmo generale comune: per ogni clausola principale
di SQL viene visitato l’albero sintattico e, grazie
anche alle informazioni dal dominio, viene
generata la clausola componendo ivalori nelle feature.</p>
        <p>In particolare:</p>
        <p>SELECT: La lista di attributi da restituire
corrisponde alla Target List del Calcolo Relazionale. E`
possibile riconoscere due tipi di attributi
appartenenti a questa. (i) Ogni tabella introdotta,
esplicitamente o meno (riconosciuta a partire dalla
feature +TABLE oppure derivata da un suo attributo),
comprende uno o piu` attributi di default, oltre a
quelli di chiave primaria. Questo tipo di
mappatura e` un esempio di informazione pragmatica
proveniente dal dominio e codificata nella tabella. (ii)
Per quanto riguarda invece gli attributi non
presenti in alcuna tabella, questi possono semplicemente
essere riconosciuti da una regola lessicale (tramite
la feature +ATTR) ed aggiunti in coda all’elenco.</p>
        <p>FROM: Un’assunzione importante e` stata
fatta nella gestione dei join, ovvero che le tabelle
avessero sempre delle chiavi esterne definite
esplicitamente. Cio` semplifica notevolmente la
traduzione, in quanto e` sufficiente conoscere le tabelle
coinvolte per poter generare l’intera clausola
comprensiva delle condizioni di join. L’algoritmo di
generazione riconosce i vincoli di chiave esterna
tramite due cicli, che compongono la clausola
risultante con gli attributi necessari. Da notare che
sia i vincoli relazionali, sia gli alias delle tabelle
sono definiti tramite dizionari.</p>
        <p>WHERE: Questa clausola e` l’unica costruita
a partire dalle informazioni provenienti dalla LF.</p>
        <p>I predicati di questa sono indicati in un
formalismo piu` simile a quello della FOL rispetto al
Calcolo Relazionale, al fine di aderire alla
sintassi delle formule di NLTK. Per ognuno dei
predicati si effettua una traduzione corrispondente
rappresentazione in SQL.</p>
        <p>ORDER BY: Come la clausola WHERE, la
costruzione di questa clausola e` determinata dal
valore della feature ORD nella radice dell’albero
sintattico. Per i fini della nostra
implementazione e` stato deciso di adottare, nel caso in cui la
feature ORD risulti vuota, un ordinamento di
default sull’attributo di chiave primaria della tabella
principale coinvolta.</p>
        <p>Considerando ancora la terza frase della
Tabella 1, il risultato della seconda fase di traduzione e`
in Fig. 2-(c).
(S[FL=&lt;maggiore(ric(ricetta),proteineg,40)&gt;, ORD=?ord]
(VP[] (PI[NUM=’pl’, QRT=’qual’] Quali) (IV[NUM=’pl’] sono))
(NP[FL=?fl]
(DET[NUM=’pl’] i)
(NN[RL=&lt;ric(ricetta)&gt;, +TABLE] ricetta))
(PP[FL=&lt;maggiore(ric(ricetta),proteineg,40)&gt;, ORD=?ord, PT=’with’, RL=?rl]
(P[PT=’with’] con)
(NP[FL=&lt;maggiore(ric(ricetta),proteineg,40)&gt;]
(ADV[FL=&lt;\z y x.maggiore(x,y,z)&gt;] piu`)
(PP[FL=&lt;40&gt;, ORD=?ord, PT=’of’, RL=?rl]
(P[PT=’of’] di)
(NP[FL=&lt;40&gt;] (CARD[FL=&lt;40&gt;] 40) (NN[] grammi)))
(PP[FL=&lt;proteineg&gt;, PT=’of’, RL=&lt;ric(ricetta)&gt;]
(P[PT=’of’] di)
(NN[+ATTR, FL=&lt;proteineg&gt;, RL=&lt;ric(ricetta)&gt;] proteineg)))))
(a)
(b)
(c)
{TL=ric.id, ric.descrizione, ric.nome , ric.proteineg | RL=ric(ricetta) |
LF=maggiore(ric(ricetta),proteineg,40)}
SELECT ric.id, ric.nome, ric.descrizione, ric.proteineg
FROM Ricetta ric WHERE ric.proteineg&gt;40 ORDER BY ric.id ASC;
Figura 2: Il risultato della prima fase di analisi (a-b) e della seconda fase di analisi (c) sulla frase Quali
sono i piatti con piu` di 40g di proteine?.</p>
        <sec id="sec-3-3-1">
          <title>5 Valutazione preliminare</title>
          <p>Nella sperimentazione preliminare e` stato
possibile implementare la traduzione solamente di 7
domande rispetto alle 12 inizialmente definite nel
corpus4. Seguono i limiti incontrati per alcune
delle interrogazioni non realizzate.</p>
          <p>La domanda 6, Quanta acqua ho consumato il
giorno @data, e` stata tralasciata poiche´
richiederebbe una gestione delle informazioni riguardanti
un utente che abbia effettuato l’accesso al sistema.</p>
          <p>Non e` stato possibile realizzare la domanda 10,
“Quali sono le ricette con cottura in forno o a
vapore” per la natura dell’operazione richiesta (un
OR esclusivo), la quale richiedeva una sotto-query.
Al momento non e` implementato un
meccanismo che rilevi la presenza di sotto-interrogazioni
a partire dalla struttura della frase.</p>
          <p>Nella domanda 11, “Quali sono gli ingredienti
per @people persone della ricetta @recipe?”, la
difficolt a` incontrata e` stata la gestione dei valori
NULL ottenibili in certi attributi.</p>
          <p>La domanda 12, “Quali sono i piatti con
pochi carboidrati?”, e` stata realizzata nella versione
semplificata “Quali sono i piatti con meno
car4Un elenco completo dell’output e` disponibile a http:
//www.di.unito.it/˜mazzei/papers/clic202
1/OutputPrototipo.pdf
boidrati?”: la difficolt a` nell’includere una
sottoquery (con annessa Window Function di SQL) ha
portato a interpretare “pochi carboidrati” non
come valori appartenenti al primo quartile sulla
distribuzione totale, ma come quantita` al di sotto di
una soglia di default.</p>
        </sec>
        <sec id="sec-3-3-2">
          <title>6 Conclusioni</title>
          <p>In questo lavoro sono stati presentati i primi
risultati di un progetto ancora in corso per interpretare
una domanda in linguaggio naturale come
un’interrogazione SQL nel dominio della dieta
mediterranea. Le due caratteristiche principali di
questo progetto sono state l’uso del calcolo
relazionale su tuple per rappresentare il significato della
frase (Sezione 4.1) e l’uso delle specificit a` del
dominio per trasformare poi tale rappresentazione in
SQL (Sezione 4.2).</p>
          <p>
            In futuro intendiamo completare le
interrogazioni contenute nel corpus proposto per poi
integrare il prototipo in un agente conversazionale sul
dominio della gestione di una dieta salutare.
Considerando la presenza di indeterminatezza nel
linguaggio naturale, potrebbe essere interessante
dare supporto per estensioni del modello
relazionale che trattano indeterminatezza
            <xref ref-type="bibr" rid="ref5">(Anselma et al.,
2016)</xref>
            .
          </p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>Katrin</given-names>
            <surname>Affolter</surname>
          </string-name>
          , Kurt Stockinger, and
          <string-name>
            <given-names>Abraham</given-names>
            <surname>Bernstein</surname>
          </string-name>
          .
          <year>2019</year>
          .
          <article-title>A comparative survey of recent natural language interfaces for databases</article-title>
          .
          <source>The VLDB Journal</source>
          ,
          <volume>28</volume>
          (
          <issue>5</issue>
          ):
          <fpage>793</fpage>
          -
          <lpage>819</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <given-names>Sihem</given-names>
            <surname>Amer-Yahia</surname>
          </string-name>
          , Georgia Koutrika, Frederic Bastian, Theofilos Belmpas, Martin Braschler, Ursin Brunner, Diego Calvanese, Maximilian Fabricius, Orest Gkini, Catherine Kosten, Davide Lanti, Antonis Litke, Hendrik Lu¨
          <fpage>cke</fpage>
          -Tieke, Francesco Alessandro Massucci, Tarcisio Mendes de Farias, Alessandro Mosca, Francesco Multari, Nikolaos Papadakis, Dimitris Papadopoulos, Yogendra Patil, Aure´lien Personnaz, Guillem Rull, Ana Claudia Sima,
          <string-name>
            <given-names>Ellery</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Dimitrios</given-names>
            <surname>Skoutas</surname>
          </string-name>
          , Srividya Subramanian, Guohui Xiao, and
          <string-name>
            <given-names>Kurt</given-names>
            <surname>Stockinger</surname>
          </string-name>
          .
          <year>2021</year>
          .
          <article-title>INODE: building an end-to-end data exploration system in practice [extended vision]</article-title>
          .
          <source>CoRR, abs/2104</source>
          .04194.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>Luca</given-names>
            <surname>Anselma</surname>
          </string-name>
          and
          <string-name>
            <given-names>Alessandro</given-names>
            <surname>Mazzei</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Towards diet management with automatic reasoning and persuasive natural language generation</article-title>
          .
          <source>In Portuguese Conference on Artificial Intelligence</source>
          , pages
          <fpage>79</fpage>
          -
          <lpage>90</lpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>Luca</given-names>
            <surname>Anselma</surname>
          </string-name>
          and
          <string-name>
            <given-names>Alessandro</given-names>
            <surname>Mazzei</surname>
          </string-name>
          .
          <year>2020</year>
          .
          <article-title>Building a persuasive virtual dietitian</article-title>
          .
          <source>Informatics</source>
          ,
          <volume>7</volume>
          (
          <issue>3</issue>
          ):
          <fpage>27</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Luca</given-names>
            <surname>Anselma</surname>
          </string-name>
          , Luca Piovesan, and
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Terenziani</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>A 1nf temporal relational model and algebra coping with valid-time temporal indeterminacy</article-title>
          .
          <source>Journal of Intelligent Information Systems</source>
          ,
          <volume>47</volume>
          (
          <issue>3</issue>
          ):
          <fpage>345</fpage>
          -
          <lpage>374</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>Luca</given-names>
            <surname>Anselma</surname>
          </string-name>
          , Alessandro Mazzei, and
          <string-name>
            <given-names>Andrea</given-names>
            <surname>Pirone</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Automatic reasoning evaluation in diet management based on an italian cookbook</article-title>
          .
          <source>In Proceedings of the Joint Workshop on Multimedia for Cooking and Eating Activities and Multimedia Assisted Dietary Management</source>
          , pages
          <fpage>59</fpage>
          -
          <lpage>62</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>Simone</given-names>
            <surname>Balloccu</surname>
          </string-name>
          , Ehud Reiter, Matteo G. Collu, Federico Sanna, Manuela Sanguinetti, and
          <string-name>
            <given-names>Maurizio</given-names>
            <surname>Atzori</surname>
          </string-name>
          .
          <year>2021</year>
          .
          <article-title>Unaddressed challenges in persuasive dieting chatbots</article-title>
          . In Judith Masthoff, Eelco Herder, Nava Tintarev, and Marko Tkalcic, editors,
          <source>Adjunct Publication of the 29th ACM Conference on User Modeling, Adaptation and Personalization</source>
          ,
          <string-name>
            <surname>UMAP</surname>
          </string-name>
          <year>2021</year>
          ,
          <article-title>Utrecht, The Netherlands</article-title>
          , June 21-25,
          <year>2021</year>
          , pages
          <fpage>392</fpage>
          -
          <lpage>395</lpage>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <given-names>Steven</given-names>
            <surname>Bird</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>NLTK: the natural language toolkit</article-title>
          . In Nicoletta Calzolari,
          <string-name>
            <given-names>Claire</given-names>
            <surname>Cardie</surname>
          </string-name>
          , and Pierre Isabelle, editors,
          <source>ACL</source>
          <year>2006</year>
          ,
          <article-title>21st International Conference on Computational Linguistics and 44th Annual Meeting of the Association for Computational Linguistics</article-title>
          ,
          <source>Proceedings of the Conference</source>
          , Sydney, Australia,
          <fpage>17</fpage>
          -
          <issue>21</issue>
          <year>July 2006</year>
          .
          <article-title>The Association for Computer Linguistics</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <given-names>E. F.</given-names>
            <surname>Codd</surname>
          </string-name>
          .
          <year>1972</year>
          .
          <article-title>Relational completeness of data base sublanguages</article-title>
          . Research Report / RJ / IBM / San Jose, California,
          <fpage>RJ987</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <given-names>Dan</given-names>
            <surname>Jurafsky</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>The language of food: A linguist reads the menu</article-title>
          .
          <source>WW Norton &amp; Company.</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <given-names>Esther</given-names>
            <surname>Kaufmann</surname>
          </string-name>
          , Abraham Bernstein, and
          <string-name>
            <given-names>Renato</given-names>
            <surname>Zumstein</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Querix: A natural language interface to query ontologies based on clarification dialogs</article-title>
          .
          <source>In 5th international semantic web conference (ISWC</source>
          <year>2006</year>
          ), pages
          <fpage>980</fpage>
          -
          <lpage>981</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>Alessandro</given-names>
            <surname>Mazzei</surname>
          </string-name>
          , Luca Anselma, Franco De Michieli, Andrea Bolioli, Matteo Casu, Jelle Gerbrandy, and
          <string-name>
            <given-names>Ivan</given-names>
            <surname>Lunardi</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Mobile computing and artificial intelligence for diet management</article-title>
          .
          <source>In International Conference on Image Analysis and Processing</source>
          , pages
          <fpage>342</fpage>
          -
          <lpage>349</lpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <given-names>Dezhao</given-names>
            <surname>Song</surname>
          </string-name>
          , Frank Schilder, Charese Smiley, Chris Brew, Tom Zielund, Hiroko Bretz, Robert Martin,
          <string-name>
            <given-names>Chris Dale</given-names>
            , John Duprey, Tim
            <surname>Miller</surname>
          </string-name>
          , et al.
          <year>2015</year>
          .
          <article-title>Tr discover: A natural language interface for querying and analyzing interlinked datasets</article-title>
          .
          <source>In International Semantic Web Conference</source>
          , pages
          <fpage>21</fpage>
          -
          <lpage>37</lpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <surname>David H.D. Warren</surname>
            and
            <given-names>Fernando C.N.</given-names>
          </string-name>
          <string-name>
            <surname>Pereira</surname>
          </string-name>
          .
          <year>1982</year>
          .
          <article-title>An efficient easily adaptable system for interpreting natural language queries</article-title>
          .
          <source>American Journal of Computational Linguistics</source>
          ,
          <volume>8</volume>
          (
          <issue>3</issue>
          -4):
          <fpage>110</fpage>
          -
          <lpage>122</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>