3. 8th Sutol Conference, November 2016
What’s up in the next 45 mins?
• Who am I?
• What are GraphDBs?
• Famous GraphDBs and Use Cases
• Terminology
• Introduction to GraphNSF in ODA
• Implementation & Data Modelling
• Demo
4. 8th Sutol Conference, November 2016
Oliver Busse
• Back again! 2nd SUTOL :-)
• Bleeding yellow since R4.5
• Software Architect at We4IT
• aveedo® Application Framework
• ScanAlyzr® Application Metrics
• OpenNTF Board Member
• NotesIn9 Producer
• IBM Champion 2015 + 2016
• @zeromancer1972
• www.oliverbusse.com
• www.we4it.com
6. 8th Sutol Conference, November 2016
GraphDB - Definition
A graph database, also called a graph-oriented
database, is a type of NoSQL database that
uses graph theory to store, map and query
relationships.
A graph database is essentially a collection of
vertices and edges. Each vertex represents an
entity (such as a person or business) and each
edge represents a connection or relationship
between two vertices.
http://whatis.techtarget.com/definition/graph-database
7. 8th Sutol Conference, November 2016
Some GraphDBs and Frameworks
• Neo4J
• OrientDB
• Titan/Cassandra
• Tinkerpop (used here in ODA)
• Apache Lucene / Solr
8. 8th Sutol Conference, November 2016
Who’s using GraphDBs?
• Amazon
• Google/Youtube
• Facebook, Twitter
• IBM Watson Workspace
• almost every application that offers something like
• "summarize", "assist"
• "related posts" (blogs)
• "others also bought this" (shops)
• collect relations and "likes"
• …
9. 8th Sutol Conference, November 2016
GraphDB - Terminology
• Vertices (singular: Vertex)
• has Properties (Key-Value pairs)
• sometimes referred to as Nodes or Elements
• Edges
• Connections, Relations between Vertices
• ElementStores
• for us: NSF databases
• MetaverseIDs (GraphNSF)
• Replica + UNID (hashed)
• internal use only (don‘t care about them)
11. 8th Sutol Conference, November 2016
GraphNSF is part of ODA
• Introduced and maintained by
• Nathan T. Freeman
• Paul S. Withers
• Uses Tinkerpop framework
• Under heavy development since ODA 2.0
• Current version is ODA 3.0
• GraphNSF is transactional
12. 8th Sutol Conference, November 2016
GraphNSF = GraphDB in Domino
• Vertices and Edges are stored as Documents
• The data container is a NSF
• The ElementStore defines the file path to the
NSF
• An ElementStore can hold different types of
Vertices
• Usually you create one ElementStore for
each Vertex type
13. 8th Sutol Conference, November 2016
Implementation & Data Modeling
• Vertices are defined as Interface classes
• Fields are defined as properties with Getter
and Setter
• Methods define how the Node can build
Edges to other Vertices
• Methods also return all Edges to a certain
Vertex
• All inside the NSF using ODA
14. 8th Sutol Conference, November 2016
Init the Graph
• Define the Element Store(s)
• Add Element Store(s) to the Graph
Configuration
• Define the DFramedTransactionalGraph
object with the Graph Configuration
• Add Vertex types to Element store(s)
• Work with the Graph object
15. 8th Sutol Conference, November 2016
Create an Edge
• Parameterize Object 1
• Get Object 2 by a unique key
• Call one of the „add“ methods of your Node
class
• Commit your changes
16. 8th Sutol Conference, November 2016
A strategy? Add some meta data
• a most common use case is to add meta
data to existing data using Graph data
• no need to touch the original data :-)
• graph data is highly extensible (like NoSQL
is in general)
18. 8th Sutol Conference, November 2016
Like what you saw?
• It’s IBM Champion nomination time
• Nominate YOUR IBM Champions
until Nov 14
• http://www.ibm.com/developerworks/
community/profiles/dw/anonymous.jsp?
id=2016