WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un...

32
Introduzione WMS – What Media Say Riconoscimento semantico di RSS. WEB SEMANTICO 2015/16 PROF. SABRINA SENATORE Alfonso Guarino Gianluca Landi Antonio Leone Raffaele Schiavone Gabriele Napoli

Transcript of WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un...

Page 1: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

Introduzione

WMS – What Media SayRiconoscimento semantico di RSS.

WEB SEMANTICO 2015/16

PROF. SABRINA SENATORE

Alfonso Guarino

Gianluca LandiAntonio Leone

Raffaele SchiavoneGabriele Napoli

Page 2: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

2

Sommario

1. Introduzione...............................................................................................................3

2. Tecnologieutilizzate...................................................................................................42.1. RDF,OWL........................................................................................................................42.2. OpenLinkVirtuoso...........................................................................................................42.3. WikipediaMiner..............................................................................................................52.4. DbPedia...........................................................................................................................52.5. ApacheJena....................................................................................................................62.6. JavaServlet.....................................................................................................................62.7. TecnologieFront-End......................................................................................................62.8. Protegè...........................................................................................................................72.9. XMLRSS2.0....................................................................................................................72.10LodLive...............................................................................................................................72.11. Bitbucket.....................................................................................................................82.12.AlchemyAPI.......................................................................................................................8

2.12.1SentimentAnalysis..............................................................................................................8

3. Casid’uso...................................................................................................................93.11. Funzionalità.................................................................................................................93.12. Scenari......................................................................................................................103.13. SequenceDiagram.....................................................................................................13

4. Architettura..............................................................................................................154.11. Server........................................................................................................................154.12. Client.........................................................................................................................16

5. Dettagliontologia.....................................................................................................17

6. Processodiclassificazione........................................................................................18

7. Dettagliimplementativi............................................................................................207.1Crawler...............................................................................................................................207.2.Querybesttopic................................................................................................................217.3.LodLive..............................................................................................................................23

8. Manualed’uso..........................................................................................................248.11. CercaTopic................................................................................................................248.12. TopicVirali................................................................................................................278.13. GestioneRSS.............................................................................................................28

9. Sviluppifuturi...........................................................................................................30

10. Conclusioni...........................................................................................................31

11. Glossario...............................................................................................................32

Page 3: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

3

1. Introduzione

WhatMediaSay(WMS)èunprogettochenascenell’ambitodelcorsodiWebSemantico2015/16dell’UniversitàdegliStudidiSalernoehaloscopodiaiutaretuttequellepersonechevoglionorestare"incontatto"conilmondocircostanteinognimomento,scoprirequalisonolenotizieviralidiuncertoperiodo,analizzarequantounargomentod'interessepuòesserstatodiscussoeinqualioccasioni.

WhatMediaSaypermetteagliutentidirestareaggiornatisullenotiziedalmondoinmanieradeltuttonuova, quasi dinamica,mettendo a disposizione una conoscenza senza limiti interfacciandosi conDbPedia.Taleconoscenzaèpienamentenavigabilesenzaabbandonareildominiodell'applicazioneedèconsultabileOnDemand.

L’idea alla base diWhatMedia Say è quella di analizzare gli RSS forniti dalle più famose testategiornalistiche.Ogninotiziavieneanalizzata,filtrataecategorizzataestraendoneitopicpiùrilevantigrazieall'integrazioneconWikipediaMinereperognitopicestratto,sfruttandoAlchemyAPI,WMScalcolalapolaritàdellenewsadessoassociate.

Nell'utilizzodell'applicazionel'utentevivràun'esplorazionevisualedellenotizied'interessesfruttandolapotenzagraficadeltoolLodLive.

All’internodiquestatesina:

• PanoramicadelletecnologieutilizzatepersviluppareWMS;• Analisidegliscenariedeicasid’uso;• Scenderemoneldettagliodell’architetturadiWMS;• Analizzeremol’ontologiacreataadhocperWMS;• Cifocalizzeremosualcunidettagliimplementativi;• Forniremounmanualed’uso;• CercheremodicapirecomeWMSpossamigliorareinfuturo.

Page 4: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

4

2. Tecnologieutilizzate

2.1. RDF,OWL

IlResourceDescriptionFramework (RDF)è lo strumentobasepropostodaW3Cper la codifica, loscambio e il riutilizzo di metadati strutturati e consente l'interoperabilità tra applicazioni checondividonoleinformazionisulWebÈcostituitodaduecomponenti:

• RDFModelandSyntax:esponelastrutturadelmodelloRDF,edescriveunapossibilesintassi.• RDFSchema:esponelasintassiperdefinireschemievocabolariperimetadati.

IlmodellodidatiRDFèformatodarisorse,proprietàevalori.

UnarisorsaèunaqualunqueentitàdescrittadaRDF.Principalmenteunarisorsaèreperibilesulweb,ma RDF può descrivere anche risorse che non si trovano direttamente sulla rete. Ogni risorsa èidentificatadaunURI,acronimodiUniversalResourceIdentifier.

Leproprietàsonodellerelazionicheleganotralororisorseevalori,esonoanch'esseidentificatedaURI.Unvalore,invece,èuntipodidatoprimitivo,chepuòessereunastringacontenentel'URIdiunarisorsa.

L'unitàbaseperrappresentareun'informazioneinRDFèlostatement.UnostatementèunatripladeltipoSoggetto–Predicato–Oggetto,dove il soggettoèuna risorsa, ilpredicatoèunaproprietàel'oggettoèunvalore(equindiancheunURIchepuntaadun'altrarisorsa).

IldatamodelRDFpermettedidefinireunmodellosempliceperdescriverelerelazionitralerisorse,interminidiproprietàidentificatedaunnomeerelativivalori.Tuttavia,RDFdatamodelnonforniscenessunmeccanismoperdichiararequesteproprietà,néperdefinirelerelazionitraquesteproprietàedaltrerisorse.TalecompitoèdefinitodaRDFSchema.

OWL(OntologyWebLanguage)èunlinguaggiodimarkupperrappresentareesplicitamentesignificatoesemanticaditerminiattraversovocabolarierelazionitraglistessi,ilcuifineèdescriveredellebasidi conoscenza,effettuaredellededuzioni sudiessee integrarle con i contenutidellepagineweb.Larappresentazionedeiterminiedellerelativerelazionièchiamataontologia.

InsiemeaRDF,dicuièun'estensione,OWLfapartedelprogetto,ancorainitinere,delWebsemantico.Le ontologie OWL forniscono classi, proprietà, individui e valori che è possibile memorizzare econdivideresullarete.

2.2. OpenLinkVirtuoso

OpenLinkVirtuosoèunserveruniversaleditipoQuad-StoreedoffrelecaratteristichediuntriplestoreassiemeallecapacitàdiunDBrelazionale.SipuòinterfacciareconpiattaformeJavae.NET.Lavorafacilmenteinmultithreadesupportaipiùdisparatilinguaggid'interrogazione:

• SQL

Page 5: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

5

• SPARQL • SPARUL • XQuery • XPath • XSLT

Offreinoltredeireasonerintegrati:

• OWLSchemaReasoner(perinferireautomaticamenteowl:sameAs) • RDFReasoner(perinferireautomaticamenterdfs:subClassOf,rdfs:subPropertyOf)

OpenLinkVirtuosoèsupportatodaimaggioriOSsulmercato:

• Windows • UNIX • Linux • MacOSX

OpenLinkVirtuosoospitalaKnowledgeBasedell'applicazione.Lasceltadell'utilizzodiquestotriplestoreèstatadettatadall'esperienzapregressaedallaconoscenzascaturitadalseminariotenutoalcorsodiWebSemanticodaunapartedelteam.

2.3. WikipediaMiner

WikipediaMiner un toolkit che consente di integrare la conoscenza diWikipedia all’interno delleproprieapplicazioni.

Nel nostro caso, abbiamo fatto un ampio uso del servizio “wikify”, in grado di individuare topic4all’interno di un testo scritto in linguaggio naturale e correlarli ad una pagina di Wikipedia.Per lo sviluppo diWhatMedia Say abbiamo scaricato un dump diWikipedia italiano ed abbiamoconfiguratoun’istanzalocalediWikipediaMinersudiunamacchinavirtuale.

2.4. DbPedia

DbPedia nasce dallo sforzo di una comunità web per estrarre informazioni strutturate dallaconoscenzadiWikipedia.DbPediaconsentedisottoporreaWikipediaquerycomplesseperestrarreecollegarevaridatasetdirisposta.

La versione inglese di DbPedia descrive 4,58Milioni di concetti, di cui il 95% è classificato in unaontologiacoerente.DbPediaclassificaluoghi,persone,operecreative(musica,videogames...).Inoltreèdisponibilein125linguediverse,cioè125versionidiversecheassiemeclassificanocirca40milionidiconcetti.

DbPediaècollegatoa50milionidiRDFesterni.Complessivamentenel2014harilasciato3miliardiditripleRDF.

Page 6: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

6

All'internodiWhatMediaSayintervienenell'estrazionedeitopictramiteWikipediaMinerecièutilepernavigarelaconoscenzadiWikipediaapartiredaciòchel'applicazionericavadaifeedRSS2oggettodelcrawling.

2.5. ApacheJena

ApacheJenaèunframeworkopensourcechefornisceAPIperestrarredatiemanipolaregrafiRDF.Lasceltadiquesto frameworkèavvaloratadal fattoche,oltreadessereprobabilmente la libreria“principe”pertrattareRDFconillinguaggioJava,fornisceuninterfacciamentosudatabaseVirtuosotramiteunappositoadapter:VirtuosoJenaProvider.Quest'ultimoèuncomponentediApacheJenachepermetteadapplicazionidisemanticweb(scritteutilizzandoilsuddettoframework)diinterrogaredirettamentelostoreRDFdiVirtuosoattraversoquerySPARQL.

2.6. JavaServlet

LeservletsonooggettiscrittiinlinguaggioJavacheoperanoall'internodiunserverweb(nelnostrocaso Apache Tomcat 8.0) permettendo la creazione di Web Applications.Il nome deriva dalle Java applet che sono dei piccoli programmi scritti in linguaggio Java che sieseguonoall'internodelbrowserdell'utenteclient.

L'usopiùfrequentedelleservletèlagenerazionedipaginewebdinamicheasecondadeiparametridirichiestainviatidalclientbrowserdell'utentealserver.

I programmi che implementano le specifiche delle servlet possono girare all'interno diqualunqueservletcontainerenonsonovincolatiadunparticolareserver.Lostandarddelleservletrientraall'internodiunvastoinsiemedistandarddettoJavaEE.

Sottoquest'otticaunaservletèunprogrammachedeverispettaredeterminateregoleecheprocessain un determinato modo una richiesta HTTP. Nulla vieta che all'interno dello stesso server webpossanogirarepiùservletassociateaURLdiversi,ognunadellequalifaràcosediverseedestenderàlefunzionalitàdelserverweb.

What Media Say fa largo uso di servlet Java per implementare la componente back-end e diconseguenzalacomunicazionetraclienteserver.

2.7. TecnologieFront-End

Glistrumentiutilizzatiperlaprogettazionedell’interfacciagraficadiWhatMediaSaysono:

• HTML5:linguaggiomark-upperlastesuradipagineweb.• CSS3:linguaggiodistylesheetutilizzatoperdefinirel’aspettodicontenutiweb.Inparticolare

abbiamoutilizzatolelibrerieBootStrapperrendereicontenutipiùaccattivantieresponsive.• JavaScript:linguaggiodiscriptingclient-sideutilizzatopereffettuarerichiesteasincroneverso

ilserver.

Page 7: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

7

2.8. Protegè

Protégé è un editor OpenSource per ontologie. Fornisce un’interfaccia grafica per la creazione diontologie. Inoltre include un classificatore deduttivo per la validazione e per inferire nuoveinformazioniapartiredaunaontologia.ComeEclipse,Protègèpermettel’integrazionedivariPlug-in.Visto a lezione di Web Semantico ci è sembrato il modo più semplice per creare la strutturadell'ontologiaadhocdiWhatMediaSay.

2.9. XMLRSS2.0

RSS(RDFSiteSummary)èilformatopiùpopolareperladiffusionedicontenutiweb.L'applicazioneprincipalepercuiènotosonoiflussichepermettonodiessereaggiornatisunuoviarticoliocommentipubblicatineisitidiinteressesenzadoverlivisitaremanualmenteunoauno.

LastrutturabasedegliRSSèlaseguente:

• unelemento<channel>,checontieneleinformazionisullafontedeicontenuti(nelcasodiun quotidiano online potrebbe contenere il nome della testata, la data di pubblicazione,informazionisulcopyright,ecc.)

• una serie di elementi <item>, ognuno dei quali corrisponde ad un singolo elemento dicontenuto(ades. l'articolodiungiornale)enepresentatutte le informazioni(titolo,testocompleto,nomedell'autore,ecc.)

Il formato di RSS che What Media Say utilizza è il 2.0 i cui elementi addizionali permettonol'implementazione di funzionalità che consentono l'iscrizione al feed (per ricevere notificheautomatichequandoilfeedvieneaggiornato).

GliRSSsonoallabasediWhatMediaSay.Analizzarliopportunamenteèilnostroobiettivoedèciòchefacciamo.

2.10LodLive

LodLiveèrealizzatointeramenteinJavascript,sicomponediunplug-injQuery(LodLive-core),unfileJSONdiconfigurazione(LodLive-profile),unapaginaHTML,pocheimmagini(sprites)ealcuniplug-inpubblici.LodLiveèingradodiconnetterelerisorsepresentinegliendpointconfiguratialsuointerno,consentendoall'utentedipassaredaunendpointall'altrosfruttandolecapacitàdiinterconnessioneinsitenellaLOD.

LodLiveègratuito,opensourceeprontoperessereutilizzatodasubito,vienerilasciatosottolicenzaMITedèfacilmenteintegrabilenelleproprieapplicazioni.

È il primo navigatore di risorse RDF basato unicamente su endpoint SPARQL. LodLive associa lepotenzialità di un browser RDF all'efficacia della rappresentazione a grafo. Sfruttando

Page 8: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

8

opportunamentelepotenzialitàdiLodLiveriusciamoanavigarelanostraontologiaapartiredaltopicviraled'interesse.

2.11. Bitbucket

Lavorandospessoindividualmentecièstatodigrandeaiutounapiattaformadilavoroasincronoperilmantenimentodelcodice.Bitbucket.orgoffregratuitamenteaglisviluppatoriunrepositoryGitperilversionamentoeilmantenimentodelcodice.LasceltadiutilizzareBitBucketèbasatasulfattochealtri tool che offrono funzionalità di simili, comeGitLab, sonodifficilmente raggiungibili dalla reteuniversitariaacausadelDNSinterno,eognispostamentociavrebbecostrettoariconfigurarepiùepiùvolteiriferimentialrepositorygit.

Grazieaquestostrumentoillavoroèprocedutoinmodomoltopiùagile.

2.12.AlchemyAPI

AlchemyAPI, una società di IBM, sfrutta l’apprendimento automatico (deep learning) per fareelaborazionedilinguagginaturaliecomputervision.

Per quanto concerne la computer vision, AlchemyAPI si concentra soprattutto sul rilevamento ericonoscimento facciale. Per quanto riguarda, invece, l’elaborazione di linguaggi naturali,mette adisposizioneben12APIdifferentiperaggiungereinformazioniadaltolivello:

• Estrazioneentità;• Estrazionekeywords;• Tagdiconcetti;• Analisidelsentimento;• …

Apartiredal2014AlchemyAPIhadichiaratodiprocessareoltre3miliardididocumentialmeseeProgrammableWebhaaggiuntoAlchemyAPIallasualistadiAPImiliardarie.

WMSsfruttaAlchemyAPIperestrarreilsentimentodiunanews(sentimentanalysis).

2.12.1SentimentAnalysis

Lasentimentanalisysnonètantounatecnologiaquantounametodologia,infattiindicailprocessarelinguagginaturaliperidentificareedestrarreinformazionidialtolivelloqualilapolarità.

La polarità è un valore assegnato ad un testo o una parola sulla base di un algoritmo prefissato.L’algoritmovalutailtestoolaparolaassegnandounoscorechepuòvariaredaunxadunysceltiadhoc.Loscorevieneassegnatosullabaseditono,intensitàedemotività.

Ilrangedivalorideterminasequelconcettoesprimeunsentimentopositivo,neutraleonegativo.

Page 9: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

9

3. Casid’uso

3.11. Funzionalità

L’applicazionemetteadisposizionedell’utentequattrofunzionalità:

• Ricercatopic:Tramitequestafunzionalità l’utente inserisceunafrase in linguaggionaturale. Ilsistema, a partire dalla frase inserita, estrae i topic utilizzando il servizio wikify e permetteall’utentedisceglierneunoperavviarel’esplorazionedellabasediconoscenza;

• TopicVirali:Questa sezionepermetteall’utentedi conoscere i “topic”più virali perunadatacategoria1inunintervalloditempograzieall’esecuzionediquerysullabasediconoscenzacreataearricchitaperiodicamentetramiteilcrawlerdinewsRSS.Alcaricamentodiquestapaginasonomostrateall’utentelecategoriepresentiall’internodellaKnowledge Base con il il numero di RSS associati. Scelta la categoria, l’utente può sceglierel’intervallodidateincuiricercareitopic.Presiininputlacategoriael’intervallodidate,vieneeseguitalaquerysultriplestore,laqualerestituiràunalistaditopicfiltratapercategoria,perintervallodidateeordinataperilmaggiornumerodinews3incuiognitopicèmenzionato.L’utente cliccando suun topic virale,ha lapossibilità tramite l’utilizzodel software lodlive,diesplorarequeltopic,ovverovisualizzaretuttelenewscollegateadesso.Inoltrecliccandosullanews all’interno di lodlive, è possibile visualizzare il titolo, una breve descrizione e il link delgiornalechehapubblicatolanews;

• AggiungiCategoria:Conquestafunzionalitàl’utentepuòinserireunaCategoriadifeedRSSdallaqualeWMSpotràprelevaredati;

• AggiungiRSS:Conquestafunzionalitàl’utentehalapossibilitàdiinserireunnuovolinkRSSallalistadeifeeddiunacategoria,permettendodiestrarrenuovenewsdaaltrigiornali.

Page 10: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

10

3.12. Scenari

Quidiseguitovengonospecificatigliscenariincuil’utentepuòtrovarsi.

Nome scenario : Topic Virali

Flusso degli eventi: 1. Un utente si collega alla home page della web app http://www.wms.net/home.html

2. Il sistema mostra una schermata di benvenuto, con un menù che dà la possibilità di scegliere le funzionalità.

3. L’ utente clicca su Topic Virali.

4. Il sistema mostra una tabella che contiene le Categorie, secondo le quali sono raggruppate le news.

5. L’ utente clicca sulla voce “Tecnologia”, inoltre grazie a un calendario filtra le news in base alla loro data di pubblicazione e preme “INVIO”.

6. Il sistema mostra una tabella contente i topic di maggior rilevanza presenti in quell’ arco di tempo.

7. L’ utente clicca sulla voce “Apple”.

8. L’ applicazione apre una schermata che attraverso il software LodLive permette all’ utente di navigare la base di conoscenza a partire dal topic “Apple”.

9. L’ utente a questo punto può visualizzare cos’è “Apple” grazie all’ interfacciamento con DBpedia oppure visualizzare le notizie dove il topic è menzionato. L’ utente apre le notizie.

1. Il sistema mostra i nodi relativi alle notizie che menzionano il topic.

10. L’ utente può aprire il link della news oppure continuare l’esplorazione.

In questo caso l’utente può dedurre che il topic “Apple” non viene menzionato solo in un contesto (categoria) “Tecnologico”, ma potrebbero essere presenti delle notizie relative all’ andamento dell’azienda in borsa, in questo caso il topic “Apple” viene menzionato in un contesto (categoria) “Economico”.

Page 11: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

11

Nome scenario : Ricerca Topic

Flusso degli eventi: 1. Un utente si collega alla home page della web app http://www.wms.net/home.html

2. Il sistema mostra una schermata di benvenuto, con un menù che da la possibiltà di scegliere le funzionalità.

3. L’ utente clicca su Ricerca Topic.

4. Il sistema mostra una barra di testo, dove l’utente andrà a scrivere il testo della sua query.

5.L’ utente inserisce il testo “Putin: Voglio una coalizione mondiale contro il terrorismo”.

6. Il sistema mostra una tabella contente i topic estrapolati dalla query in linguaggio naturale, in questo caso il sistema restituisce “Putin”, “coalizione” e “Terrorismo”

7. Selezionando uno dei topic, l’utente può avviare l’esplorazione della base di conoscenza

8. L’ applicazione apre una schermata che attraverso il software LodLive permette all’ utente di navigare la base di conoscenza a partire da un topic.

Nome scenario : Aggiungi Categoria

Flusso degli eventi: 1. Un utente si collega alla home page della web app http://www.wms.net/home.html

2. Il sistema mostra una schermata di benvenuto, con un menù che da la possibiltà di scegliere le funzionalità.

3. L’ utente clicca su Gestione RSS.

4. Il sistema mostra una tabella contenente le Categorie presenti attualmente nella Knowledge Base e un tasto “+” per l’aggiunta di nuove categorie.

5.L’ utente clicca sul tasto “+” per aggiungere una nuova Categoria

6. Il sistema mostra una form che permetterà all’ utente di inserire il nome di una nuova Categoria.

Page 12: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

12

7. Inserito il nome della nuova Categoria, il sistema inserisce la nuova Categoria all’interno della base di conoscenza.

Nome scenario : Aggiungi RSS

Flusso degli eventi: 1. Un utente si collega alla home page della web app http://www.wms.net/home.html

2. Il sistema mostra una schermata di benvenuto, con un menù che da la possibiltà di scegliere le funzionalità.

3. L’ utente clicca su Gestione RSS.

4. Il sistema mostra una tabella contenente le Categorie presenti attualmente nella Knowledge Base.

5.L’ utente clicca su una delle Categorie presenti nell’ elenco.

6. Il sistema mostra tabella dove sono presenti i link RSS disponibili per quella categoria. Inoltre il sistema mostra un tasto “+” per l’aggiunta di un nuovo link.

7.L’ utente clicca sul tasto “+” per aggiungere un nuovo link RSS.

8. Il sistema mostra una form che permetterà all’ utente di inserire l’indirizzo dove sarà possibile le notizie in formato RSS.

9. Inserito il link, il sistema inserisce il nuovo RSS all’interno della base di conoscenza.

Page 13: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

13

3.13. SequenceDiagram

Eccoilsequencediagramrelativoalloscenario“Aggiungicategoria”:

Quidiseguitoilsequencediagraminerenteloscenario“AggiungiRSS”:

Page 14: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

14

Diseguitoilsequencediagramdelloscenario“RicercaTopic”:

Infine,eccoilsequencediagramrelativoa“RicercaTopicVirali”:

Page 15: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

15

4. Architettura

Schemadell’architettura:

4.11. Server

• ApplicationServer:nelnostrocasoApacheTomcat,èunatipologiadiservercheforniscelefunzionalitàdisupportoesviluppodiservlet.

• WMS:rappresentailcoredellanostraapplicazione,quièimplementatatuttalabusinesslogic.

• KB (Knowledge Base): è il componente che astrae la nostra base di conoscenza,interfacciandosiconilTripleStore.

• RSS Crawler: una libreria che a partire da link RSS estrapola le informazioni pubblicate daigiornaliinformatoXML.

• AlchemyAPI:ilmoduloesternochecipermettedieffettuareSentimentAnalysis.

Page 16: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

16

• WikipediaMiner: ilmodulocheha ilcompitodiutilizzare il serviziowikifyperestrapolare itopicprincipalidallenews.

• SPARQLEndPoint:componentechepermetteredieffettuarequerysulTripleStore.

• TripleStore:databasesviluppatoappositamenteperlagestioneditripleRDF,nelnostrocasoèOpenLinkVirtuoso.

4.12. Client

• Browser: l’utente ha la possibilità di accedere all’ applicazione attraverso il browsercollegandosiall’indirizzodellahomepagediWMS.

• WMSClientSide:lacomponenteincludetuttalatecnologiaclientsideutilizzataperlastesuradell’applicazione,HTML,CCSeJavaScript.

• LodLive: ci permette, a partire da risultato della query effettuata dal sistema, di esploraregraficamentelabasediconoscenza.

Page 17: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

17

5. Dettagliontologia

IlseguenteschemarappresentalamodellazionedellabaseontologicautilizzatadalsistemaWhatMediaSay:

Attraverso la classewms:Category nel triple store vengono memorizzate le categorie (es. Sport,Cronaca,Politica,ecc..)utilizzatedaisitiwebdiquotidianiperindicizzareifeedRSS.LalistadelleURLdeifeedRSSèmemorizzatain(wms:URL).

Un’istanzadellaclassewms:RSSrappresentaall’internodellabasediconoscenzalafontediunfeedRSSe,attraversoladatapropertywms:URL,forniscealcrawlerRSSlalocazionedelfile.xmldadareininputalparser.Larelazionewms:hasCategorymemorizzainoltrelacategorizzazionefornitadallafontegiornalistica.

La classewms:News viene utilizzata permemorizzare le news ottenute attraverso il crawler RSS,salvandoall’internodeltriplestoreiltitolo(wms:title),unabrevedescrizione(wms:description),datadipubblicazioneinformatoxsd:Date(wms:pubDate)elaURLchepuntaallapaginadellanewssulsitodellafonte(wms:URL).Ladatapropertywms:sentimentScoreinvecevieneutilizzatapermemorizzareilpunteggioottenutodallasentimentanalysiseffettuatatramiteAlchemyAPI.

Attraversolaclassewms:Topicvengonomemorizzatiirisultatidellaclassificazionedegliargomentidiunanews,correlatiattraversolarelazionewms:hasTopicallarelativaistanzadiwms:News.Inoltre,durantelaclassificazione,sevieneidentificatounnuovotopicancoranonpresentenellaknowledgebase, questo viene creato e relazionato al corrispondente concetto nella base di conoscenza diDBPedia attraverso una relazione owl:sameAs. Configurando opportunamente LodLive percomunicare oltre che con la nostra base di conoscenza anche con l’endpoint SPARQL fornito dait.dbpedia.org, questa relazione permette di aggiungere notevole conoscenza su tutti i topic diWhatMediaSay,esplorabilevisualmentetramiteLodLive

Page 18: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

18

6. Processodiclassificazione

Inquestocapitoloanalizzeremo il flussochesegue l’applicativoperottenereeclassificare lenewsdalle fonti RSS, in modo da popolare in maniera automatica la knowledge base alla base diWhatMediaSay.

Diseguitoèschematizzatoilworkflowrelativoprocessodiclassificazione:

Analizziamoneldettaglioilfunzionamentodiognicomponente:

RSSCrawlerInput LaURLdiunXMLinformatoXML/RSS2.0

(es.http://www.ansa.it/sito/ansait_rss.xml)Output UnalistadioggettiditipoNews

IlmoduloRSSCrawlerhaloscopodiottenerelenewsresedisponibilisullareteinternettramiteunfeedRSS.UnavoltaottenutoilfileXMLapartiredallasuaURL,unappositoparseristanziaunalistadioggettiditipoNews,chemantienelequattroinformazioniprincipalidellanotizia:titolo,descrizione,pubDateeURL.

WikipediaMinerInput UnalistadioggettiditipoNewsOutput UnalistadioggettiditipoNews,arricchitaconitopicestratticlassificandoi

titolidellenotizieattraversoilserviziowikify()

LenewsottenutealpassoprecedentevengonopassatealmodulodiWikipediaMinerche,utilizzandoilcampo<titolo>dellanotizia,classificalenewsottenendoitopicinerenti.Èimportantesottolineare

Page 19: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

19

cheadognitopicrestituitodaWikipediaMinercorrispondeesattamenteunconcettonellabasediconoscenzadiDBPedia.

Inoltre, lenewsottenutevengonoanchepassatealmodulodiAlchemyAPI,prepostoalcalcolodelsentimento.

KnowledgeBaseInput UnalistadioggettiditipoNews,arricchitaconitopicinerentiadessaOutput InserisceneltriplestoreleNewseglieventualinuovitopic

Le news classificate vengono infine passate al modulo Knowledge Base che si occupa dellamemorizzazioneall’internodeltriplestore.Primadell’inserimento,vieneverificatochenonesistanogiàNewschepuntanoallaURLchestaperessereinserita:questocontrollociassicuradelfattochenonpotrannoessercinewsduplicate.UnaverificadiquestotipoèmoltoimportantepoichéifeedRSScontengono solitamente le news degli ultimi 3-4 giorni e un’esecuzione periodica del servizio diclassificazionepotrebbeportareadunnumerodavveronotevolediduplicati.

Inoltrevieneistanziataunarelazioneditipoowl:sameAstraitopicottenutieicorrispondenticoncettinellabasediconoscenzadiDBPedia.QuestarelazionefornisceunamaggioreconoscenzaesplorabiletramiteLodLive.

Page 20: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

20

7. Dettagliimplementativi

InquestocapitoloandremoadanalizzarealcunideipiùinteressantidettagliimplementatividiWMS.

Ipunticheverrannodescrittipiùapprofonditamentesaranno:

• Crawler:fetchdellenewsdaifeedRSSeinserimentonellaKnowledgeBase;• QueryBestTopics;• ComeWMSsfruttaLodLive;

Negliscreenshotsdicodicecheseguono,sifalargousodellaclasseKnowledgeBase.Attraversoessa,WMSsiconnetteconilquadstoreospitatodaOpenLinkVirtuoso.KnowledgeBasehatuttiimetodidiinserimento,updateeremovepermodificareopportunamentelabasediconoscenza.

7.1Crawler

IlcrawlerèilcorediWMS,poiché,grazieadessovienepopolataperiodicamentelabasediconoscenzaaggiungendonewsdaivarifeedRSS.

Il metodo updateNewsInKb() prende in input un oggetto kb di tipo KnowledgeBase. La primaoperazione ad essere eseguita, è il prelievo di tutti i feed RSS all’interno del quad store: questaoperazioneavvieneattraversoilmetodogetRSS()dell’oggettokb.

OgniRSSpresenteinquestalistavienedatoininputalmetodogetNewsFromRSS().Ilmetodosvolgeun parsing di file in formato RSS 2.0, ovvero un di XML suddiviso in tag <item> dove ogni itemrappresentaunanotizia conall’interno4 campi: titolo, descrizione, datadi pubblicazionee link. IlparsercostruisceunoggettoNewsconirelativicampidescrittiprecedentementeedinpiù,all’oggettoNewsaggiungeuna listadi topicestratti tramite ilmetodogetCategoriesFromeText() cheutilizza ilserviziodiWikipediaminer,inoltre,vienecalcolatoilsentimentodellanewstramitel’APIdiAlchemyconilmetodogetSentimentScore()passandogliininputiltitolodellanewsanalizzata.

Page 21: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

21

OgnioggettoNewspresentenellalistaèinseritoall’internodellabasediconoscenzatramiteilmetodoinsertNews(news) di KnowledgeBase. Nell’immagine sottostante è mostrato insertNews() cheinizialmentecontrollaselaURLègiàpresentenellabasediconoscenza,edincasonegativoesegueunaquerysparqltramiteJenasull’endpointVirtuoso.

7.2.Querybesttopic

All’internodellasezione“TopicVirali”diWMSl’utentesceglielacategoriael’intervallodidateincuivuolericercareitopicpiùdiscussi.C’èstatoilbisognodicostruireunmetodocheinterrogasselabasediconoscenzaperpoirestituireirisultatimigliori.IlmetodoinquestioneègetBestTopics()cheininputprende l’URI associata alla categoria scelta dall’utente e l’intervallo di date preferite, in outputrestituisceunamappa<Topic,Integer>.Lachiaveèun’oggettoTopic;questihaduevalori:URIename.IlvaloreèIntegercherappresentailnumerodinewschesonoassociateaqueltopic.

Page 22: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

22

Ilmetodocheincludelarelativaqueryall’endpointVirtuosoèvisibilediseguito.

Laquery seleziona tutti i topicordinandoli inmanieradecrescenteper ilmaggiornumerodinewscorrelateadessie,ovviamente,ogninewsèfiltrataperrangedidatadipubblicazione.

Èimportantenotarel’utilizzodellafilternellaquerySPARQLperdefinirel’intervallodidate:l’utilizzodel costrutto in questa forma è possibile grazie al fatto che le date prima di esserememorizzatevengonoconvertitenelformatoISO8601perpoiesseresalvateconiltipoxsd:Date.

Page 23: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

23

7.3.LodLive

L’utilizzo di LodLive è stato di fondamentale importanza per permettere a WMS di garantirel’esplorarazione grafica della base di conoscenza partendo da un determinato topic. Avendo ilsorgentedelcodiceèstatopossibileapportaremodificheinalcunipuntiperraggiungeregliobiettiviprefissati.Lamodificapiùsemplice,masostanzialmentepiùimportanteapportata,aLodLiveèstataeffettuataall’internodelfileprofile.js.All’internodiessosonodefinitiiparametridiconnessionecongliendpointsucuisiinterfacciailtoolLodLive.Vistal’esigenzadiutilizzareduebasediconoscenza,quelladiWMS (dove risiedono tutte le info ricavatedai feedRSS)equelladiDBPedia, sonostateinseriteall’internodelfileleURIhttp://it.dbpedia.orgehttp://www.wms.net/ontology/.

Nelcodicesottostanteèpossibileevincerelamodificadicuisopra.

Page 24: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

24

8. Manualed’uso

Peraiutarel’utentenell’utilizzodellefunzionalitàmesseadisposizionediWhatMediaSay,quidiseguito,riportiamoalcuniscreenshotsesplicativi.Consultandoquestiultimil’utentepotràvivereun’esperienzatrasparenteconWMS.

8.11. CercaTopic

L’utenteaccedendoallapagina“CercaTopic”diWMShalapossibilitàdieffettuareunaricercaditopicin linguaggionaturale. Basta semplicementedigitarenellabarradi ricerca visualizzata il testoo laparolad’interesse.

WMSsuggerisceall’utentedeitopicestrattidaltestoinseritoprecedentemente.ConunbanaleclicksipotrànavigarelaconoscenzadiWMS.

Page 25: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

25

Scegliendoilprimotopic“DavidBowie”,lapotenzagraficadiWMSpermetteràl’esplorazionevisualedellenotizierelative.Inizialmentecompariràunasolasferachedefinisceiltopicselezionato.Cliccandosulla sfera compariranno delle piccole sfere vuote che rappresentano le news correlate a “DavidBowie”.Lanavigazionevisualeavvienecliccandodivoltainvoltasuunasferaesuccessivamentesullepiccolesferechecompaionodivoltainvolta.Nelloscreenshotsottostantesonostateapertequattronewseall’internodiciascunasferavediamovisualizzatopartedeltitolodellanewscherappresentano.Navigandoulteriormentelanewsèpossibileconoscereaqualchecategoriaappartiene:nell’esempiovediamo sia notizie appartenenti alla categoria “Cultura”, sia notizie appartenenti alla categoria“Tecnologia”.

Page 26: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

26

Èpossibileconoscereulterioridettaglisudiunasingolanewscliccandoilpallinoriportanteilsimbolodeldocumento.Vediamochecliccandosullanews“DavidBowietecnologovisionario…”èpossibileleggereiltestodellanewsoltrecheesserelinkatidirettamentealsitochehaprodottolanews.

QuidiseguitounesempiodiciòcheapparecliccandosuunURLrelativoadunanews.

Page 27: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

27

8.12. TopicVirali

L’utenteaccedendoallapagina“TopicVirali”diWMSha lapossibilitàdieffettuareunaricercadeitopic più discussi dalmondo. Selezionando semplicemente la categoria e un range di date in cuiricercare(opzionale),unclicsu“Invia”permetteràdivisualizzareitopicvirali(inquellassoditempo,sedefinito).

Nell’esempioriportatoabbiamoselezionatolacategoria“Tecnologia”,nonabbiamodefinitounrangediricercaperdate,selezionando“Tutte”,e,traitopicviralirestituiti,abbiamodecisodinavigareiltopic“Apple”.Sipuònotare, inoltre,cheaccantoaciascuntopicviraleèpresenteunaemoji.Taleemojiindicalapolaritàdeltopicinbaseall’analisidelsentimentodiciascunanotiziacheècorrelataaqueltopic.L’espressionedell’emoji(faccina)cambiainbasealrisultatodellamediatralepolaritàdellesuddetenews. Inquestoesempio lamaggioranzadei topichaunapolaritàpositiva, infatti tutte lefaccinesonosorridentiofelici.

DaprecisarecheilrangesulqualelavoraWMSperilcalcolodelsentimentovariain[-1,1]∈ℝ.Ilrangeèstatosuddivisoin5fasce,corrispondentia5emojiconespressionidiverse.Vediamoleneldettaglio.

Tabellariassuntivapolarità->emojiRangepolarità Emoji Descrizione

[0.6,1] VeryHappy[0.2,0.6] Happy[-0.2,0.2] Indifferent[-0.6,-0.2] Sad[-1,-0.6] VerySad

Page 28: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

28

Comedescrittonella funzionalitàprecedente,unavolta selezionato il topicd’interesse,èpossibileesplorarelaconoscenzadiWMSinmanieragrafica.Lemodalitàdiesplorazionesonolemedesime.

Inquestoesempioèpossibilenotareche,comesopra,duenotiziechemenzionano lostessotopicappartengonoacategoriediversetraloroepossiamoinoltreevincerelarelazione<owl:sameAs>trailtopic“Apple”edilconcetto“AppleAppleInc.”diDBPedia.NavigandoulteriormenteapartiredalconcettodiDBPedial’utentehalapossibilitàdiesplorarelavastissimaconoscenzadiWikipedia.

8.13. GestioneRSS

L’utenteaccedendoallapagina“GestioneRSS”diWMSha lapossibilitàampliare la conoscenzadiWMSaggiungendonuovecateogoriee/onuoviFeedRSS.

Nelloscreenshotseguentesinotacomeconunclicsultasto“+”compareuncampodovel’utentepuòinserirelacategoriachepreferisce.

Page 29: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

29

Cliccandoinvecesuunacategoria,vengonovisualizzatiifeedRSSdacuiWMSprelevalenews.Semprecliccandoiltasto“+”sipotràaggiungereunFeedRSS.

Page 30: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

30

9. Sviluppifuturi

IlfuturodiWMSètuttodascrivere.Attualmentesipotrebbedefinireun’applicazioneinfase“BETA”,mailteamdisviluppohagiàpensatoaipossibiliimprovements.Vediamoliunoaduno.

Gestionedegliutenti.AlmomentoWMSnongestiscegliutenti,nonvièunapaginadiloginel’utentenon può personalizzare l’applicazione. La gestione degli RSS è attualmente embrionale in quantochiunqueapportamodifichecambiapersempreilfunzionamentodiWMSsiaperséstessochepertutticolorocheloutilizzano.ÈinfattipocoraccomandabilemodificarelefondamentadelcrawlingdiWMSamenodinonessercertidiciòchesistafacendo.NelprossimofuturoilteamdisvilupposiimpegneràaffinchéWMSpossagestiregliutentiepermettergliunapersonalizzazionesenzaeguali,inmodocheognunopossanavigaresololenewschepiùgliinteressano.

Integrazioneintuttelelingue.WMSnascesoloperutenticheconosconol’italiano.Abbiamodettoperò che DBPedia offre conoscenza per 125 lingue diverse che assieme classificano 40milioni diconcetti.WMS si prefigge, tra qualche anno, un’integrazione con le lingue più parlate almondo:inglese, francese, spagnolo, arabo, cinese… Sfruttando nel miglior modo possibile le relazioni<owl:sameAs> tra i concetti delle varie versioni di DbPedia, integrandoGoogle Translate inmodotrasparenteepotendocosìgoderediunvastissimonumerodiFeedRsssucuipoterfarecrawling,rendendol’applicazioneallaportatadituttigliutenti,diqualsiasinazione,diqualsiasilingua.

Interfacciamentoconleontologieadhocperciascunacategoria.Nellafase“BETA”WMSsiinterfacciasolamente con l’ontologia di DBPedia. Quello che vogliamo fare in futuro è permetterel’interfacciamentoconaltreontologiedisupporto,ontologiepiùspecificheperlecategoriedinewsprese in considerazione. Ad esempio per la categoria sport la BBC ha una ottima ontologia(consultabile qui http://www.bbc.co.uk/ontologies/sport) che sarebbe di grandissimo supporto aWhatMediaSay. Non è finita qui perché ci sono tantissimi progetti che lavorano per creare unaontologiadelCinemacheracchiudanonsoloilcinemachetuttinoisiamoabituatiaconoscere,maanche il cinema orientale, ai più sconosciuto perché non blasonato come quello Hollywoodiano.Integrare queste ontologie esterne, più “fitted” (gli inglesi direbbero) sulle categorie delle news,renderebbeirisultatidiWMSancorapiùconsistenti.

Sharing.Qualunqueapplicazionehalapossibilitàdicondividerecontenuti.WMSpiùdituttedovrebbeavere questa funzionalità, e l’avrà. Gli sviluppatori voglionomettere a disposizione dell’utente lapossibilitàdicondividereilcontenutodellaloroinformazionesuimaggiorisocial:Facebook,Twitter…

QuestisonosoloalcunideipossibilimiglioramenticheWhatMediaSaypotrebbefornirenelfuturoabreveemediotermineatuttigliutentichevoglionoinformarsiconmodalitàdeltuttonuove.

Page 31: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

31

10. Conclusioni

What Media Say è un’applicazione che permette di ottenere informazioni di interesse in modosempliceeveloce.

WMS analizza gli RSS forniti dalle più famose testate giornalistiche; ogni notizia viene analizzata,filtrataecategorizzataestraendoneitopicpiùrilevanti.Graziealodlive,apartiredaltopicscelto,sipossono visualizzare tutte le news collegate ad esso, oltre a poter visualizzare il titolo, una brevedescrizioneedillinkdelgiornalechehapubblicatolanews.Iltuttoinun’unicaapplicazione!

Non poche sono state le difficoltà incontrate durante lo sviluppo di WMS. Il team ha dovutoinnanzituttoentrarenelmondodellenews,degliRSS,capirelalorostrutturaecomemanipolarlinelmiglioredeimodi.

Successivamente ha dovuto creare una base di conoscenza adatta ad ospitare tutte le news ed acollegarletraloroinmodocoerente.FortunatamenteProtègèhapermessounacreazionesempliceedintuitivadell’ontologia.

Ilteamsièinoltrecimentatonell’utilizzodeltoolLodLive,modificandone,inparte,l’implementazionedi base, arricchendo ciò che già c’era per favorire la lettura e la navigazione delle news da partedell’utentemediodiWMS,inmodochetuttofosseilpiùintuitivopossibile.

Page 32: WMS – What Media Say - Raffaele Schiavone · 3 1. Introduzione What Media Say (WMS) è un progetto che nasce nell’ambito del corso di Web Semantico 2015/16 dell’Università

32

11. Glossario

1. Categoria:primasuddivisionedellenotizie,effettuatadirettamentedallatestatagiornalistica.2. Feed RSS: è un'unità di informazioni formattata secondo specifiche (XML) stabilite

precedentemente. Nel nostro caso si tratta di RSS, tecnologia utilizzata per lo scambio dinotizie.

3. News:notiziasingolaestrapolataapartiredaunfeedRSSfornitodaigiornali.4. Topic:rappresentailconcettoestrapolatodaunanotiziagraziealtoolWikipediaMiner.

IltopicestrapolatoèmappatosuunconcettogiàpresenteinWikipedia.