Slide dell'intervento tenuto nell'ambito del ciclo di seminari “Digital Humanities at CTL” il 16/04/2015 alla Scuola Normale Superiore di Pisa da Luca De Santis di Net7.
Non una presentazione “tradizionale” sul Semantic Web ma un’occasione per riflettere sull’attualità, il senso e l’utilità delle tecnologie semantiche.
Un intervento sulla “Semantica nel web” e non solo quindi sul Semantic Web.
Le note sulla genesi di questa presentazione sono disponibili in inglese qui: http://lucadex.blogspot.it/2015/04/theres-semantics-in-this-web.html
La semantica per automatizzare una redazione web: l’esperienza di Innolabspl...Net7
Slide della presentazione tenuta al Drupal Day del 4 dicembre 2015 a Bologna da Luca De Santis e Massimiliano Pardini sul progetto Innolabsplus.
Innolabsplus.eu è un portale informativo sulle politiche comunitarie. La sua peculiarità è quello di integrare un motore semantico per automatizzare le funzioni redazionali. Il portale importa oltre 40 feed da siti informativi e istituzionali: tramite il motore semantico identifica i concetti chiave nel testo e applica una classificazione automatica. Il portale integra le funzionalità semantiche delle Dandelion API: il risultato è un modulo Drupal 7 che Net7 ha rilasciato con licenza open source.
[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
di Luca Cracco
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a timeDrupalDay
Innovation & Open source are almost always related, but start, sustain and position an open source project is not a easy task. Using Drupal Console as an example, would be presented the challenges and rewards or creating and maintaining an Open Source project. Talk in lingua inglese.
di Eduardo Garcia
Slide dell'intervento tenuto nell'ambito del ciclo di seminari “Digital Humanities at CTL” il 16/04/2015 alla Scuola Normale Superiore di Pisa da Luca De Santis di Net7.
Non una presentazione “tradizionale” sul Semantic Web ma un’occasione per riflettere sull’attualità, il senso e l’utilità delle tecnologie semantiche.
Un intervento sulla “Semantica nel web” e non solo quindi sul Semantic Web.
Le note sulla genesi di questa presentazione sono disponibili in inglese qui: http://lucadex.blogspot.it/2015/04/theres-semantics-in-this-web.html
La semantica per automatizzare una redazione web: l’esperienza di Innolabspl...Net7
Slide della presentazione tenuta al Drupal Day del 4 dicembre 2015 a Bologna da Luca De Santis e Massimiliano Pardini sul progetto Innolabsplus.
Innolabsplus.eu è un portale informativo sulle politiche comunitarie. La sua peculiarità è quello di integrare un motore semantico per automatizzare le funzioni redazionali. Il portale importa oltre 40 feed da siti informativi e istituzionali: tramite il motore semantico identifica i concetti chiave nel testo e applica una classificazione automatica. Il portale integra le funzionalità semantiche delle Dandelion API: il risultato è un modulo Drupal 7 che Net7 ha rilasciato con licenza open source.
[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
di Luca Cracco
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a timeDrupalDay
Innovation & Open source are almost always related, but start, sustain and position an open source project is not a easy task. Using Drupal Console as an example, would be presented the challenges and rewards or creating and maintaining an Open Source project. Talk in lingua inglese.
di Eduardo Garcia
[drupalday2017] - DRUPAL per la PA: il modello della Trasparenza di SapienzaDrupalDay
La Sapienza mette a disposizione dei cittadini, delle istituzioni, delle imprese e degli utenti in generale due piattaforme sviluppate in Drupal in ottemperanza ai DLgs 33/2013 (come modificato dal D.Lgs. 97/2016) e DLgs 190/2012 sulla trasparenza amministrativa. Il talk tratterà le soluzioni implementate in Drupal per soddisfare i requisiti normativi.
di Francesco Barcellona e Ramon Souviron
[drupalday2017] - Cosa significa convertire un modulo da D7 a D8DrupalDay
Ho sentito spesso dire: “non utilizziamo D8 perché non ha ancora i moduli che ci servono per il progetto.”. OK, allora iniziamo a convertirli! Presenterò la mia esperienza nel convertire il modulo Iubenda Integration da D7 a D8, cercando di mettere in luce le principali difficoltà incontrate. Con questa sessione la mia speranza è di fornire le basi per convertire i propri moduli da a chi sviluppa progetti in Drupal 8.
di Roberto Peruzzo
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al themingDrupalDay
Mano a mano che i siti diventano sempre più complessi ed articolati emergono nuovi metodi di progettazione che cercano di gestire questa complessità. Uno dei metodi più popolari è l'Atomic Design che ha nei seguenti elementi i mattoni fornamentali con cui progettare il sito: Atomi, Molecole, Organismi, Templates, Pagine. Questa tecnica è supportata da uno strumento: PatternLab. C'è molta attività attorno all'uso di questo strumento in Drupal, in questo talk vedremo a che punto è l'integrazione.
di Gian Mario Mereu
[drupalday2017] - Speed-up your Drupal instance!DrupalDay
Perchè la tua istanza Drupal non performa e cosa puoi fare per invertire la rotta. D'altronde è una questione complessa: i moduli, la qualità del codice, l'uso delle cache, ma anche la versione di PHP, il proxy-cacher, il tuo hosting e, in ultimo, le cavallette...
di Daniele Piaggesi
Come approcciare il layer di theming in Drupal 8 (e non solo) utilizzando strumenti grazie ai quali possiamo ottenere tempi di sviluppo più breve.
Relatore: Evan Butera
Con la versione 7 di Drupal è stato introdotto il concetto di Entity.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Relatore: Marco Vito Moscaritolo
La piattaforma web di CNA: Istanze Drupal replicabili integrate con Alfresco ...DrupalDay
Raccontiamo un case study decisamente importante per valutare la potenza e la flessibilità di Drupal in ambienti complessi.
Relatori: Daniele Piaggesi e Leonardo Guaragna
Lo sviluppo del modulo Devel affonda le sue radici nel lontano 2003 quando la versione di Drupal era la 4.1. Ne è passata di acqua sotto i ponti e siamo in direttura di arrivo per la prima versione stabile di Devel per Drupal 8. Molte cose sono cambiate sia a livello di architettura che di funzionalità messe a disposizione degli sviluppatori. Integrazione con il Core - integrazione nativa con il modulo Toolbar del Core - pagine di informazione sul Service Container, le rotte, le entità, gli eventi e molto altro - cambio rapido di utente - accesso in lettura e modifica dei dati memorizzati nel Configuration Management System e nelle State API - estensioni di Twig per il dump delle variabili o l'impostazione di breakpoint per xDebug Dumpers Un sistema a plugin per stampare in pagina variabili complesse come array ed oggetti. Kint, Symfony var-dumper, Doctrine, sono tutti supportati e presenti di default in Devel. Webprofiler Profila e analizza ogni singola pagina del sito. Dalla toolbar che Webprofiler aggiunge al footer di ogni pagina hai una visione sull'utilizzo delle risorse, sulle query al database, sulle viste, sui blocchi e molto altro.
di Luca Lusso
Indaghiamo quali sono gli elementi di un processo produttivo di un progetto Drupal che devono essere condivisi con il suo Stakeholder per una strategia win-win.
di Claudia Astazi
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.DrupalDay
Il talk sarà incentrato sul tema dell’accessibilità web. Sarà introdotta la tematica sia dal punto di vista generale (cos’è l’accessibilità, quali sono le leggi nazionali in materia), che delle metodologie utilizzate per la verifica dell’accessibilità (le WCAG, gli esperti ed i gruppi di valutazione), che degli strumenti a supporto dello sviluppo di siti accessibili (validatori e contrast checker), con una dimostrazione del loro funzionamento. Infine si discuterà dell’accessibilità in Drupal.
di Antonio Giovanni Schiavone
[drupalday2017] - Behat per Drupal: test automatici e molto di piùDrupalDay
Behat è nato per semplificare il processo di accettazione da parte del cliente: per evitare ambiguità si realizza un test automatico (leggibile anche da chi non ha competenze tecniche) la cui esecuzione con successo garantisce che le specifiche siano rispettate. L'integrazione di Behat nel processo di sviluppo Drupal permette tuttavia di andare ben oltre: si può usare Behat per condividere le specifiche con il cliente, per guidare lo sviluppo (scrivendo il test prima del codice), per assistere il debug (usando uno scenario per popolare una situazione di errore ripetibile) e persino per migrare un sito da Drupal 7 a Drupal 8 (codificando il comportamento del sito in una serie di test che vengono poi usati come base per lo sviluppo del nuovo sito). Per tutti gli scenari descritti vedremo esempi basati sull'esperienza di Nuvole.
di Andrea Pescetti
[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
di Marco Capobussi
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...DrupalDay
Gli Open Data rappresentano il motore per l’innovazione, la crescita e la governance. Recentemente la Commissione Europea, nell’ambito delle azioni dell’Agenda Digitale, ha presentato un programma di azioni per il riutilizzo delle informazioni del settore pubblico che dovrebbe dare un contributo consistente all’economia. Sulla base di queste importanti indicazioni Sapienza ha sviluppato dei modelli web realizzati con Drupal per valorizzare il patrimonio dei dati di Ateneo mediante l'esposizione e il riutilizzo. Il licensing e la tutela dei dati personali sono gli strumenti necessari per gli sviluppatori interessati alla costruzione di servizi innovativi per le PA.
di Andrea Dori
[drupalday2017] - Quando l’informazione è un servizioDrupalDay
Creare e mantenere contenuti online è un’attività complessa e costosa per ogni organizzazione, ma strategica: per la PA i contenuti online rappresentano un canale e un punto di contatto essenziale nei servizi per il cittadino. Quali sono i metodi e gli approcci che rendono questo investimento efficace? E come cambiano la funzione e la fisionomia del CMS, quando da strumento di pubblicazione e manutenzione diventa una piattaforma per gestire l’intero processo produttivo del contenuto?
di Francesca Marangoni
Trend Analysis sui Social Network - I risultati del progetto SenTaClAusNet7
Presentazione del prototipo per la Trend Analysis, sviluppato da Net7 nel progetto SenTaClAus, finanziato dalla Regione Toscana nell'ambito del programma POR-CReO 2007-13.
SenTaClAus, un acronimo che sta per “Sentiment Tagging & Clustering Analysis on web & social contents” ha visto la partecipazione di Net7, anche azienda coordinatrice, SpazioDati, StudioFlu e del gruppo Advanced Algorithms and Applications (A3) del Dipartimento di Informatica dell’Università di Pisa.
Per informazioni sul progetto: http://sentaclaus.netseven.it/
I servizi semantici di analisi testuale nel progetto SenTaClAusNet7
Descrizione dei servizi di analisi testuale sviluppati nell'ambito del progetto di ricerca SenTaClAus.
Per maggiori informazioni sul progetto visitate il sito http://sentaclaus.netseven.it
[drupalday2017] - DRUPAL per la PA: il modello della Trasparenza di SapienzaDrupalDay
La Sapienza mette a disposizione dei cittadini, delle istituzioni, delle imprese e degli utenti in generale due piattaforme sviluppate in Drupal in ottemperanza ai DLgs 33/2013 (come modificato dal D.Lgs. 97/2016) e DLgs 190/2012 sulla trasparenza amministrativa. Il talk tratterà le soluzioni implementate in Drupal per soddisfare i requisiti normativi.
di Francesco Barcellona e Ramon Souviron
[drupalday2017] - Cosa significa convertire un modulo da D7 a D8DrupalDay
Ho sentito spesso dire: “non utilizziamo D8 perché non ha ancora i moduli che ci servono per il progetto.”. OK, allora iniziamo a convertirli! Presenterò la mia esperienza nel convertire il modulo Iubenda Integration da D7 a D8, cercando di mettere in luce le principali difficoltà incontrate. Con questa sessione la mia speranza è di fornire le basi per convertire i propri moduli da a chi sviluppa progetti in Drupal 8.
di Roberto Peruzzo
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al themingDrupalDay
Mano a mano che i siti diventano sempre più complessi ed articolati emergono nuovi metodi di progettazione che cercano di gestire questa complessità. Uno dei metodi più popolari è l'Atomic Design che ha nei seguenti elementi i mattoni fornamentali con cui progettare il sito: Atomi, Molecole, Organismi, Templates, Pagine. Questa tecnica è supportata da uno strumento: PatternLab. C'è molta attività attorno all'uso di questo strumento in Drupal, in questo talk vedremo a che punto è l'integrazione.
di Gian Mario Mereu
[drupalday2017] - Speed-up your Drupal instance!DrupalDay
Perchè la tua istanza Drupal non performa e cosa puoi fare per invertire la rotta. D'altronde è una questione complessa: i moduli, la qualità del codice, l'uso delle cache, ma anche la versione di PHP, il proxy-cacher, il tuo hosting e, in ultimo, le cavallette...
di Daniele Piaggesi
Come approcciare il layer di theming in Drupal 8 (e non solo) utilizzando strumenti grazie ai quali possiamo ottenere tempi di sviluppo più breve.
Relatore: Evan Butera
Con la versione 7 di Drupal è stato introdotto il concetto di Entity.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Relatore: Marco Vito Moscaritolo
La piattaforma web di CNA: Istanze Drupal replicabili integrate con Alfresco ...DrupalDay
Raccontiamo un case study decisamente importante per valutare la potenza e la flessibilità di Drupal in ambienti complessi.
Relatori: Daniele Piaggesi e Leonardo Guaragna
Lo sviluppo del modulo Devel affonda le sue radici nel lontano 2003 quando la versione di Drupal era la 4.1. Ne è passata di acqua sotto i ponti e siamo in direttura di arrivo per la prima versione stabile di Devel per Drupal 8. Molte cose sono cambiate sia a livello di architettura che di funzionalità messe a disposizione degli sviluppatori. Integrazione con il Core - integrazione nativa con il modulo Toolbar del Core - pagine di informazione sul Service Container, le rotte, le entità, gli eventi e molto altro - cambio rapido di utente - accesso in lettura e modifica dei dati memorizzati nel Configuration Management System e nelle State API - estensioni di Twig per il dump delle variabili o l'impostazione di breakpoint per xDebug Dumpers Un sistema a plugin per stampare in pagina variabili complesse come array ed oggetti. Kint, Symfony var-dumper, Doctrine, sono tutti supportati e presenti di default in Devel. Webprofiler Profila e analizza ogni singola pagina del sito. Dalla toolbar che Webprofiler aggiunge al footer di ogni pagina hai una visione sull'utilizzo delle risorse, sulle query al database, sulle viste, sui blocchi e molto altro.
di Luca Lusso
Indaghiamo quali sono gli elementi di un processo produttivo di un progetto Drupal che devono essere condivisi con il suo Stakeholder per una strategia win-win.
di Claudia Astazi
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.DrupalDay
Il talk sarà incentrato sul tema dell’accessibilità web. Sarà introdotta la tematica sia dal punto di vista generale (cos’è l’accessibilità, quali sono le leggi nazionali in materia), che delle metodologie utilizzate per la verifica dell’accessibilità (le WCAG, gli esperti ed i gruppi di valutazione), che degli strumenti a supporto dello sviluppo di siti accessibili (validatori e contrast checker), con una dimostrazione del loro funzionamento. Infine si discuterà dell’accessibilità in Drupal.
di Antonio Giovanni Schiavone
[drupalday2017] - Behat per Drupal: test automatici e molto di piùDrupalDay
Behat è nato per semplificare il processo di accettazione da parte del cliente: per evitare ambiguità si realizza un test automatico (leggibile anche da chi non ha competenze tecniche) la cui esecuzione con successo garantisce che le specifiche siano rispettate. L'integrazione di Behat nel processo di sviluppo Drupal permette tuttavia di andare ben oltre: si può usare Behat per condividere le specifiche con il cliente, per guidare lo sviluppo (scrivendo il test prima del codice), per assistere il debug (usando uno scenario per popolare una situazione di errore ripetibile) e persino per migrare un sito da Drupal 7 a Drupal 8 (codificando il comportamento del sito in una serie di test che vengono poi usati come base per lo sviluppo del nuovo sito). Per tutti gli scenari descritti vedremo esempi basati sull'esperienza di Nuvole.
di Andrea Pescetti
[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
di Marco Capobussi
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...DrupalDay
Gli Open Data rappresentano il motore per l’innovazione, la crescita e la governance. Recentemente la Commissione Europea, nell’ambito delle azioni dell’Agenda Digitale, ha presentato un programma di azioni per il riutilizzo delle informazioni del settore pubblico che dovrebbe dare un contributo consistente all’economia. Sulla base di queste importanti indicazioni Sapienza ha sviluppato dei modelli web realizzati con Drupal per valorizzare il patrimonio dei dati di Ateneo mediante l'esposizione e il riutilizzo. Il licensing e la tutela dei dati personali sono gli strumenti necessari per gli sviluppatori interessati alla costruzione di servizi innovativi per le PA.
di Andrea Dori
[drupalday2017] - Quando l’informazione è un servizioDrupalDay
Creare e mantenere contenuti online è un’attività complessa e costosa per ogni organizzazione, ma strategica: per la PA i contenuti online rappresentano un canale e un punto di contatto essenziale nei servizi per il cittadino. Quali sono i metodi e gli approcci che rendono questo investimento efficace? E come cambiano la funzione e la fisionomia del CMS, quando da strumento di pubblicazione e manutenzione diventa una piattaforma per gestire l’intero processo produttivo del contenuto?
di Francesca Marangoni
Trend Analysis sui Social Network - I risultati del progetto SenTaClAusNet7
Presentazione del prototipo per la Trend Analysis, sviluppato da Net7 nel progetto SenTaClAus, finanziato dalla Regione Toscana nell'ambito del programma POR-CReO 2007-13.
SenTaClAus, un acronimo che sta per “Sentiment Tagging & Clustering Analysis on web & social contents” ha visto la partecipazione di Net7, anche azienda coordinatrice, SpazioDati, StudioFlu e del gruppo Advanced Algorithms and Applications (A3) del Dipartimento di Informatica dell’Università di Pisa.
Per informazioni sul progetto: http://sentaclaus.netseven.it/
I servizi semantici di analisi testuale nel progetto SenTaClAusNet7
Descrizione dei servizi di analisi testuale sviluppati nell'ambito del progetto di ricerca SenTaClAus.
Per maggiori informazioni sul progetto visitate il sito http://sentaclaus.netseven.it
corso introduttivo di information literacy per la 4 C del liceo Vittorini
esperienza di scambio interbibliotecario Schiaparelli - Gramsci/ liceo Vittorini, Milano
La SEO semantica è una tecnica chiave per promuovere il tuo sito web e attirare più traffico organico. In questo viaggio insieme, scopriremo cosa sono i dati strutturati e perché le tecnologie semantiche sono diventate uno strumento fondamentale per SEO, web writer, blogger e content marketer.
Tornerai sulla terra con un bagaglio di nuove tecniche per ottimizzare i tuoi contenuti e far parlare il tuo sito web attraverso la ricerca vocale.
Siamo un gruppo di Teoria e Tecnologia della Comunicazione dell'università Bicocca e presentiamo i seguenti motori di ricerca semantici:
Wolfram Alpha
DuckDuck Go
Free Base
Bing
DeepDyve
Ontologie per i linked open data / Stefano De Luca, Paola De Caro, Claudia C...libriedocumenti
Conferenza tenuta presso la ex SSAB da Stefano De Luca e Paola De Caro (Evodevo) il 12-03-2015 nell'ambito del 9. ciclo "Biblioteche libri documenti: dall'informazione alla conoscenza", a.a. 2014-2015, Prof.ssa M.T. Biagetti
Andrea Angiolini + Prof. Fabio Vitali (Casa editrice Il Mulino)
Da quasi 10 anni il Mulino ha strutturato il proprio processo di produzione, formalizzando workflow di metadati e file e definendo ruoli per gli attori della catena editoriale.
Lo scopo principale era e resta conservare la produzione dei libri, rendendola riutilizzabile perché basata su standard. Questo ci ha permesso tra l'altro di realizzare successivamente nuovi contenuti e servizi per la ricerca e lo studio, nei quali le interfacce d’uso sono centrali.
Fabio Vitali è Professore all’Università di Bologna, Dipartimento di Informatica, Scienza e Ingegneria ed è attualmente il coordinatore del corso di studi di Informatica.
Si definisce un data designer e ha contribuito alla progettazione di linguaggi e metalinguaggi per la descrizione di domini, come XML Schema per il W3C e Akoma Ntoso per OASIS.
I suoi interessi scientifici si rivolgono principalmente alla definizione e all’uso di formati documentali per ogni tipo di applicazione, ed in particolare all’utilizzo di linguaggi dichiarativi per caratterizzare applicazioni software in genere che trattino dati e documenti.
https://www.unibo.it/sitoweb/fabio.vitali/cv
Le basi della SEO | Quando il posizionamento ha un'animaMichele Franzese
Le slide del corso SEO di Seogarden.net riportano tutti gli aspetti che vengono trattati nelle 5 lezioni da 3 ore ciascuna in cui il corso è suddiviso.
Si parte dagli elementi di base dell'ottimizzazione seo, per poi analizzare tutti gli strumenti di monitoraggio e le tecniche avanzate di link building, fino all'analisi delle strategie di posizionamento di siti web diversi per tipologia e obiettivi.
Ho cercato di rappresentare tutti gli aspetti della SEO, per giungere ad una conclusione, siccome oggi più che mai la SERP non è più solo frutto di un lavoro ben fatto dal punto di vista tecnico, al professionista della SEO vengono richieste nuove competenze, dalla semantica al copywriting, fino alla capacità di relazionarsi con gruppi eterogenei di stakeholder.
Sono passati decine di anni dai primi siti web composti solo da testo, immagini e link. Ora gli utenti pretendono di più volendo fare di meno. Desiderano che il tuo sito web capisca i loro gusti, fornisca approfondimenti, si modifichi in base alle loro esigenze. Durante questo intervento verranno forniti consigli su quali tecniche e servizi di text analysis, collective intelligence e semantic web possono rendere il nostro sito web intelligente.
La semantica per automatizzare una redazione web: l'esperienza di Innolabplus.eu
1. !
La semantica per automatizzare una
redazione web:!
l’esperienza di Innolabsplus.eu
Bologna 4 dicembre 2015
Luca De Santis – Massimiliano Pardini
Net7 Srl - Pisa
2. !
Innolabsplus.eu: cos’è
http://innolabsplus.eu/!
• Innolabs+: portale informativo multilingua per professionisti e
imprese sulle politiche comunitarie in materia di innovazione.!
• Realizzato nell’ambito di un progetto del Dipartimento di Scienze
Politiche dell’Università di Pisa!
5. !
• Obiettivo: fornire informazioni aggiornate, selezionate e classificate
secondo 3 obiettivi principali e 11 categorie!
– Crescita Intelligente, Crescita Inclusiva, Crescita Sostenibile!
• Fonti: oltre 40 siti italiani, francesi e comunitari in lingua inglese!
• Il lavoro di cernita è facile se hai a disposizione una redazione
numerosa ed esperta di politiche comunitarie…!
Innolabsplus.eu: cosa fa
6. !
• Obiettivo: fornire informazioni aggiornate, selezionate e classificate
secondo 3 obiettivi principali e 11 categorie!
– Crescita Intelligente, Crescita Inclusiva, Crescita Sostenibile!
• Fonti: oltre 40 siti italiani, francesi e comunitari in lingua inglese!
• Il lavoro di cernita è facile se hai a disposizione una redazione
numerosa ed esperta di politiche comunitarie…!
Innolabsplus.eu: cosa fa
• …ma come fare quando il tuo team è decisamente più ristretto (e
per di più pesantemente sovraccarico di lavoro???)!
7. !
Innolabsplus.eu: come fa
• Perché non farsi aiutare… dalle macchine?
• Un sistema che completamente in
automatico
– analizzi gli articoli prelevati da molteplici
fonti
– decida di pubblicarli o meno se il loro testo
è pertinente con le tematiche del portale
8. !
Innolabsplus.eu: come fa
• Perché non farsi aiutare… dalle macchine?
• Un sistema che completamente in
automatico
– analizzi gli articoli prelevati da molteplici
fonti
– decida di pubblicarli o meno se il loro testo
è pertinente con le tematiche del portale
• Da un lavoro puramente manuale…
9. !
Innolabsplus.eu: come fa
• Perché non farsi aiutare… dalle macchine?
• Un sistema che completamente in
automatico
– analizzi gli articoli prelevati da molteplici
fonti
– decida di pubblicarli o meno se il loro testo
è pertinente con le tematiche del portale
• Da un lavoro puramente manuale…
• ... allo sfruttamento dell’intelligenza della
macchina
11. !
Innolabsplus.eu: come fa
• Per far questo è necessario
“comprendere” il testo
• Semantic web?
– Potente ma complesso lo stack
tecnologico su cui è basato.
– La sua visione si è avverata solo in
parte.
12. !
Innolabsplus.eu: come fa
• Per far questo è necessario
“comprendere” il testo
• Semantic web?
– Potente ma complesso lo stack
tecnologico su cui è basato.
– La sua visione si è avverata solo in
parte.
• “A little semantics goes a long way!”
– Jim Hendler
13. !
Innolabsplus.eu: come fa
• Per far questo è necessario
“comprendere” il testo
• Semantic web?
– Potente ma complesso lo stack
tecnologico su cui è basato.
– La sua visione si è avverata solo in
parte.
• Usare servizi semantici pronti per
l’uso, via RESTful API
• “A little semantics goes a long way!”
– Jim Hendler
15. !
Dandelion API
• Servizio commerciale dell’azienda Spazio
Dati Srl: https://dandelion.eu/
• Parte da una ricerca dell’Università di Pisa
– TagMe
16. !
Dandelion API
• Servizio commerciale dell’azienda Spazio
Dati Srl: https://dandelion.eu/
• Parte da una ricerca dell’Università di Pisa
– TagMe
• Potenziato anche nell’ambito del
progetto di ricerca SenTaClAus
– Net7 come azienda coordinatrice
– Info: http://sentaclaus.netseven.it
17. !
Dandelion API
• Servizio commerciale dell’azienda Spazio
Dati Srl: https://dandelion.eu/
• Parte da una ricerca dell’Università di Pisa
– TagMe
• Potenziato anche nell’ambito del
progetto di ricerca SenTaClAus
– Net7 come azienda coordinatrice
– Info: http://sentaclaus.netseven.it
• I servizi usati in Innolabsplus.eu
– Named Entity Recognition (NER)
– Classificazione automatica
18. !
Named Entity Recognition/Extraction
• È il servizio base delle Dandelion API
• Permette di identificate i concetti nel testo
• Concetti non parole chiave!
– Ciò di cui parla l’articolo
• Riconoscere concetti vuol dire:
– Risolvere eventuali omonimie
• Serra: Gas Serra? Richard Serra? Monte Serra? O la Serra in Agricoltura?
– Identificare i termini anche se sono scritti in forma alternativa o parziale
– In breve…. Riconoscere il contesto
• Un motore di ricerca full-text (es. Solr) può indicizzare le stringhe senza
discernere il loro significato (approccio bag of words)
22. !
“Concetti” vs keywords su Innolabsplus.eu
• Analisi semantica del testo di un articolo (recuperato in automatico)
per identificare i concetti attraverso i servizi NER
23. !
“Concetti” vs keywords su Innolabsplus.eu
• Analisi semantica del testo di un articolo (recuperato in automatico)
per identificare i concetti attraverso i servizi NER
24. !
“Concetti” vs keywords su Innolabsplus.eu
• Analisi semantica del testo di un articolo (recuperato in automatico)
per identificare i concetti attraverso i servizi NER
25. !
“Concetti” vs keywords su Innolabsplus.eu
• Analisi semantica del testo di un articolo (recuperato in automatico)
per identificare i concetti attraverso i servizi NER
26. !
“Concetti” vs keywords su Innolabsplus.eu
• Analisi semantica del testo di un articolo (recuperato in automatico)
per identificare i concetti attraverso i servizi NER
27. !
“Concetti” vs keywords su Innolabsplus.eu
• Analisi semantica del testo di un articolo (recuperato in automatico)
per identificare i concetti attraverso i servizi NER
28. !
“Concetti” vs keywords su Innolabsplus.eu
• Analisi semantica del testo di un articolo (recuperato in automatico)
per identificare i concetti attraverso i servizi NER
29. !
• Wikipedia usato come un dizionario controllato
• I link tra le pagine di Wikipedia rappresentano i legami logici tra i
concetti: si crea così un grafo di termini
• Tanto le pagine (concetti) sono vicine, tanto maggiore è il loro legame
semantico
Come funziona la NER delle Dandelion API
30. !
• Wikipedia usato come un dizionario controllato
• I link tra le pagine di Wikipedia rappresentano i legami logici tra i
concetti: si crea così un grafo di termini
• Tanto le pagine (concetti) sono vicine, tanto maggiore è il loro legame
semantico
Come funziona la NER delle Dandelion API
31. !
• Wikipedia usato come un dizionario controllato
• I link tra le pagine di Wikipedia rappresentano i legami logici tra i
concetti: si crea così un grafo di termini
• Tanto le pagine (concetti) sono vicine, tanto maggiore è il loro legame
semantico
Come funziona la NER delle Dandelion API
32. !
• Wikipedia usato come un dizionario controllato
• I link tra le pagine di Wikipedia rappresentano i legami logici tra i
concetti: si crea così un grafo di termini
• Tanto le pagine (concetti) sono vicine, tanto maggiore è il loro legame
semantico
Come funziona la NER delle Dandelion API
33. !
NER: il riconoscimento del “contesto”
• Analizzo il testo per riconoscere termini del mio dizionario (concetti
potenziali)
• La “vicinanza” dei termini nel grafo mi permette di selezionare solo
quelli effettivamente pertinenti (“di cosa parla un testo”)
• Disambiguazione di testi sintatticamente simili
34. !
NER: il riconoscimento del “contesto”
• Analizzo il testo per riconoscere termini del mio dizionario (concetti
potenziali)
• La “vicinanza” dei termini nel grafo mi permette di selezionare solo
quelli effettivamente pertinenti (“di cosa parla un testo”)
• Disambiguazione di testi sintatticamente simili
“Nuovo record di gas serra nell’atmosfera terrestre”
“Riscaldamento notturno di una serra ad energia solare anziché a gas: è record”
35. !
NER: il riconoscimento del “contesto”
• Analizzo il testo per riconoscere termini del mio dizionario (concetti
potenziali)
• La “vicinanza” dei termini nel grafo mi permette di selezionare solo
quelli effettivamente pertinenti (“di cosa parla un testo”)
• Disambiguazione di testi sintatticamente simili
“Nuovo record di gas serra nell’atmosfera terrestre”
“Riscaldamento notturno di una serra ad energia solare anziché a gas: è record”
36. !
NER: il riconoscimento del “contesto”
• Analizzo il testo per riconoscere termini del mio dizionario (concetti
potenziali)
• La “vicinanza” dei termini nel grafo mi permette di selezionare solo
quelli effettivamente pertinenti (“di cosa parla un testo”)
• Disambiguazione di testi sintatticamente simili
“Nuovo record di gas serra nell’atmosfera terrestre”
“Riscaldamento notturno di una serra ad energia solare anziché a gas: è record”
37. !
Classificazione automatica
• Data una tassonomia (Drupal), associo alle sue categorie dei concetti
di Wikipedia
• Un testo viene classificato in funzione dei concetti riconosciuti in esso
38. !
Classificazione automatica
• Data una tassonomia (Drupal), associo alle sue categorie dei concetti
di Wikipedia
• Un testo viene classificato in funzione dei concetti riconosciuti in esso
Concetto X
Concetto Y
Concetto Z
39. !
Classificazione automatica
• Data una tassonomia (Drupal), associo alle sue categorie dei concetti
di Wikipedia
• Un testo viene classificato in funzione dei concetti riconosciuti in esso
Concetto X
Concetto Y
Concetto Z
40. !
Classificazione automatica
• Data una tassonomia (Drupal), associo alle sue categorie dei concetti
di Wikipedia
• Un testo viene classificato in funzione dei concetti riconosciuti in esso
Concetto X
Concetto Y
Concetto Z
41. !
Classificazione automatica
• Data una tassonomia (Drupal), associo alle sue categorie dei concetti
di Wikipedia
• Un testo viene classificato in funzione dei concetti riconosciuti in esso
Concetto X
Concetto Y
Concetto Z
43. !
Innolabsplus.eu: come funziona
• Recupera articoli da molteplici siti via feed RSS
– …potenziati da un nostro tool (esterno a Drupal) che recupera l’intero
articolo insieme al feed
• Analizza il testo dell’articolo con il servizio NER delle Dandelion API
• Misura la “distanza” logica del testo con le categorie principali del sito
(classificazione automatica)
– Se “affine” l’articolo viene pubblicato
– I concetti estratti sono usati come “tag” liberi: utili per la ricerca, in ottica
SEO, etc.
– Se l’articolo non è sufficientemente affine viene ignorato
• In realtà si pubblica il link in un box secondario
• Il tutto integrato in un modulo Drupal (7)
44. !
Struttura del modulo
Abbiamo cercato di strutturare il modulo utilizzando gli hook ove
strettamente necessario, delegando le chiamate API e la gestione del
modello a classi opportune.
45. !
Modello e integrazione con API
Il vocabolario da inviare a
Dandelion è salvata in una
entità costruita ad hoc, dove
troviamo:
• Riferimento ID
tassonomia su Dandelion
• Riferimento vocabolario
associato Drupal
• Lingua
• Ultima data di modifica
46. !
Modello e integrazione con API
Anche il singolo termine tassonomico
che arriva dal servizio esterno ha una
sua tabella ad hoc. Questa contiene:
• Riferimento al vocabolario Dandelion
• Riferimento alla relativa voce
tassonomica Drupal
• Url Wikipedia che descrive il
concetto
• Rilevanza
• Lingua
• Data di modifica
47. !
Modello e integrazione con API
Le chiamate implementate verso Dandelion sono:
- Classificazione iptc
- Classificazione con vocabolario custom
- Invio del vocabolario custom
- Entity extraction
- Wikisearch
48. !
Modello e integrazione con API
Queste informazioni sono inviate a Dandelion per classificare le
tassonomie, come JSON tramite la chiamata API “https://
api.dandelion.com/datatxt/cl/models/v1”
E’ stata inoltre realizzata un’interfaccia di backend per gestire la creazione
di queste tassonomie speciali
49. !
Configurazione
• Come primo step per l’utilizzo del modulo è necessaria un po’ di
configurazione…
1. Inserire le credenziali di accesso al web service di entity recognition di
Dandelion: endpoint API, app ID e app key
50. !
Configurazione
2. Settare le preferenze del servizio, divisa in
due parti
Classificazione contenuti
• Vocabolario assegnato per classificare gli
articoli
• Possibilità di invio automatico del
vocabolario a Dandelion o esplicito
• Vocabolario usato per interessi utente
• Frequenza di invio di questo vocabolario a
Dandelion
• Punteggio minimo necessario ad
approvare l’articolo
Estrazione entità
• Vocabolario usato per gestire le entità
trovate dal servizio
• Affidabilità minima per approvare il
“tagging” del contenuto con queste entità
Debug mode: lo vedremo più avanti
51. !
Recupero dei FEED
Per il recupero dei feed che possono essere convertiti in news vere e
proprie abbiamo esteso il modello che arriva dal modulo Feed importer di
Drupal, per potersi meglio integrare con il nostro tool di recupero degli
articoli (Social Proxy):
• E’ stato quindi creato un feed particolare (Feed Proxy)
52. !
Promozione dei feed ad articolo
I feed vengono poi processati in automatico allo scattare del cron
standard di Drupal, tramite code:
• Viene richiesto al Social Proxy il contenuto completo della pagina a cui
riferisce il feed
• Viene analizzato con Dandelion rispetto alla tassonomia creata prima
• Se l’articolo “parla” di argomenti definiti nella tassonomia con un grado
di affidabilità maggiore a quello impostato, il feed viene salvato come
articolo e il feed relativo “spubblicato”
• Nel feed ci sono informazioni necessarie per recuperare informazioni
accessorie
• Tramite una chiamata Server2Server verso questa applicazione si
recupera non solo il feed, ma anche il testo completo dell’articolo,
ripulito degli elementi decorativi della pagina.
53. !
Promozione dei feed ad articolo
In alternativa un redattore può promuovere un feed ad articolo tramite il
pulsante “Upgrade to content type”
54. !
Associazione a interessi utente
Non c’è solo la classificazione e pubblicazione automatica dei feed, ma il
sistema riesce anche a suggerire articoli alle persone che si registrano al
sito.
Questo avviene in due step:
1. L’utente si registra al sito, e come avviene per la definizione
dell’albero di classificazione contenuti, inserisce delle preferenze di
argomenti, sempre collegati a concetti Wikipedia
2. I testi dei feed vengono analizzati anche rispetto a questi vocabolari,
e se il grado di affidabilità è maggiore di quello soglia impostato,
l’articolo viene automaticamente suggerito all’utente
A livello implementativo ciò si traduce nel creare tassonomie collegate agli
utenti, che a loro volta sono collegate a concetti Wikipedia.
56. !
Associazione a interessi utente
Anche in questo caso la ricerca è aiutata da una interfaccia che consente
di ricercare gli argomenti direttamente su Wikipedia
57. !
Modalità debug
Nel modulo è prevista inoltre
una modalità di debug
(attivabile da configurazione)
Grazie a questa modalità
cliccando su “Find related
concepts” in un articolo,
viene visualizzata la risposta
di Dandelion alla chiamata
API, stampata tramite DPM
per una lettura facilitata (per il
developer J)
58. !
Migliorie future
• Suite di test per garantire affidabilità modulo
• Rifattorizzazione del codice per utilizzo di hook meno generici utilizzati
in alcuni punti del codice (tipo il classico “hook_form_alter”)
• Migliorie alle azioni javascript che consentono la definizione del
vocabolario dal backend
• Migliorare la gestione degli allarmi (es. Feed fermo da X giorni o
nessun feed item promosso ad articolo da troppo tempo)
• Aggiunta di alter nei processi di classificazione dei feed per permettere
a moduli esterni di “agganciarsi” alla procedura.