Web frameworks
and
graph databases
Overview and code demos
João Rocha da Silva
May 2014
joaorosilva@gmail.com
Contents
• Modeling limits of relational databases
• Entities with variable attributes
• Time-variant values
• Inheritance
• Hierarchies (parents of parents of parents…)
Contents (cont’d)
• Modeling problems in a graph
• Ontologies and SPARQL
• OpenLink Virtuoso
• Scalable file storage: GridFS within MongoDB
• Scalable document indexing : ElasticSearch
• NodeJS and asynchronous flow control
• AngularJS for dynamic web interfaces
• BONUS : Socket.io sneak peek
Contents (cont’d)
Relational databases
• Good when you know everything about the
problem at the time of modeling
• A column can only be of a single type (VARCHAR,
int, etc)
• Hard to document
• Model can become too attached to the code
Relational databases
• Handling historical values = complex SQL
• Hierarchies = Foreign Key loops
• Variable attributes, inheritance = [null + if Hell] or
many JOINs
Relational models
(one of 78,826 tables and counting)
source : SAP
Beautiful, meaningful column names ;-)
Even better table names
!
source MediaWiki
“Old Versions” aka
“copy everything and add a timestamp”
!
source MediaWiki
now imagine we want to images of different kinds,
with different attributes…
Attribute name
Timestamps
Value
(always varchar)
Entity with variable,
time-dependent
attributes
Fixed attrs.
!
source CKAN
Graph models
Graph databases
• Represent entities (Users, Products, Places…) as
vertexes (entity types are called classes)
• Connections between them are directed graph
edges (edge types are called properties)
!
• The meaning of these connections is expressed in
ontologies that can be shared and reused
Representing a person
using ontologies
http://www.fe.up.pt/
~pro11004
“João Rocha”
foaf:name
up:PhDStudent rdf:type
http://www.w3.org/TR/rdf-schema/
http://www.foaf-project.org/
http://
www.fe.up.pt/
org:memberOf
Getting all the students
SELECT ?uri ?attribute ?value
FROM <http://myorganization.com/data>
WHERE
{
?uri rdfs:type up:Student.
?uri ?attribute ?value
}
• Will fetch all the students, regardless of their type
• Will also return their attributes (“database columns”)
• Different types of students will have different attributes
Inference
• Transitive Properties (subclass of subclass…)
• Subclasses
• Multiple Inheritance Handling
(Student + Researcher + ScholarshipHolder)
Saves coding time
spent writing complex queries
Nothing comes for free
• Aggregation operators slow
• Transactions are not supported in standard
SPARQL
• (“SPARQL 1.1 Query/Update Services should be atomic but that they are
not required to be atomic.”)
• Graph DBMS Solutions are in early stages (many
bugs, many “beta”s, many mailing lists…)
An example application
Dendro
(dendro-dev.fe.up.pt:3001)
• Dropbox and File/Folder description platform
• Variable descriptions
• Time-dependent values
• Directory structures (hierarchy)
• Need for simple querying…
nie:isLogicalPartOf
Pn
Dn
280mm
“DCB Base
Data”
120
Dn-1
dcb:initialCrackLength
dc:title
dcb:specimenWidth
dc:isReferencedBy
Fn
120
dc:title
dcb:specimenWidth
dc:isVersionOf
Added property
instance
01/01/2014
^^xsd:date
dc:created
01/01/2014
^^xsd:date
dc:modified
Changed
modification
timestamp
Revision
creation
timestamp
Un
dc:creator
Current dataset version Past Revisions
ddr:pertainsTo
Change
recording
C
ddr:initial
CrackLen
gth
ddr:changedDescriptor
“add”
ddr:operation
“DCB Base
Data”
Socket.io
Real-time
events
NodeJS
Business
Logic
AngularJS
Dynamic interfaces à la Google Docs
Files
GridFS
Database
OpenLink
Virtuoso
Free-text
search
ElasticSearch
Code Demos
NodeJS (Dendro) http://192.168.5.75:3001
GridFS http://192.168.5.75:27017
OpenLink Virtuoso http://192.168.5.75:8890
ElasticSearch
http://192.168.5.75:9200/_plugin/
head/
Socket.io (BattleBits) http://localhost:3000
Conclusions
• JavaScript + JSON = easy parsing, less verbose code
• NodeJS = asynchronous everything. Needs precise flow control
• ElasticSearch = Scalable indexing, easy to use JSON API
• GridFS = Transparent scaling for huge numbers of large files;
querying using JSON-based API
• Graph Databases = Model certain problems better than their
relational counterparts. Simpler queries using SPARQL. Less
mature than RDBMs. No transactions.
• Socket.io = Real-time library for client-server-client push
communication
João Rocha da Silva is an Informatics Engineering PhD student at the Faculty of
Engineering of the University of Porto. He specializes on research data management,
applying the latest Semantic Web Technologies to the adequate preservation and
discovery of research data assets.
!
He is experienced in many programming languages (Javascript-Node, PHP with MVC
frameworks, Ruby on Rails, J2EE, etc etc) running on the major operating systems
(everyday Mac user). Regardless of language, he is a quick learner that can adapt to any
new technology quickly and effectively.
!
He is also an experienced freelancer iOS Developer with several Apps published on the
App Store, and a self-taught DIY mechanic with a special interest in classic cars,
particularly his 1987 Toyota Corolla GT Twin Cam, also known as Hachi-Roku or AE86.
!
Research Data Management and Semantic
Web Researcher, Web & iPhone Developer
João Rocha da Silva!
joaorosilva@gmail.com

More Related Content

PDF
Ontologies & linked open data
PDF
Resource description framework
PDF
Knowledge Patterns for the Web: extraction, transformation, and reuse
PPTX
Demystifying RDF
PDF
Managing RDF data with graph databases
PPTX
semantic web & natural language
PDF
Sparql a simple knowledge query
PPTX
General Introduction for Semantic Web and Linked Open Data
Ontologies & linked open data
Resource description framework
Knowledge Patterns for the Web: extraction, transformation, and reuse
Demystifying RDF
Managing RDF data with graph databases
semantic web & natural language
Sparql a simple knowledge query
General Introduction for Semantic Web and Linked Open Data

What's hot (11)

PDF
Ontologies and semantic web
PPT
A review of the state of the art in Machine Learning on the Semantic Web
PPTX
Using OWL for the RESO Data Dictionary
PPTX
RDF Graph Data Management in Oracle Database and NoSQL Platforms
PPTX
Deriving an Emergent Relational Schema from RDF Data
PPTX
Multilingual issues in the representation of international bibliographic stan...
PDF
Consuming Linked Data by Humans - WWW2010
PDF
CWIN17 Frankfurt / talend_nlp
PPT
Semantic Web in Action
Ontologies and semantic web
A review of the state of the art in Machine Learning on the Semantic Web
Using OWL for the RESO Data Dictionary
RDF Graph Data Management in Oracle Database and NoSQL Platforms
Deriving an Emergent Relational Schema from RDF Data
Multilingual issues in the representation of international bibliographic stan...
Consuming Linked Data by Humans - WWW2010
CWIN17 Frankfurt / talend_nlp
Semantic Web in Action
Ad

Similar to Graph Databases and Web Frameworks (NodeJS, AngularJS, GridFS, OpenLink Virtuoso) (20)

PDF
Ontology-based multi-domain metadata for research data management using tripl...
PPTX
Why I don't use Semantic Web technologies anymore, event if they still influe...
PDF
The Dendro research data management platform: Applying ontologies to long-ter...
PPTX
Intro to the semantic web (for libraries)
PPTX
Ld4 l triannon
PDF
JSON-LD and SHACL for Knowledge Graphs
PPTX
From ontology to wiki
PPTX
Making the semantic web work
PPTX
Enterprise knowledge graphs
PDF
Vital AI: Big Data Modeling
ODP
State of the Semantic Web
PDF
Evolution of the Graph Schema
PDF
Intro to-technologies-Green-City-Hackathon-Athens
PDF
Michael stack -the state of apache h base
PDF
MongoDB Basics
PPTX
Introducción a NoSQL
PPTX
Introduction to Software - Coder Forge - John Mulhall
PDF
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...
PPT
SemanticWeb Nuts 'n Bolts
PDF
Data integration with a façade. The case of knowledge graph construction.
Ontology-based multi-domain metadata for research data management using tripl...
Why I don't use Semantic Web technologies anymore, event if they still influe...
The Dendro research data management platform: Applying ontologies to long-ter...
Intro to the semantic web (for libraries)
Ld4 l triannon
JSON-LD and SHACL for Knowledge Graphs
From ontology to wiki
Making the semantic web work
Enterprise knowledge graphs
Vital AI: Big Data Modeling
State of the Semantic Web
Evolution of the Graph Schema
Intro to-technologies-Green-City-Hackathon-Athens
Michael stack -the state of apache h base
MongoDB Basics
Introducción a NoSQL
Introduction to Software - Coder Forge - John Mulhall
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...
SemanticWeb Nuts 'n Bolts
Data integration with a façade. The case of knowledge graph construction.
Ad

Recently uploaded (20)

PPTX
22ME926Introduction to Business Intelligence and Analytics, Advanced Integrat...
PDF
MACCAFERRY GUIA GAVIONES TERRAPLENES EN ESPAÑOL
PPTX
INTERNET OF THINGS - EMBEDDED SYSTEMS AND INTERNET OF THINGS
PPT
UNIT-I Machine Learning Essentials for 2nd years
PDF
ST MNCWANGO P2 WIL (MEPR302) FINAL REPORT.pdf
PDF
THE PEDAGOGICAL NEXUS IN TEACHING ELECTRICITY CONCEPTS IN THE GRADE 9 NATURAL...
PDF
IAE-V2500 Engine Airbus Family A319/320
PPTX
Real Estate Management PART 1.pptxFFFFFFFFFFFFF
PPTX
Research Writing, Mechanical Engineering
PDF
Introduction to Machine Learning -Basic concepts,Models and Description
PPTX
SE unit 1.pptx aaahshdhajdviwhsiehebeiwheiebeiev
DOCX
An investigation of the use of recycled crumb rubber as a partial replacement...
PDF
Mechanics of materials week 2 rajeshwari
PDF
B461227.pdf American Journal of Multidisciplinary Research and Review
PPTX
MODULE 02 - CLOUD COMPUTING-Virtual Machines and Virtualization of Clusters a...
PPTX
1. Effective HSEW Induction Training - EMCO 2024, O&M.pptx
PDF
VTU IOT LAB MANUAL (BCS701) Computer science and Engineering
PPTX
chapter 1.pptx dotnet technology introduction
PPTX
Design ,Art Across Digital Realities and eXtended Reality
PDF
Software defined netwoks is useful to learn NFV and virtual Lans
22ME926Introduction to Business Intelligence and Analytics, Advanced Integrat...
MACCAFERRY GUIA GAVIONES TERRAPLENES EN ESPAÑOL
INTERNET OF THINGS - EMBEDDED SYSTEMS AND INTERNET OF THINGS
UNIT-I Machine Learning Essentials for 2nd years
ST MNCWANGO P2 WIL (MEPR302) FINAL REPORT.pdf
THE PEDAGOGICAL NEXUS IN TEACHING ELECTRICITY CONCEPTS IN THE GRADE 9 NATURAL...
IAE-V2500 Engine Airbus Family A319/320
Real Estate Management PART 1.pptxFFFFFFFFFFFFF
Research Writing, Mechanical Engineering
Introduction to Machine Learning -Basic concepts,Models and Description
SE unit 1.pptx aaahshdhajdviwhsiehebeiwheiebeiev
An investigation of the use of recycled crumb rubber as a partial replacement...
Mechanics of materials week 2 rajeshwari
B461227.pdf American Journal of Multidisciplinary Research and Review
MODULE 02 - CLOUD COMPUTING-Virtual Machines and Virtualization of Clusters a...
1. Effective HSEW Induction Training - EMCO 2024, O&M.pptx
VTU IOT LAB MANUAL (BCS701) Computer science and Engineering
chapter 1.pptx dotnet technology introduction
Design ,Art Across Digital Realities and eXtended Reality
Software defined netwoks is useful to learn NFV and virtual Lans

Graph Databases and Web Frameworks (NodeJS, AngularJS, GridFS, OpenLink Virtuoso)