SlideShare a Scribd company logo

GraphRM - Introduzione al Graph modelling

GraphRM
GraphRM

L'incontro del 16/4/2018 è stato dedicato all'introduzione della modellazione dati su di un grafo. Il caso d'uso analizzato è stato quello di un Social Network. Al termine della presentazione è stato presentato un caso d'uso di investigazione tramite traffico email, spunto dal quale si è creata una discussione su possibili modellazioni adottabili.

1 of 35
Download to read offline
Graph Modelling
16/4/2018
Marco Liberati
@dej611
Piero Savastano
@_pieroit_
Enrico Risa
@wolf4ood
Data Modelling
● Esempi
● Best practices
● Il tuo caso d’uso!
● Consigli e discussione
Data Modelling - Esempi
● Persone
● Azioni
● Dati temporali
● Revisioni
● POLE - People, Objects, Location, Events
Data Modelling - Esempio: Social Network
In un social network l’elemento fondamentale è
l’individuo. Un individuo ha relazioni con altri
individui, tramite azioni su dei contenuti quali post
o immagini.
Individui e Post posso definirli come NODI.
Data Modelling - Esempio: Social Network
In un social network l’elemento fondamentale è
l’individuo. Un individuo ha relazioni con altri
individui, tramite azioni su dei contenuti quali post
o immagini.
Individui e Post posso definirli come NODI.
Le azioni sono definite come ARCHI.

Recommended

School of data Trento: basic spreadsheet
School of data Trento: basic spreadsheetSchool of data Trento: basic spreadsheet
School of data Trento: basic spreadsheetCristian Consonni
 
Data Driven UX - From Social networks to target audience
Data Driven UX - From Social networks to target audienceData Driven UX - From Social networks to target audience
Data Driven UX - From Social networks to target audienceData Driven Innovation
 
Talen tower (information memorandum)
Talen tower (information memorandum)Talen tower (information memorandum)
Talen tower (information memorandum)Massimiliano Cicco
 
Big Data per Madee 7 at Digital Accademia
Big Data per Madee 7 at Digital AccademiaBig Data per Madee 7 at Digital Accademia
Big Data per Madee 7 at Digital AccademiaGianluigi Cogo
 
La gestione logica dei dati come chiave del successo per Data Scientist e Bus...
La gestione logica dei dati come chiave del successo per Data Scientist e Bus...La gestione logica dei dati come chiave del successo per Data Scientist e Bus...
La gestione logica dei dati come chiave del successo per Data Scientist e Bus...Denodo
 
Big Data 2014: Marketing & Social Media
Big Data 2014: Marketing & Social MediaBig Data 2014: Marketing & Social Media
Big Data 2014: Marketing & Social MediaValerio Torriero
 
Presentazione bigdata Madee
Presentazione bigdata MadeePresentazione bigdata Madee
Presentazione bigdata MadeeGianluigi Cogo
 

More Related Content

Similar to GraphRM - Introduzione al Graph modelling

Dispensa Datajournalism | Maggio 2014 | school.dataninja.it
Dispensa Datajournalism | Maggio 2014 | school.dataninja.itDispensa Datajournalism | Maggio 2014 | school.dataninja.it
Dispensa Datajournalism | Maggio 2014 | school.dataninja.itDataninja
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RGiuseppe Cramarossa
 
Multidisciplinarità nell'analisi delle conversazioni on line
Multidisciplinarità nell'analisi delle conversazioni on lineMultidisciplinarità nell'analisi delle conversazioni on line
Multidisciplinarità nell'analisi delle conversazioni on lineRosario Dep Di Girolamo
 
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...Neo4j
 
Imola Informatica S.P.A.- Presentazione per Università
Imola Informatica S.P.A.- Presentazione per UniversitàImola Informatica S.P.A.- Presentazione per Università
Imola Informatica S.P.A.- Presentazione per UniversitàCristian Faraoni
 
CrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingCrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingViviana Murello
 
Business attraverso i Big Data
Business attraverso i Big DataBusiness attraverso i Big Data
Business attraverso i Big DataStefano Dindo
 
2014 ottobre Big Data per Madee 6
2014 ottobre Big Data per Madee 62014 ottobre Big Data per Madee 6
2014 ottobre Big Data per Madee 6Gianluigi Cogo
 
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)Data Driven Innovation
 
Data Driven UX - Come lo facciamo
Data Driven UX - Come lo facciamoData Driven UX - Come lo facciamo
Data Driven UX - Come lo facciamonois3
 
Big data & opendata
Big data & opendataBig data & opendata
Big data & opendataDatiGovIT
 
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...Social Media Lab
 
Data-as-a-Service: il modello architetturale di Dropbox
Data-as-a-Service: il modello architetturale di DropboxData-as-a-Service: il modello architetturale di Dropbox
Data-as-a-Service: il modello architetturale di DropboxMariagrazia Cinti
 

Similar to GraphRM - Introduzione al Graph modelling (20)

Dispensa Datajournalism | Maggio 2014 | school.dataninja.it
Dispensa Datajournalism | Maggio 2014 | school.dataninja.itDispensa Datajournalism | Maggio 2014 | school.dataninja.it
Dispensa Datajournalism | Maggio 2014 | school.dataninja.it
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-R
 
Big data
Big dataBig data
Big data
 
Multidisciplinarità nell'analisi delle conversazioni on line
Multidisciplinarità nell'analisi delle conversazioni on lineMultidisciplinarità nell'analisi delle conversazioni on line
Multidisciplinarità nell'analisi delle conversazioni on line
 
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
 
Imola Informatica S.P.A.- Presentazione per Università
Imola Informatica S.P.A.- Presentazione per UniversitàImola Informatica S.P.A.- Presentazione per Università
Imola Informatica S.P.A.- Presentazione per Università
 
FANTIN BIG DATA (1)
FANTIN BIG DATA (1)FANTIN BIG DATA (1)
FANTIN BIG DATA (1)
 
CrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingCrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with Crowdsourcing
 
Business attraverso i Big Data
Business attraverso i Big DataBusiness attraverso i Big Data
Business attraverso i Big Data
 
introduzione al data mining
introduzione al data mining introduzione al data mining
introduzione al data mining
 
2014 ottobre Big Data per Madee 6
2014 ottobre Big Data per Madee 62014 ottobre Big Data per Madee 6
2014 ottobre Big Data per Madee 6
 
Bigdata per Madee 4
Bigdata per Madee 4Bigdata per Madee 4
Bigdata per Madee 4
 
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)
 
Datadrivenux
DatadrivenuxDatadrivenux
Datadrivenux
 
Data Driven UX - Come lo facciamo
Data Driven UX - Come lo facciamoData Driven UX - Come lo facciamo
Data Driven UX - Come lo facciamo
 
Big data & opendata
Big data & opendataBig data & opendata
Big data & opendata
 
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...
 
Open Data - Data Journalism
Open Data - Data JournalismOpen Data - Data Journalism
Open Data - Data Journalism
 
Data-as-a-Service: il modello architetturale di Dropbox
Data-as-a-Service: il modello architetturale di DropboxData-as-a-Service: il modello architetturale di Dropbox
Data-as-a-Service: il modello architetturale di Dropbox
 
DS4Biz - Data Science for Business
DS4Biz - Data Science for BusinessDS4Biz - Data Science for Business
DS4Biz - Data Science for Business
 

More from GraphRM

A gentle introduction to random and strategic networks
A gentle introduction to random and strategic networksA gentle introduction to random and strategic networks
A gentle introduction to random and strategic networksGraphRM
 
How to leverage Kafka data streams with Neo4j
How to leverage Kafka data streams with Neo4jHow to leverage Kafka data streams with Neo4j
How to leverage Kafka data streams with Neo4jGraphRM
 
From zero to gremlin hero - Part I
From zero to gremlin hero - Part IFrom zero to gremlin hero - Part I
From zero to gremlin hero - Part IGraphRM
 
Topology Visualization at Sysdig
Topology Visualization at SysdigTopology Visualization at Sysdig
Topology Visualization at SysdigGraphRM
 
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...GraphRM
 
aRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con RaRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con RGraphRM
 
The power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDBThe power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDBGraphRM
 
OrientDB graph e l'importanza di una relazione mancante
OrientDB graph e l'importanza di una relazione mancanteOrientDB graph e l'importanza di una relazione mancante
OrientDB graph e l'importanza di una relazione mancanteGraphRM
 
Il "Knowledge Graph" della Pubblica Amministrazione Italiana
Il "Knowledge Graph" della Pubblica Amministrazione ItalianaIl "Knowledge Graph" della Pubblica Amministrazione Italiana
Il "Knowledge Graph" della Pubblica Amministrazione ItalianaGraphRM
 
Elastic loves Graphs
Elastic loves GraphsElastic loves Graphs
Elastic loves GraphsGraphRM
 
From text to entities: Information Extraction in the Era of Knowledge Graphs
From text to entities: Information Extraction in the Era of Knowledge GraphsFrom text to entities: Information Extraction in the Era of Knowledge Graphs
From text to entities: Information Extraction in the Era of Knowledge GraphsGraphRM
 
Graph analysis over relational database
Graph analysis over relational databaseGraph analysis over relational database
Graph analysis over relational databaseGraphRM
 
GraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphRM
 
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018GraphRM
 

More from GraphRM (14)

A gentle introduction to random and strategic networks
A gentle introduction to random and strategic networksA gentle introduction to random and strategic networks
A gentle introduction to random and strategic networks
 
How to leverage Kafka data streams with Neo4j
How to leverage Kafka data streams with Neo4jHow to leverage Kafka data streams with Neo4j
How to leverage Kafka data streams with Neo4j
 
From zero to gremlin hero - Part I
From zero to gremlin hero - Part IFrom zero to gremlin hero - Part I
From zero to gremlin hero - Part I
 
Topology Visualization at Sysdig
Topology Visualization at SysdigTopology Visualization at Sysdig
Topology Visualization at Sysdig
 
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...
 
aRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con RaRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con R
 
The power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDBThe power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDB
 
OrientDB graph e l'importanza di una relazione mancante
OrientDB graph e l'importanza di una relazione mancanteOrientDB graph e l'importanza di una relazione mancante
OrientDB graph e l'importanza di una relazione mancante
 
Il "Knowledge Graph" della Pubblica Amministrazione Italiana
Il "Knowledge Graph" della Pubblica Amministrazione ItalianaIl "Knowledge Graph" della Pubblica Amministrazione Italiana
Il "Knowledge Graph" della Pubblica Amministrazione Italiana
 
Elastic loves Graphs
Elastic loves GraphsElastic loves Graphs
Elastic loves Graphs
 
From text to entities: Information Extraction in the Era of Knowledge Graphs
From text to entities: Information Extraction in the Era of Knowledge GraphsFrom text to entities: Information Extraction in the Era of Knowledge Graphs
From text to entities: Information Extraction in the Era of Knowledge Graphs
 
Graph analysis over relational database
Graph analysis over relational databaseGraph analysis over relational database
Graph analysis over relational database
 
GraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDB
 
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018
 

GraphRM - Introduzione al Graph modelling

  • 3. Data Modelling ● Esempi ● Best practices ● Il tuo caso d’uso! ● Consigli e discussione
  • 4. Data Modelling - Esempi ● Persone ● Azioni ● Dati temporali ● Revisioni ● POLE - People, Objects, Location, Events
  • 5. Data Modelling - Esempio: Social Network In un social network l’elemento fondamentale è l’individuo. Un individuo ha relazioni con altri individui, tramite azioni su dei contenuti quali post o immagini. Individui e Post posso definirli come NODI.
  • 6. Data Modelling - Esempio: Social Network In un social network l’elemento fondamentale è l’individuo. Un individuo ha relazioni con altri individui, tramite azioni su dei contenuti quali post o immagini. Individui e Post posso definirli come NODI. Le azioni sono definite come ARCHI.
  • 7. Data Modelling - Esempio: Social Network Es. Marco fa un tweet. Enrico fa Like sul tweet di Marco. Enrico fa un nuovo tweet.
  • 8. Data Modelling - Social Network Marco Tweet Enrico Tweet Twitta Like Twitta Nome: Marco Cognome: … Registrato: ... Nome: Enrico Cognome: … Registrato: ... Images: https:// Text: ... Images: null Text: ...
  • 9. Data Modelling - Best practice # 1 Il modello iniziale più semplice per modellare il dato è quello di seguire il concetto di: Soggetto -[ Predicato ] -> Oggetto
  • 10. Data Modelling - Esempio: Social Network In un social network l’elemento fondamentale è l’individuo. Un individuo ha relazioni con altri individui, tramite azioni su dei contenuti quali post o immagini. Individui e Post posso definirli come NODI. Le azioni sono definite come ARCHI.
  • 11. Data Modelling - Esempio: Social Network Le azioni non sono semplici puntatori: ● Un’azione implica un certo contesto ● Un’azione è spesso definita nel tempo (puntuale o intervallo temporale) ● Un’azione è spesso definita nello spazio (geolocalizzazione)
  • 12. Data Modelling - Social Network Marco Tweet Enrico Tweet Twitta Like Twitta Timestamp: XXXXXXX Client: Web Timestamp: YYYYYYY Client: App Android Latitude: 12,433123 ... Timestamp: ZZZZZZZ Client: App Android Latitude: 24,1231232 ...
  • 13. Data Modelling - Dati temporali I dati hanno quasi sempre degli attributi temporali. Il dato temporale è un dato prezioso, fornisce un contesto per le analisi successive, è quindi utile tenere in considerazione questa informazione. Sia nodi che archi possono contenere dati temporali.
  • 14. Data Modelling - Dati temporali In taluni casi particolari è possibile modellare il dato temporale come un’entità a sè stante, invece che semplice attributo. Valutare bene prima di procedere su questa strada se il modello rende effettivamente più comprensibile il vostro scenario, oltre che al resto del team.
  • 15. Data Modelling - Esempio: Social Network Nel nostro caso di social network, sia la registrazione degli utenti, che i tweet inviati, oltre che azioni fatte posseggono dei dati temporali.
  • 16. Data Modelling - Social Network Marco Tweet Enrico Tweet Twitta Like Twitta Timestamp: XXXXXXX Client: Web Timestamp: YYYYYYY Client: App Android Latitude: 12,433123 ... Timestamp: ZZZZZZZ Client: App Android Latitude: 24,1231232 ...
  • 17. Data Modelling - Best practice # 2 ● Sia gli archi che i nodi possono contenere attributi in un grafo. ● Sfruttate questa occasione per dare il giusto contesto ai vostro modello.
  • 18. Data Modelling - Revisioni Come in un documento, anche i grafi possono avere delle revisioni: salvare tutte le variazioni all’interno del grafo può essere un qualcosa di particolarmente utile in caso di analisi postuma (forense o post-mortem).
  • 19. Data Modelling - Revisioni In questi casi è possibile sfruttare la molteplicità degli archi tra i nodi come veicolo per contenere l’informazione di revisione. A questo punto sarà necessario ritoccare la query per recuperare solo la versione dell’arco più recente in caso di presentazione dello stato attuale.
  • 20. Data Modelling - Social Network Marco Tweet Enrico Tweet Twitta Like Twitta Timestamp: XXXXXXX Client: Web Timestamp: YYYYYYY Client: App Android Latitude: 12,433123 ... Timestamp: ZZZZZZZ Client: App Android Latitude: 24,1231232 ... Twitta: edit 1 Timestamp: X1X1X1X1 Client: iPhone Latitude: 24,1231232 ...
  • 21. Data Modelling - Best practice # 3 ● Non avete paura di creare più tipi di archi tra nodi ● Allo stesso modo cercate di rimanere su di un numero razionali di archi una coppia di nodi ( centinaia vanno bene, milioni di archi tra due nodi possono essere problematici )
  • 22. Data Modelling - Best practice # 4 ● Nel caso in cui già sappiate che ci saranno milioni di archi tra ciascuna coppia di nodi nel tempo, rivedete la strategia di presentazione ● Dati granulari nel DB, dati aggregati / filtrati in fase di presentazione
  • 23. Data Modelling - POLE La sigla POLE è spesso utilizzata in campo investigativo per indicare esattamente i criteri sopra: ● People ● Object ● Location ● Event ( Dati temporali )
  • 24. Data Modelling - POLE -> Social Network Nel nostro caso di un Social Network i seguenti dati come POLE: ● People (Utenti) ● Object (Tweet) ● Location ( Attributo azione ) ● Event ( Attributo azione )
  • 25. Data Modelling - Best practice # 5 ● Sfruttate la strategia POLE per definire i dati in modo dettagliato nel vostro modello ● Probabilmente i modello di dati che avete nel database non è lo stesso che i vostri utenti vogliono vedere.
  • 26. Data Modelling - Best practice # 5 ● Sfruttate la strategia POLE per definire i dati in modo dettagliato nel vostro modello ● Probabilmente i modello di dati che avete nel database non è lo stesso che i vostri utenti vogliono vedere. es. Marco e Enrico si conoscono?
  • 27. Data Modelling - i vostri casi Avete dei fogli di carta su cui provare a modellare il caso d’uso nella slide seguente. Siete liberi di proporre un vostro caso d’uso nel caso lo trovate più interessante: alzate la mano per spiegarci cosa volete proporre!
  • 28. Data Modelling - i vostri casi Un manager vuole sapere dall’amministratore di sistema se qualche dipendente sta facendo insider trading dall’interno dell’azienda. Non potendo violare la privacy della comunicazione tra destinatari, sarà possibile sfruttare unicamente i metadati delle email - ID invece di nomi.
  • 29. Data Modelling - Discussione
  • 30. Data Modelling - Proposta #1 Persona (Mittente) NODO Persona (Destinatario) NODO Persona - Invia -> Persona ARCO
  • 31. Data Modelling - Proposta #1 Vantaggi di questa modellazione: 1. Tiene conto del traffico email (interno e verso l’esterno della compagnia) 2. Tiene conto delle persone coinvolte nella presentazione 3. Arricchendo i dati con informazioni riguardo le persone (permessi di accesso dati, ruolo, …) permette di dare un contesto valido all’investigazione in corso
  • 32. Data Modelling - Proposta #1 Svantaggi di questa modellazione: 1. Non tiene conto dei vari tipi di destinatari a. chi è il destinatario diretto e chi è in copia (CC, BCC)? 2. Non tiene conto delle discussioni composte da più email (Reply, Reply all) facendo perdere il contesto
  • 33. Data Modelling - Proposta #2 Persona (Mittente) NODO Persona (Destinatario) NODO Email NODO Persona - Invia -> Email ARCO Email - Destinata -> Persona ARCO Email - In copia -> Persona ARCO Email - relativa -> Email ARCO
  • 34. Data Modelling - Proposta #2 Vantaggi di questa modellazione: 1. Include i vantaggi della soluzione precedente 2. Tiene conto delle categorie di destinatari (TO, CC, BCC) 3. Permette l’individuazione di una discussione o thread (Reply, Reply all, Forward)