Upload
oliver-busse
View
635
Download
0
Embed Size (px)
Citation preview
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
GraphDB - DefinitionA 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
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
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
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