Find your data
Use GraphDB capabilities in
XPages applications
8th Sutol Conference, November 2016
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
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
8th Sutol Conference, November 2016
The Graph Principle
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
8th Sutol Conference, November 2016
Some GraphDBs and Frameworks
• Neo4J
• OrientDB
• Titan/Cassandra
• Tinkerpop (used here in ODA)
• Apache Lucene / Solr
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"
• …
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)
8th Sutol Conference, November 2016
Introducing:
GraphNSF
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
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
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
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
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
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)
8th Sutol Conference, November 2016
DEMO TIME!
DEMO TIME!
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
8th Sutol Conference, November 2016
8th Sutol Conference, November 2016
Resources
• The XPages demo application
• http://notesx.net:8090/obusse/
ICONUK_2016_Demo_Database
• A nice glossary
• http://www.intec.co.uk/from-xpages-to-web-app-glossary/
• OpenNTF Domino API
• http://www.openntf.org/main.nsf/project.xsp?r=project/
OpenNTF%20Domino%20API
• http://www.openntf.org/main.nsf/project.xsp?r=project/
OpenNTF%20Domino%20API%20Demo%20Database
• Graphs
• http://de.slideshare.net/ktree19/the-graph-revolution

Find your data

  • 1.
    Find your data UseGraphDB capabilities in XPages applications
  • 2.
    8th Sutol Conference,November 2016
  • 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
  • 5.
    8th Sutol Conference,November 2016 The Graph Principle
  • 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)
  • 10.
    8th Sutol Conference,November 2016 Introducing: GraphNSF
  • 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)
  • 17.
    8th Sutol Conference,November 2016 DEMO TIME! DEMO TIME!
  • 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
  • 19.
    8th Sutol Conference,November 2016
  • 20.
    8th Sutol Conference,November 2016 Resources • The XPages demo application • http://notesx.net:8090/obusse/ ICONUK_2016_Demo_Database • A nice glossary • http://www.intec.co.uk/from-xpages-to-web-app-glossary/ • OpenNTF Domino API • http://www.openntf.org/main.nsf/project.xsp?r=project/ OpenNTF%20Domino%20API • http://www.openntf.org/main.nsf/project.xsp?r=project/ OpenNTF%20Domino%20API%20Demo%20Database • Graphs • http://de.slideshare.net/ktree19/the-graph-revolution