SlideShare una empresa de Scribd logo
1 de 66
Descargar para leer sin conexión
aRangodb
an R package for ArangoDB
Gabriele Galatolo
Software Developer & Data Scientist @ Kode Srl
Kode
Me
Me
You
You
Overview
● Relational Model vs Graph Model
● Data Science with R
● ArangoDB, a multi-model database
● aRangodb, an R package to interact with ArangoDB
● Usage of aRangodb in a real context: Tweetmood
Relational Vs Graph
Relational Model vs Graph Model
Why we 💗 the Relational Model:
○ Most popular way to structure and store data
○ Map reality with well-known paradigm (Entity-Relationship)
○ Supported by consolidated applications in almost every field
■ DBMS ↔ SQL
( E.F. Codd (1970), A Relational Model of Data for Large Shared Data Banks @ https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf )
Relational Model vs Graph Model
Drawbacks of the Relational Model:
○ DBMS are complex tools
■ Require deep knowledge to use them at best
○ In many contexts a small subset of features is used
■ Triggers? Stored Procedures? Functions? Full-text Search?
○ Used to model everything without critical thinking
■ A database cannot be denied to anyone
■ Used to model graphs too
Relational Model vs Graph Model
Sensor
Id: string batteryDuration: int productionDate: date
s001 30 2019-04-02
s002 21 2019-04-02
Relational Model vs Graph Model
Sensor
Id: string batteryDuration: int productionDate: date
s001 30 2019-04-02
s002 21 2019-04-02
Sensor
Id: string batteryDuration: int productionDate: date xy:string type: string desc: string
s001 30 2019-04-02 lat=30.11,
long=12.49
accelerometer prod=11123
s002 21 2019-04-02 (30,134;
14.333)
temperature max temp, 50°
next version
( source https://www.red-gate.com/simple-talk/sql/database-administration/ten-common-database-design-mistakes/ )
Relational Model vs Graph Model
“ People (myself included) do a lot
of really stupid things, at times, in
the name of ‘getting it done.’ ”
( source https://www.red-gate.com/simple-talk/sql/database-administration/ten-common-database-design-mistakes/ )
[Louis Davidson]
Relational Model vs Graph Model
Will graph databases/graph-based modelling save the
world?
Relational Model vs Graph Model
Will graph databases/graph-based modelling save the
world?
NO
Relational Model vs Graph Model
Anyway we 💗💗 graph-based modelling.
Many problems can be faced with a better modelization
with the use of graphs, for several reasons:
● relationships are everywhere
● it’s a more intuitive modelling than the relational one
● less structure implies flexibility and even better
performances
○ with OBVIOUS other side of the coin
aRangodb
aRangodb
Data Science with R
Data Science with R
Why we use R for data science projects:
● Data Science is strictly related to statistics…
● … and R is a statistics-focused programming language
○ Multi-paradigm
○ Interpreted
● Well supported and open source
○ programmers, statisticians, data scientist and more
○ lot of packages available to do almost everything
assignment to right
indexing from 1
round to even
( more @ https://ironholds.org/projects/rbitrary/#why-doesnt-round-work-like-you-think-it-should )
identifier with period
R in a nutshell
ASSIGNMENT
aNumeric <- 9
aString <- “hello world”
ABoolean <- TRUE
aVector <- c(1, 2, 3, 4)
DATA FRAME
df <- data.frame(”A”, “B”)
df[1, ] <- c(1, 2)
df[2, ] <- c(3, 4)
print( df[, df$B == 4] )
# A B
#[1, ] 3 4
LIST
l <- list(name=“anna”, age=31)
print(l$name)
print(l$[[”age”]])
# ”anna”
# 31
LOOP
sqr <- function(x) x*x
res <- apply(df, 2, sqr)
print(res)
# 4 16
R6 CLASSES
Cl <- R6::R6Class ( "Cl",
public = list(
f = function(),
... ),
private = list( a = NULL, … )
)
PIPE
res <- df %>%
filter(A==3) %>%
select(B)
print(res)
# B
#[1, ] 4
ArangoDB, a multi-model
database
ArangoDB, a multi-model database
“ArangoDB is a multi-model, open-source database with
flexible data models for documents, graphs, and key-values.
Build high performance applications using a convenient
SQL-like query language or JavaScript extensions.”
( more @ https://github.com/arangodb/arangodb )
ArangoDB, a multi-model database
Main concepts and internal data organization
COLLECTIONS GRAPHS
_key: a
k1
: v1
k2
: v2
_key: b
k3
: v3
k4
: v4
ArangoDB, a multi-model database
EDGES
COLLECTIONS
COLLECTIONS GRAPHS
_key: a
k1
: v1
k2
: v2
_key: b
k3
: v3
k4
: v4
_key: ...
_from: a
_to: b
ke
: ve
_key: ...
_from: a
_to: b
_key: ...
_from: a
_to: b
Main concepts and internal data organization
ArangoDB, alternatives?
● Multi-Model Database
○ Graph
○ Document
○ Key-Value
● First release: 2007
● Written in:
○ Java
● Server Side Scripts:
○ Java, Javascript
● DQL:
○ SQL-Like
● Multi-Model Database
○ Graph
○ Document
○ Key-Value
● First release: 2012
● Written in:
○ C, C++, JavaScript
● Server Side Scripts:
○ Javascript
● DQL:
○ AQL
● Graph Database
● First release: 2010
● Written in:
○ Java, Scala
● Server Side Scripts:
○ Java, Cypher
● DQL:
○ Cypher
( more @ https://db-engines.com/en/system/ArangoDB%3BNeo4j%3BOrientDB )
ArangoDB, alternatives?
( source @ https://www.arangodb.com/2018/02/nosql-performance-benchmark-2018-mongodb-postgresql-orientdb-neo4j-arangodb/ )
ArangoDB, alternatives?
( source @ https://db-engines.com/en/ranking_trend/system/ArangoDB%3BNeo4j%3BOrientDB )
aRangodb
(you’re ready now)
aRangodb, an R package for ArangoDB
An R package to interact with ArangoDB instances:
● collections management
○ CRUD of collections
● graphs management
○ CRUD of graphs
○ Traversal
● graph visualization
● (only for the brave) transform an AQL query in an R
function
aRangodb, connection to server
Connecting to the ArangoDB instance
aRangodb, collections management
Create or retrieve collections
aRangodb, collections management
Insert new documents and update existing ones
aRangodb, collections management
Search documents within a collection
aRangodb, graphs management
Create or retrieve a graph
aRangodb, graphs management
Adding relations to the graph
aRangodb, graphs management
Traverse a graph from a set of documents
aRangodb, graphs management
Adjacency tensor of a graph:
nodes
nodes
edges
(Adjacency and Tensor Representation in General Hypergraphs Part 1: e-adjacency Tensor Uniformisation Using
Homogeneous Polynomials
X. Ouvrard, J.M. Le Goff, S. Marchand-Maillet
@ https://arxiv.org/pdf/1712.08189.pdf )
aRangodb, graphs management
Adjacency tensor of a graph:
nodes
nodes
edges
good for graphs...
aRangodb, graphs management
Adjacency tensor of a graph:
good for graphs… and for multigraphs too
aRangodb, graphs management
Adjacency tensor of a graph:
good for graphs… and for multigraphs too
aRangodb, graphs management
Graph visualization:
aRangodb, (bonus) AQL and R functions
Compile an AQL query into an R function where binding
parameters become function parameters:
aRangodb, current status
● 0.0.1-beta version available
○ first stable release will be available by the end of
June (full test coverage, major bug fixes)
● https://gitlab.com/krpack/arango-driver
● Feel free to...
○ … share your suggestions
○ … give us your feedback
aRangodb, current status
● 0.0.1-beta version available
○ first stable release will be available by the end of
June (full test coverage, major bug fixes)
● https://gitlab.com/krpack/arango-driver
● Feel free to...
○ … share your suggestions
○ … give us your feedback
● Don’t feel free to
○ ...open issues (I’m joking 😬)
TweetMood
TweetMood at a glance
TweetMood, raw data
Tweet
User
TweetMood, view of a selection
TweetMood, view of a selection
TweetMood, secondary information
We added a secondary-source collection and two
additional relations from users’ and tweet data:
● Hashtags
○ “Hashtags” (contained_in)→ “Tweets”
● Mentions
○ “Users” (mentioned_in)→ “Tweets”
TweetMood, association rules on hashtags
Tweets (may) contain list of hashtags:
(Tutorial on association rules @ https://www.kdnuggets.com/2016/04/association-rules-apriori-algorithm-tutorial.html )
TweetMood, association rules on hashtags
Are there hidden patterns connecting tweet hashtags?
(Tutorial on association rules @ https://www.kdnuggets.com/2016/04/association-rules-apriori-algorithm-tutorial.html )
{#facebookdown} => {#instagramdown, #whatsappdown}
TweetMood, association rules (quick note)
(Tutorial on association rules @ https://www.kdnuggets.com/2016/04/association-rules-apriori-algorithm-tutorial.html )
“Association rules analysis is a technique to uncover how items are
associated to each other. For example: if there is a pair of items, X and
Y, that are frequently bought together:
● both X and Y can be placed on the same shelf;
● advertisements on X could be targeted at buyers who purchase Y;
● ...
how transactions must be
represented
TweetMood, association rules on hashtags
t0001 faceboo
kdown
instagra
mdown
whatsap
pdown
t0001 0 0 0 0
faceboo
kdown
1 0 0 0
instagra
mdown
1 0 0 0
whatsap
pdown
1 0 0 0
facebookdown instagramdown whatsappdown
t0001 1 1 1
TweetMood, association rules on hashtags
TweetMood, association rules on hashtags
this may be the feeling when
producing elegant packages that
work efficiently...
Before closing...
What does the future hold for us?
● Add support for bulk insert of data from csv/JSON
● Native support for well-known graphs algorithm
● Improve graph representation
○ Introduction of Laplacian matrix
○ Improve internal representation
● Presentation of aRangodb package @ useR!2019
○ See you there!
ONE MORE THING...
Before closing...
Discarded GIFs and comics (due to lack of time):
R vs Python Data Science warComputer Science Wars of Religion
ONE LAST THINGTHIS IS THE END
g.galatolo@kode.srl
www.kode-solutions.net

Más contenido relacionado

La actualidad más candente

Graph databases & data integration v2
Graph databases & data integration v2Graph databases & data integration v2
Graph databases & data integration v2Dimitris Kontokostas
 
PhD thesis defense: Large-scale multilingual knowledge extraction, publishin...
PhD thesis defense:  Large-scale multilingual knowledge extraction, publishin...PhD thesis defense:  Large-scale multilingual knowledge extraction, publishin...
PhD thesis defense: Large-scale multilingual knowledge extraction, publishin...Dimitris Kontokostas
 
GraphQL & DGraph with Go
GraphQL & DGraph with GoGraphQL & DGraph with Go
GraphQL & DGraph with GoJames Tan
 
Introduction to DGraph - A Graph Database
Introduction to DGraph - A Graph DatabaseIntroduction to DGraph - A Graph Database
Introduction to DGraph - A Graph DatabaseKnoldus Inc.
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4jNeo4j
 
GraphDB Cloud: Enterprise Ready RDF Database on Demand
GraphDB Cloud: Enterprise Ready RDF Database on DemandGraphDB Cloud: Enterprise Ready RDF Database on Demand
GraphDB Cloud: Enterprise Ready RDF Database on DemandOntotext
 
DGraph: Introduction To Basics & Quick Start W/Ratel
DGraph: Introduction To Basics & Quick Start W/RatelDGraph: Introduction To Basics & Quick Start W/Ratel
DGraph: Introduction To Basics & Quick Start W/RatelKnoldus Inc.
 
Semantic Variation Graphs the case for RDF & SPARQL
Semantic Variation Graphs the case for RDF & SPARQLSemantic Variation Graphs the case for RDF & SPARQL
Semantic Variation Graphs the case for RDF & SPARQLJerven Bolleman
 
Do it on your own - From 3 to 5 Star Linked Open Data with RMLio
Do it on your own - From 3 to 5 Star Linked Open Data with RMLioDo it on your own - From 3 to 5 Star Linked Open Data with RMLio
Do it on your own - From 3 to 5 Star Linked Open Data with RMLioOpen Knowledge Belgium
 
Introduction to data analysis using R
Introduction to data analysis using RIntroduction to data analysis using R
Introduction to data analysis using RVictoria López
 
Dgraph: Graph database for production environment
Dgraph:  Graph database for production environmentDgraph:  Graph database for production environment
Dgraph: Graph database for production environmentopenCypher
 
SF Python Meetup: TextRank in Python
SF Python Meetup: TextRank in PythonSF Python Meetup: TextRank in Python
SF Python Meetup: TextRank in PythonPaco Nathan
 
An Introduction to Graph Databases
An Introduction to Graph DatabasesAn Introduction to Graph Databases
An Introduction to Graph DatabasesInfiniteGraph
 
The Power of Semantic Technologies to Explore Linked Open Data
The Power of Semantic Technologies to Explore Linked Open DataThe Power of Semantic Technologies to Explore Linked Open Data
The Power of Semantic Technologies to Explore Linked Open DataOntotext
 

La actualidad más candente (20)

Graph databases & data integration v2
Graph databases & data integration v2Graph databases & data integration v2
Graph databases & data integration v2
 
PhD thesis defense: Large-scale multilingual knowledge extraction, publishin...
PhD thesis defense:  Large-scale multilingual knowledge extraction, publishin...PhD thesis defense:  Large-scale multilingual knowledge extraction, publishin...
PhD thesis defense: Large-scale multilingual knowledge extraction, publishin...
 
GraphQL & DGraph with Go
GraphQL & DGraph with GoGraphQL & DGraph with Go
GraphQL & DGraph with Go
 
Introduction to DGraph - A Graph Database
Introduction to DGraph - A Graph DatabaseIntroduction to DGraph - A Graph Database
Introduction to DGraph - A Graph Database
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4j
 
GraphDB Cloud: Enterprise Ready RDF Database on Demand
GraphDB Cloud: Enterprise Ready RDF Database on DemandGraphDB Cloud: Enterprise Ready RDF Database on Demand
GraphDB Cloud: Enterprise Ready RDF Database on Demand
 
Semantic Web talk TEMPLATE
Semantic Web talk TEMPLATESemantic Web talk TEMPLATE
Semantic Web talk TEMPLATE
 
DGraph: Introduction To Basics & Quick Start W/Ratel
DGraph: Introduction To Basics & Quick Start W/RatelDGraph: Introduction To Basics & Quick Start W/Ratel
DGraph: Introduction To Basics & Quick Start W/Ratel
 
Semantic Variation Graphs the case for RDF & SPARQL
Semantic Variation Graphs the case for RDF & SPARQLSemantic Variation Graphs the case for RDF & SPARQL
Semantic Variation Graphs the case for RDF & SPARQL
 
Do it on your own - From 3 to 5 Star Linked Open Data with RMLio
Do it on your own - From 3 to 5 Star Linked Open Data with RMLioDo it on your own - From 3 to 5 Star Linked Open Data with RMLio
Do it on your own - From 3 to 5 Star Linked Open Data with RMLio
 
LD4KD 2015 - Demos and tools
LD4KD 2015 - Demos and toolsLD4KD 2015 - Demos and tools
LD4KD 2015 - Demos and tools
 
Seminario Cristian Lai, 06-09-2012
Seminario Cristian Lai, 06-09-2012Seminario Cristian Lai, 06-09-2012
Seminario Cristian Lai, 06-09-2012
 
Introduction to data analysis using R
Introduction to data analysis using RIntroduction to data analysis using R
Introduction to data analysis using R
 
Graph based data models
Graph based data modelsGraph based data models
Graph based data models
 
Dgraph: Graph database for production environment
Dgraph:  Graph database for production environmentDgraph:  Graph database for production environment
Dgraph: Graph database for production environment
 
SF Python Meetup: TextRank in Python
SF Python Meetup: TextRank in PythonSF Python Meetup: TextRank in Python
SF Python Meetup: TextRank in Python
 
JSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge GraphsJSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge Graphs
 
An Introduction to Graph Databases
An Introduction to Graph DatabasesAn Introduction to Graph Databases
An Introduction to Graph Databases
 
The Power of Semantic Technologies to Explore Linked Open Data
The Power of Semantic Technologies to Explore Linked Open DataThe Power of Semantic Technologies to Explore Linked Open Data
The Power of Semantic Technologies to Explore Linked Open Data
 
Data quality in Real Estate
Data quality in Real EstateData quality in Real Estate
Data quality in Real Estate
 

Similar a aRangodb: An R package for ArangoDB

Fishing Graphs in a Hadoop Data Lake
Fishing Graphs in a Hadoop Data LakeFishing Graphs in a Hadoop Data Lake
Fishing Graphs in a Hadoop Data LakeArangoDB Database
 
Fishing Graphs in a Hadoop Data Lake by Jörg Schad and Max Neunhoeffer at Big...
Fishing Graphs in a Hadoop Data Lake by Jörg Schad and Max Neunhoeffer at Big...Fishing Graphs in a Hadoop Data Lake by Jörg Schad and Max Neunhoeffer at Big...
Fishing Graphs in a Hadoop Data Lake by Jörg Schad and Max Neunhoeffer at Big...Big Data Spain
 
Multiplaform Solution for Graph Datasources
Multiplaform Solution for Graph DatasourcesMultiplaform Solution for Graph Datasources
Multiplaform Solution for Graph DatasourcesStratio
 
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022ArangoDB Database
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...Jean Ihm
 
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....ArangoDB Database
 
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022ArangoDB Database
 
Graph analysis over relational database
Graph analysis over relational databaseGraph analysis over relational database
Graph analysis over relational databaseGraphRM
 
Data Structure Graph DMZ #DMZone
Data Structure Graph DMZ #DMZoneData Structure Graph DMZ #DMZone
Data Structure Graph DMZ #DMZoneDoug Needham
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezMultiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezBig Data Spain
 
Machine Learning + Graph Databases for Better Recommendations
Machine Learning + Graph Databases for Better RecommendationsMachine Learning + Graph Databases for Better Recommendations
Machine Learning + Graph Databases for Better RecommendationsChristopherWoodward16
 
How do You Graph
How do You GraphHow do You Graph
How do You GraphBen Krug
 
GraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational DatabasesGraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational DatabasesKonstantinos Xirogiannopoulos
 
GraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational DatabasesGraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational DatabasesPyData
 
Linked Open Data for Digital Humanities
Linked Open Data for Digital HumanitiesLinked Open Data for Digital Humanities
Linked Open Data for Digital HumanitiesChristophe Guéret
 

Similar a aRangodb: An R package for ArangoDB (20)

Fishing Graphs in a Hadoop Data Lake
Fishing Graphs in a Hadoop Data LakeFishing Graphs in a Hadoop Data Lake
Fishing Graphs in a Hadoop Data Lake
 
Fishing Graphs in a Hadoop Data Lake by Jörg Schad and Max Neunhoeffer at Big...
Fishing Graphs in a Hadoop Data Lake by Jörg Schad and Max Neunhoeffer at Big...Fishing Graphs in a Hadoop Data Lake by Jörg Schad and Max Neunhoeffer at Big...
Fishing Graphs in a Hadoop Data Lake by Jörg Schad and Max Neunhoeffer at Big...
 
Multiplaform Solution for Graph Datasources
Multiplaform Solution for Graph DatasourcesMultiplaform Solution for Graph Datasources
Multiplaform Solution for Graph Datasources
 
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
 
Oslo baksia2014
Oslo baksia2014Oslo baksia2014
Oslo baksia2014
 
Fishing Graphs in a Hadoop Data Lake
Fishing Graphs in a Hadoop Data Lake Fishing Graphs in a Hadoop Data Lake
Fishing Graphs in a Hadoop Data Lake
 
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
 
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
 
Graph analysis over relational database
Graph analysis over relational databaseGraph analysis over relational database
Graph analysis over relational database
 
Data Structure Graph DMZ #DMZone
Data Structure Graph DMZ #DMZoneData Structure Graph DMZ #DMZone
Data Structure Graph DMZ #DMZone
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezMultiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier Dominguez
 
R tutorial
R tutorialR tutorial
R tutorial
 
Machine Learning + Graph Databases for Better Recommendations
Machine Learning + Graph Databases for Better RecommendationsMachine Learning + Graph Databases for Better Recommendations
Machine Learning + Graph Databases for Better Recommendations
 
How do You Graph
How do You GraphHow do You Graph
How do You Graph
 
Oslo bekk2014
Oslo bekk2014Oslo bekk2014
Oslo bekk2014
 
3DRepo
3DRepo3DRepo
3DRepo
 
GraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational DatabasesGraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational Databases
 
GraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational DatabasesGraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational Databases
 
Linked Open Data for Digital Humanities
Linked Open Data for Digital HumanitiesLinked Open Data for Digital Humanities
Linked Open Data for Digital Humanities
 

Más de 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
 
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
 
GraphRM - Introduzione al Graph modelling
GraphRM  - Introduzione al Graph modellingGraphRM  - Introduzione al Graph modelling
GraphRM - Introduzione al Graph modellingGraphRM
 
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
 

Más de GraphRM (13)

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...
 
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
 
GraphRM - Introduzione al Graph modelling
GraphRM  - Introduzione al Graph modellingGraphRM  - Introduzione al Graph modelling
GraphRM - Introduzione al Graph modelling
 
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
 

Último

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Último (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

aRangodb: An R package for ArangoDB

  • 1. aRangodb an R package for ArangoDB Gabriele Galatolo Software Developer & Data Scientist @ Kode Srl
  • 3. Me
  • 4. Me
  • 5. You
  • 6. You
  • 7. Overview ● Relational Model vs Graph Model ● Data Science with R ● ArangoDB, a multi-model database ● aRangodb, an R package to interact with ArangoDB ● Usage of aRangodb in a real context: Tweetmood
  • 9.
  • 10.
  • 11. Relational Model vs Graph Model Why we 💗 the Relational Model: ○ Most popular way to structure and store data ○ Map reality with well-known paradigm (Entity-Relationship) ○ Supported by consolidated applications in almost every field ■ DBMS ↔ SQL ( E.F. Codd (1970), A Relational Model of Data for Large Shared Data Banks @ https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf )
  • 12. Relational Model vs Graph Model Drawbacks of the Relational Model: ○ DBMS are complex tools ■ Require deep knowledge to use them at best ○ In many contexts a small subset of features is used ■ Triggers? Stored Procedures? Functions? Full-text Search? ○ Used to model everything without critical thinking ■ A database cannot be denied to anyone ■ Used to model graphs too
  • 13. Relational Model vs Graph Model Sensor Id: string batteryDuration: int productionDate: date s001 30 2019-04-02 s002 21 2019-04-02
  • 14. Relational Model vs Graph Model Sensor Id: string batteryDuration: int productionDate: date s001 30 2019-04-02 s002 21 2019-04-02 Sensor Id: string batteryDuration: int productionDate: date xy:string type: string desc: string s001 30 2019-04-02 lat=30.11, long=12.49 accelerometer prod=11123 s002 21 2019-04-02 (30,134; 14.333) temperature max temp, 50° next version ( source https://www.red-gate.com/simple-talk/sql/database-administration/ten-common-database-design-mistakes/ )
  • 15. Relational Model vs Graph Model “ People (myself included) do a lot of really stupid things, at times, in the name of ‘getting it done.’ ” ( source https://www.red-gate.com/simple-talk/sql/database-administration/ten-common-database-design-mistakes/ ) [Louis Davidson]
  • 16. Relational Model vs Graph Model Will graph databases/graph-based modelling save the world?
  • 17. Relational Model vs Graph Model Will graph databases/graph-based modelling save the world? NO
  • 18. Relational Model vs Graph Model Anyway we 💗💗 graph-based modelling. Many problems can be faced with a better modelization with the use of graphs, for several reasons: ● relationships are everywhere ● it’s a more intuitive modelling than the relational one ● less structure implies flexibility and even better performances ○ with OBVIOUS other side of the coin
  • 22. Data Science with R Why we use R for data science projects: ● Data Science is strictly related to statistics… ● … and R is a statistics-focused programming language ○ Multi-paradigm ○ Interpreted ● Well supported and open source ○ programmers, statisticians, data scientist and more ○ lot of packages available to do almost everything
  • 23. assignment to right indexing from 1 round to even ( more @ https://ironholds.org/projects/rbitrary/#why-doesnt-round-work-like-you-think-it-should ) identifier with period
  • 24.
  • 25. R in a nutshell ASSIGNMENT aNumeric <- 9 aString <- “hello world” ABoolean <- TRUE aVector <- c(1, 2, 3, 4) DATA FRAME df <- data.frame(”A”, “B”) df[1, ] <- c(1, 2) df[2, ] <- c(3, 4) print( df[, df$B == 4] ) # A B #[1, ] 3 4 LIST l <- list(name=“anna”, age=31) print(l$name) print(l$[[”age”]]) # ”anna” # 31 LOOP sqr <- function(x) x*x res <- apply(df, 2, sqr) print(res) # 4 16 R6 CLASSES Cl <- R6::R6Class ( "Cl", public = list( f = function(), ... ), private = list( a = NULL, … ) ) PIPE res <- df %>% filter(A==3) %>% select(B) print(res) # B #[1, ] 4
  • 27. ArangoDB, a multi-model database “ArangoDB is a multi-model, open-source database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.” ( more @ https://github.com/arangodb/arangodb )
  • 28. ArangoDB, a multi-model database Main concepts and internal data organization COLLECTIONS GRAPHS _key: a k1 : v1 k2 : v2 _key: b k3 : v3 k4 : v4
  • 29. ArangoDB, a multi-model database EDGES COLLECTIONS COLLECTIONS GRAPHS _key: a k1 : v1 k2 : v2 _key: b k3 : v3 k4 : v4 _key: ... _from: a _to: b ke : ve _key: ... _from: a _to: b _key: ... _from: a _to: b Main concepts and internal data organization
  • 30. ArangoDB, alternatives? ● Multi-Model Database ○ Graph ○ Document ○ Key-Value ● First release: 2007 ● Written in: ○ Java ● Server Side Scripts: ○ Java, Javascript ● DQL: ○ SQL-Like ● Multi-Model Database ○ Graph ○ Document ○ Key-Value ● First release: 2012 ● Written in: ○ C, C++, JavaScript ● Server Side Scripts: ○ Javascript ● DQL: ○ AQL ● Graph Database ● First release: 2010 ● Written in: ○ Java, Scala ● Server Side Scripts: ○ Java, Cypher ● DQL: ○ Cypher ( more @ https://db-engines.com/en/system/ArangoDB%3BNeo4j%3BOrientDB )
  • 31. ArangoDB, alternatives? ( source @ https://www.arangodb.com/2018/02/nosql-performance-benchmark-2018-mongodb-postgresql-orientdb-neo4j-arangodb/ )
  • 32. ArangoDB, alternatives? ( source @ https://db-engines.com/en/ranking_trend/system/ArangoDB%3BNeo4j%3BOrientDB )
  • 34. aRangodb, an R package for ArangoDB An R package to interact with ArangoDB instances: ● collections management ○ CRUD of collections ● graphs management ○ CRUD of graphs ○ Traversal ● graph visualization ● (only for the brave) transform an AQL query in an R function
  • 35. aRangodb, connection to server Connecting to the ArangoDB instance
  • 36. aRangodb, collections management Create or retrieve collections
  • 37. aRangodb, collections management Insert new documents and update existing ones
  • 38. aRangodb, collections management Search documents within a collection
  • 39. aRangodb, graphs management Create or retrieve a graph
  • 40. aRangodb, graphs management Adding relations to the graph
  • 41. aRangodb, graphs management Traverse a graph from a set of documents
  • 42. aRangodb, graphs management Adjacency tensor of a graph: nodes nodes edges (Adjacency and Tensor Representation in General Hypergraphs Part 1: e-adjacency Tensor Uniformisation Using Homogeneous Polynomials X. Ouvrard, J.M. Le Goff, S. Marchand-Maillet @ https://arxiv.org/pdf/1712.08189.pdf )
  • 43. aRangodb, graphs management Adjacency tensor of a graph: nodes nodes edges good for graphs...
  • 44. aRangodb, graphs management Adjacency tensor of a graph: good for graphs… and for multigraphs too
  • 45. aRangodb, graphs management Adjacency tensor of a graph: good for graphs… and for multigraphs too
  • 47. aRangodb, (bonus) AQL and R functions Compile an AQL query into an R function where binding parameters become function parameters:
  • 48. aRangodb, current status ● 0.0.1-beta version available ○ first stable release will be available by the end of June (full test coverage, major bug fixes) ● https://gitlab.com/krpack/arango-driver ● Feel free to... ○ … share your suggestions ○ … give us your feedback
  • 49. aRangodb, current status ● 0.0.1-beta version available ○ first stable release will be available by the end of June (full test coverage, major bug fixes) ● https://gitlab.com/krpack/arango-driver ● Feel free to... ○ … share your suggestions ○ … give us your feedback ● Don’t feel free to ○ ...open issues (I’m joking 😬)
  • 51. TweetMood at a glance
  • 53. TweetMood, view of a selection
  • 54. TweetMood, view of a selection
  • 55. TweetMood, secondary information We added a secondary-source collection and two additional relations from users’ and tweet data: ● Hashtags ○ “Hashtags” (contained_in)→ “Tweets” ● Mentions ○ “Users” (mentioned_in)→ “Tweets”
  • 56. TweetMood, association rules on hashtags Tweets (may) contain list of hashtags: (Tutorial on association rules @ https://www.kdnuggets.com/2016/04/association-rules-apriori-algorithm-tutorial.html )
  • 57. TweetMood, association rules on hashtags Are there hidden patterns connecting tweet hashtags? (Tutorial on association rules @ https://www.kdnuggets.com/2016/04/association-rules-apriori-algorithm-tutorial.html ) {#facebookdown} => {#instagramdown, #whatsappdown}
  • 58. TweetMood, association rules (quick note) (Tutorial on association rules @ https://www.kdnuggets.com/2016/04/association-rules-apriori-algorithm-tutorial.html ) “Association rules analysis is a technique to uncover how items are associated to each other. For example: if there is a pair of items, X and Y, that are frequently bought together: ● both X and Y can be placed on the same shelf; ● advertisements on X could be targeted at buyers who purchase Y; ● ... how transactions must be represented
  • 59. TweetMood, association rules on hashtags t0001 faceboo kdown instagra mdown whatsap pdown t0001 0 0 0 0 faceboo kdown 1 0 0 0 instagra mdown 1 0 0 0 whatsap pdown 1 0 0 0 facebookdown instagramdown whatsappdown t0001 1 1 1
  • 61. TweetMood, association rules on hashtags this may be the feeling when producing elegant packages that work efficiently...
  • 62. Before closing... What does the future hold for us? ● Add support for bulk insert of data from csv/JSON ● Native support for well-known graphs algorithm ● Improve graph representation ○ Introduction of Laplacian matrix ○ Improve internal representation ● Presentation of aRangodb package @ useR!2019 ○ See you there!
  • 64. Before closing... Discarded GIFs and comics (due to lack of time): R vs Python Data Science warComputer Science Wars of Religion
  • 65. ONE LAST THINGTHIS IS THE END