SlideShare a Scribd company logo
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
DEX Seminar
Tutorial
27 / October / 2010
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
DEX API
 Java library: jdex.jar  public API
 Native library
• Linux: libjdex.so
• Windows: jdex.dll
 System requirements:
 Java Runtime Environment, v1.5 or higher.
 Operative system:
• Windows – 32 bits
• Linux – 32 and 64 bits
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Basic Concepts
 Persistent and temporary graph management library.
 Data model: Typed and attributed directed multigraph.
 Node and edge instances belong to a type.
 Node and edge instances have attribute values.
 Edge can be directed or undirected.
 Multiple edges between two nodes.
 Use of identifiers.
 Object (node and edge) identifiers: long
 Attribute identifiers: long
 Type identifiers: int
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Core API – Class Diagram
DEX GraphPool1 N DbGraph1 1
RGraph
1
N
Graph
Graph factory Persistent DB
Temporary
Objects
1
N
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Core API – Main Methods
DEX
open(filename)  GraphPool
create(filename)  GraphPool
close()
GraphPool
getDbGraph()  DbGraph
newGraph()  Rgraph
flush()
close()
Graph
newNodeType(name)  int
newEdgeType(name)  int
newNode(type)  long
newEdge(type)  long
newAttribute(type, name)  long
setAttribute(oid, attr, value)
getAttribute(oid, attr)  value
select(type)  Objects
select(attr, op, value)  Objects
explode(oid, type)  Objects
Objects.Iterator
hasNext()  boolean
next()  long
Objects
add(long)
exists(long)
copy(objs)
union(objs)
Intersection(objs)
difference(objs)
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Running Example
DEX dex = new DEX();
GraphPool gpool = dex.create(“C:/image.dex”);
…
…
gpool.close();
dex.close();
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Running Example
…
DbGraph dbg = gpool.getDbGraph();
int person = dbg.newNodeType(“PERSON”);
long name = dbg.newAttribute(person, “NAME”, STRING);
long age= dbg.newAttribute(person, “AGE”, INT);
long p1 = dbg.newNode(person);
dbg.setAttribute(p1, name, “JOHN”);
dbg.setAttribute(p1, age, 18);
long p2 = dbg.newNode(person);
dbg.setAttribute(p2, name, “KELLY”);
long p3 = dbg.newNode(person);
dbg.setAttribute(p3, name, “MARY”);
…
JOHN
18
KELLY
MARY
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Running Example
…
int friend = dbg.newUndirectedEdgeType(“FRIEND”);
int since = dbg.newAttribute(friend, “SINCE”, INT);
long e1 = dbg.newEdge(p1, p2, friend);
dbg.setAttribute(e1, since, 2000);
long e2 = dbg.newEdge(p2, p3, friend);
dbg.setAttribute(e2, since, 1995);
…
int loves = dbg.newEdgeType(“LOVES”);
long e3 = dbg.newEdge(p1, p3, loves);
…
JOHN
18
KELLY
MARY
2000
1995
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Running Example
…
int phones = dbg.newEdgeType(“PHONES”);
int when = dbg.newAttribute(phones, “WHEN”, TIMESTAMP);
long e4 = dbg.newEdge(p1, p3, phones);
dbg.setAttribute(e4, when, 4pm);
long e5 = dbg.newEdge(p1, p3, phones);
dbg.setAttribute(e5, when, 5pm);
long e6 = dbg.newEdge(p3, p2, phones);
dbg.setAttribute(e6, when, 6pm);
…
JOHN
18
KELLY
MARY
2000
1995
4pm
5pm
6pm
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Running Example
…
Objects persons = dbg.select(person);
Objects.Iterator it = persons.iterator();
While (it.hasNext()) {
long p = it.next();
String name = dbg.getAttribute(p, name);
}
it.close();
persons.close();
…
2000
1995
4pm
5pm
6pm
JOHN
18
KELLY
MARY
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Running Example
…
Objects objs1 = dbg.select(when, >=, 5pm);
// objs1 = { e5, e6 }
Objects objs2 = dbg.explode(p1, phones, OUT);
// objs2 = { e4, e5 }
Objects objs = objs1.intersection(objs2);
// objs = { e5, e6 } ∩ { e4, e5 } = { e5 }
…
objs.close();
objs1.close();
objs2.close();
…
JOHN
18
KELLY
MARY
2000
1995
4pm
5pm
6pm
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Extension Modules
 Extension Java Packages with higher-level features
 Schema
 Exploral
 Input
 Output
 Visualization
 Graph operations
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Schema Module
 A high-level logical view of the graph structure
 Encapsulates graph generation and maintenance
 Definition of schemas through script files
dbgraph WIKIPEDIA (
datasource WIKIPEDIA (
dataset TITLES ( ID int, NLC string, TITLE string )
dataset IMAGES ( ID int, NLC string, FILENAME string )
)
edge REFS ( NLC string, TYPE string ) // TITLES --> TITLES
edge IMGS ( ) // TITLES --> IMAGES
)
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Exploral Module
 Framework for complex queries
 Extracts data from the DbGraph to return multiple graph results
 Multiple phases and tasks
 Querying: selects objects and explodes relationships
 Preparing: transforms and filters the candidate graphs
 Mining: finds the graphs that match a condition
 Browsing: prepares the result graph for the visualization tool
A
B
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Input Module
 Loads data from external data sources
 Automatically converts the input data to a DEX graph
 Supported data formats:
 Plain text files: CSV
 XML files
• Standard Java interface for XML processing
 Relational databases
• JDBC
 RDF graphs
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Output Module
 Automatically export DEX graphs to different graph file
formats
 GRAPHML
• Standard XML-based graph representation format
 Graphviz
• Open source graph definition language
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
 Automatically generate Java Swing visualization components
 Prefuse
• A visualization framework
for the Java
programming language
Visualization Module
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Graph Operations Module
 Connected components
 Clustering
 Paths
 Communities
 Importance measures
 Graph statistics
 Graph transformations
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Application Architecture
Presentation
Network
Application Logic
Data
Desktop
application
DEX
Data
Sources
Graphs
Java Swing
Application
Browser
HTML + Javascript
DEX
Graphs
Data
Sources
Query
Servlet
INTERNET
Web application
API
DEX
Load
and Query
API
DEX
DEX:GraphDatabaseManagementSystem
http://www.sparsity-technologies.com
Pere Baleta Ferrer
CEO
pbaleta@sparsity-technologies.com
Josep Lluís Larriba Pey
Founder
larri@sparsity-technologies.com
SPARSITY-TECHNOLOGIES
Jordi Girona, 1-3, Edifici K2M
08034 Barcelona
info@sparsity-technologies.com
http://www.sparsity-technologies.com
Thanks for
your attention
Any questions?

More Related Content

PDF
Dex: Introduction
PPTX
CLARIN CMDI support in Dataverse
 
PPTX
Setting up Dataverse repository for research data
 
PPTX
Technical integration of data repositories status and challenges
 
PPTX
The world of Docker and Kubernetes
 
PPTX
Metaverse for Dataverse
 
PPTX
Controlled vocabularies and ontologies in Dataverse data repository
 
PPTX
Clariah Tech Day: Controlled Vocabularies and Ontologies in Dataverse
 
Dex: Introduction
CLARIN CMDI support in Dataverse
 
Setting up Dataverse repository for research data
 
Technical integration of data repositories status and challenges
 
The world of Docker and Kubernetes
 
Metaverse for Dataverse
 
Controlled vocabularies and ontologies in Dataverse data repository
 
Clariah Tech Day: Controlled Vocabularies and Ontologies in Dataverse
 

What's hot (7)

PPTX
External controlled vocabularies support in Dataverse
 
PPTX
Flexibility in Metadata Schemes and Standardisation: the Case of CMDI and DAN...
 
PPTX
Flexible metadata schemes for research data repositories - Clarin Conference...
PDF
Scalable and privacy-preserving data integration - part 1
PDF
Dataverse opportunities
 
PPTX
Fighting COVID-19 with Artificial Intelligence
 
PDF
Introduction To The Semantic Web
External controlled vocabularies support in Dataverse
 
Flexibility in Metadata Schemes and Standardisation: the Case of CMDI and DAN...
 
Flexible metadata schemes for research data repositories - Clarin Conference...
Scalable and privacy-preserving data integration - part 1
Dataverse opportunities
 
Fighting COVID-19 with Artificial Intelligence
 
Introduction To The Semantic Web
Ad

Viewers also liked (7)

PDF
Présentation à l'UTC - mai 2014
PDF
Présentation des bases de données orientées graphes
PDF
VAT fraud detection : the mysterious case of the missing trader
PDF
How to identify reshipping scams with Neo4j
PDF
Using graph technologies to fight fraud
PDF
Introduction to the graph technologies landscape
PDF
Curso completo de Elasticsearch
Présentation à l'UTC - mai 2014
Présentation des bases de données orientées graphes
VAT fraud detection : the mysterious case of the missing trader
How to identify reshipping scams with Neo4j
Using graph technologies to fight fraud
Introduction to the graph technologies landscape
Curso completo de Elasticsearch
Ad

Similar to DEX: Seminar Tutorial (20)

PPTX
Dex Technical Seminar (April 2011)
PDF
GraphX: Graph Analytics in Apache Spark (AMPCamp 5, 2014-11-20)
PDF
GraphFrames: DataFrame-based graphs for Apache® Spark™
PPTX
Transformations and actions a visual guide training
PDF
Graph computation
PDF
Understanding Connected Data through Visualization
PPTX
D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)
PDF
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
PDF
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
PDF
Jump Start into Apache® Spark™ and Databricks
PDF
3DRepo
PDF
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
PPTX
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...
PPTX
NvFX GTC 2013
PDF
Apache Spark, the Next Generation Cluster Computing
PPT
Jdbc sasidhar
PPTX
AI與大數據數據處理 Spark實戰(20171216)
PDF
Scalding big ADta
PDF
Boston Spark Meetup event Slides Update
PDF
Green dao
Dex Technical Seminar (April 2011)
GraphX: Graph Analytics in Apache Spark (AMPCamp 5, 2014-11-20)
GraphFrames: DataFrame-based graphs for Apache® Spark™
Transformations and actions a visual guide training
Graph computation
Understanding Connected Data through Visualization
D3.JS Tips & Tricks (export to svg, crossfilter, maps etc.)
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Jump Start into Apache® Spark™ and Databricks
3DRepo
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...
NvFX GTC 2013
Apache Spark, the Next Generation Cluster Computing
Jdbc sasidhar
AI與大數據數據處理 Spark實戰(20171216)
Scalding big ADta
Boston Spark Meetup event Slides Update
Green dao

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Mobile App Security Testing_ A Comprehensive Guide.pdf
Approach and Philosophy of On baking technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Building Integrated photovoltaic BIPV_UPV.pdf
Empathic Computing: Creating Shared Understanding
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Spectral efficient network and resource selection model in 5G networks
Advanced methodologies resolving dimensionality complications for autism neur...
Spectroscopy.pptx food analysis technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation_ Review paper, used for researhc scholars
MIND Revenue Release Quarter 2 2025 Press Release
Chapter 3 Spatial Domain Image Processing.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

DEX: Seminar Tutorial