Introduzione

Obiettivo tesi: ci siamo chiesti come semplificare l’accesso a KB note, come Wikidata o DBpedia, attraverso interfacce facilmente usabili e/o che non richiedano competenze tecniche.

Tra le diverse interfacce/tra i diversi approcci che semplificano l’interazione utente ci sono gli assistenti vocali che richiedono un’interazione in linguaggio naturale per l’erogazione di servizi. Abbiamo optato per una skill di Alexa come strumento di interazione con l’utente.

Abbiamo riformulato l’obiettivo prima espresso ad alto livello come:
creazione di una skill di Alexa per permettere l’interrogazione (in linguaggio naturale) di KB.

Software e librerie

API Wikidata per Node.js: https://github.com/maxlath/wikibase-sdk

librerie per wikidata: https://www.npmjs.com/package/wikidata-sdk

librerie per alexa: https://www.npmjs.com/package/ask-sdk-core

librerie per le request sincrone: https://www.npmjs.com/package/sync-request

Bibliografia

registrarsi: https://developer.amazon.com/it/alexa

registrarsi: https://aws.amazon.com/it/

https://developer.amazon.com/it/docs/custom-skills/steps-to-build-a-custom-skill.html

https://developer.amazon.com/it/alexa-skills-kit/tutorials/fact-skill-1

https://developer.amazon.com/it/docs/custom-skills/understanding-custom-skills.html

https://developer.amazon.com/it/docs/custom-skills/create-skills-for-alexa-enabled-devices-with-a-screen.html

https://www.wikidata.org/wiki/Wikidata:Main_Page

tutorial per l'interrogazione di Wikidata tramite SPARQL: https://www.wikidata.org/wiki/Wikidata:SPARQL_tutorial

per testare le query in SPARQL: https://query.wikidata.org/

per testare codice Node.js direttamente nel browser: https://npm.runkit.com/

Seminari

Titolo: Skill di Alexa per l'interrogazione di Knowledge Base

Data: Lunedì 18 Novembre 2019 alle ore 12:00

https://www.facebook.com/events/1246818752155181/

Titolo: Personal assistant per l'interrogazione di Wikidata

Data: Giovedì 6 Febbraio 2020 alle ore 12:00

https://www.facebook.com/events/114327230015945/

Github e Amazon

https://github.com/mario-santoro/wikidata-skill-alexa

Skill online nello store inglese: https://www.amazon.co.uk/Mario-wikidata/dp/B082M5ZH4T/ref=sr_1_1

Lavoro tesi

Abstract

L’avvento dell’era digitale ha portato ad un’esplosione di informazioni sottoforma di notizie, articoli, social media e così via. Ogni individuo dotato di un dispositivo elettronico produce inconsapevolmente, ogni giorno, migliaia di dati.
E' necessario modellare i dati in modo che possano essere interrogati facilmente. Un approccio possibile è modellarli attraverso un Knowledge Graph (con l'acronimo KG). Sebbene non vi sia una definizione chiara di KG, un'interpretazione comune è che esso rappresenta una raccolta di descrizioni interconnesse di entità: oggetti del mondo reale, eventi, situazioni o concetti astratti. Spesso contengono grandi volumi di informazioni fattuali con semantica meno formale. In alcuni contesti, il termine Knowledge Graph viene utilizzato per riferirsi a qualsiasi Knowledge base rappresentata come grafo. Esso costituisce dunque un ambiente volto a facilitare la raccolta, l'organizzazione e la distribuzione della conoscenza. Un'ulteriore classificazione distingue KG proprietari e quelli gestiti da community, possono essere specializzate o general purpose.
Ma per interrogare i KG sono necessari linguaggi come SPARQL che si rivelano essere non alla portata di tutti. SPARQL si è affermato tra i principali strumenti di interrogazione nonostante la sua complessità. Nasce così la necessità di rendere accessibili questi dati anche per persone senza competenze tecniche in query language, in generale, e SPARQL, in particolare.
Quindi come fare per creare un servizio per l’interrogazione di Knowledge Graph attraverso interfacce facilmente usabili e che non richiedano competenze tecniche?
Tra i diversi approcci che semplificano l’interazione utente ci sono gli assistenti vocali, molto popolari negli ultimi anni, che rappresentano un modo facile e intuitivo per l’interazione in linguaggio naturale e per l’erogazione di servizi di un’applicazione.
Secondo una previsione degli analisti britannici di Juniper Research, l'uso degli assistenti vocali è destinato a triplicare nei prossimi anni. L'azienda stima che ci saranno 8 miliardi di assistenti vocali digitali in uso entro il 2023, rispetto ai 2,5 miliardi del 2018.
E' quindi evidente che l’utilizzo della tecnologia di riconoscimento vocale è la prossima grande frontiera. Amazon Alexa è la tecnologia oggi in testa alle classifiche con una quota di mercato del 73%.
Per questi motivi l'assistente vocale scelto è Alexa, mentre la Knowledge Graph scelta per l’interrogazione è Wikidata, definita come una knowledge base online collaborativa, sostenuta e ospitata dalla Wikimedia Foundation, scelta per l'efficacia delle API fornite.
Quindi un utente effettua delle domande ad un assistente vocale in linguaggio naturale, la skill riconosce le parole chiave, viene generata la query SPARQL sul Knowledge Graph e vengono recuperate le informazioni richieste.
Che tipo di domande può effettuare l'utente? Le domande sono modellate basandoci sulla cosiddetta regola delle 5 W, cioè la regola principale dello stile giornalistico anglosassone e delle regole di buona formazione del discorso, Who, What, When, Where, Why.
Al fine di una valutazione corretta della skill si è scelto di effettuare testing su un dataset ufficiale di domande risposte su Wikidata.
L’obiettivo di tesi è dunque: semplificare l'utilizzo di KG senza richiedere nessuna competenza tecnica, mediante la creazione di una skill Alexa per permettere l’interrogazione (in linguaggio naturale) di un Knowledge Graph, cioè Wikidata.

Indice

1 Introduzione

2 Background

2.1 Alexa Skill

2.1.1 Modello di interazione

2.1.2 Back-end

2.2 Knowledge Graph

2.3 SPARQL

2.4 Wikibase SDK

3 Personal assistant based on Wikidata

3.1 Pattern

3.2 Workflow

3.3 Use Case

3.3.1 getResult

3.3.2 getDescription

3.3.3 getLocation

3.3.4 getSuperlative

3.3.5 getSuperlativeFilter

3.3.6 getQuantitive

3.3.7 getResultReverse

3.3.8 getNumericFilter

3.4 Problemi e Risoluzioni

3.4.1 Gestione di più risultati

3.4.2 Mancanza di Wikidata property

3.4.3 Gestione dei sinonimi

3.4.4 Gestione ambiguità

3.4.5 Problema del timeout

3.4.6 Caratteri speciali

3.5 Echo Show e Firestick

3.5.1 getImg

3.6 Modello di interazione

3.7 Back-end

3.8 Pubblicazione

3.8.1 Problema slot

4 Testing

4.1 Valutazione

4.2 Risultati

5 Conclusioni e sviluppi futuri

5.1 Sviluppi Futuri

5.1.1 DBpedia

Bibliografia

[1] Amazon. Interaction model, 2020. Disponibile online.

[2] Amazon. Lambda function, 2020. Disponibile online.

[3] C. Bizer M. Schmachtenberg and H. Paulheim. Adoption of the linked data bestpractices in different topical domains. Spinger: in International Semantic WebConference, (ISWC), pages 245–260, 2014.

[4] maxlath. Wikibase-sdk, 2020. Disponibile online.

[5] A. Polleres P. A. Bonatti, S. Decker and V. Presutti. Knowledge graphs: Newdirections for knowledge representation on the semantic web. Dagstuhl Reports, 2018.

[6] Wikidata. Sparql, 2020. Disponibile online.

[7] Wikipedia. Knowledge base, 2020. Disponibile online.

[8] Wikipedia. le 5 w, 2020. Disponibile online.

[9] Wikipedia. Sparql, 2020. Disponibile online.

[10] Wikipedia. Wikidata, 2020. Disponibile online.

Tesi