Embed presentation
Download as PDF, PPTX

![[Me] doryokujin 2 2 33[Company] 1](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-2-2048.jpg&f=jpg&w=240)
![[ ] MongoDB JP TokyoWebMining MongoDB[ ] MongoDB MongoDB GraphDB](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-3-2048.jpg&f=jpg&w=240)
![#1[MongoTokyo] Mongo DB Congerence in Japan 2011 03 01 10gen 3 … http://www.10gen.com/conferences/ mongotokyo2011](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-4-2048.jpg&f=jpg&w=240)
![#2[gihyo ] gihyo.jp 2 DocumentDB GraphDB NoSQL](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-5-2048.jpg&f=jpg&w=240)



![Graph[Graph] Dots Lines vertices edges 1 (relationship) Dots Lines Graph](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-9-2048.jpg&f=jpg&w=240)
![Undirected Graph[ (Undirected)Graph] Vertices: Edges: (relationship) (symmetric)](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-10-2048.jpg&f=jpg&w=240)
![Directed Graph[ (Directed) Graph] Vertices: Edges: (relationship) (asymmetric)](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-11-2048.jpg&f=jpg&w=240)
![Directed / Underected Graph friend follow friend follow followfriend follow [Facebook] [Twitter] ”Undirected Graph” Follow ”Directed Graph” ” ” ” ” ”friends” ”follow”](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-12-2048.jpg&f=jpg&w=240)

![Single-Relational Graph friend follow friend follow followfriend follow [Facebook] [Twitter] ”Undirected Graph” Follow ”Directed Graph” ”Facebook ” ”Twitter ” ”friends” ”follow”](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-14-2048.jpg&f=jpg&w=240)
![Single-Relational Reply num:5 Reply Block num:5 Reply DM num:5 num:1 RT RT Reply DM num:2 num:2 num:2 num:1 [Twitter] Graph ”Directed Graph” ”Twitter ” ”Reply”,”RT”,”DM”,”Block”](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-15-2048.jpg&f=jpg&w=240)
![*Facebook Flickr lives_in is is is follow lives_in friend is share * friend share follow follow is[ ] lives_in Undirected Directed is is is lives_in](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-16-2048.jpg&f=jpg&w=240)

![Multi-Relational Reply Reply Block DM Reply RT RTReply DM [Twitter] ”Twitter ” ”Reply”,”RT”,”DM”,”Block”](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-18-2048.jpg&f=jpg&w=240)
![Multi-Relational *Facebook Flickr lives_in has has has follow lives_in friend has share * has friend share follow lives_in[Multi-Relatinal Graph] has has has lives_in](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-19-2048.jpg&f=jpg&w=240)







![Graph DB[ DB ≠ Graph DB] Graph DB DB Graph DB](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-27-2048.jpg&f=jpg&w=240)
![RDB Graph[Relatinal Database] AoutV inV A B B C A C C D D D A](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-28-2048.jpg&f=jpg&w=240)
![Document DB Graph [Document Database] A{ A : { out : [B, C], in : [D] } B : { in : [A] B C } C : { out : [D], in : [A] } D : { out : [A], in : [C] D }}](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-29-2048.jpg&f=jpg&w=240)
![XML DB Graph [XML Database] A<graphml><graph><node id=A /><node id=B /> B C<node id=C /><edge source=A target=B /><edge source=A target=C /><edge source=C target=D /><edge source=D target=A /></graph> D</graphml>](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-30-2048.jpg&f=jpg&w=240)
![Graph DB[ ]“A graph database is any storage system that provides index-free adjacency” The Graph Traversal Programming Pattern (“adjacent”) ( “index-free” )](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-31-2048.jpg&f=jpg&w=240)








![Graph DB[Data Locality] [Local Search, Social Network] 2 [Transition] Web [Recommendation]](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-40-2048.jpg&f=jpg&w=240)
![[Graph Problems] [Shortest Path] 2GraphDB Traversal Neo4jrb](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-41-2048.jpg&f=jpg&w=240)

![Graph DB[ ] Property Graph Index-Free Adjacency Graph Query = Graph Traversal Data Locality](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-43-2048.jpg&f=jpg&w=240)


![Neo4j[ ] HP Java AGPLv3 2003 24 8 2009 VC ACID Propety Graph Model / Gremlin Lucene](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-46-2048.jpg&f=jpg&w=240)
![Neo4j[Language Binding - Framework] Python - Django Ruby - Ruby on Rails Clojure Scala Groovy - Griffin / Grails Java - Spring Framework Ruby Ruby Java](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-47-2048.jpg&f=jpg&w=240)
![Neo4j[Tools] Shell Shell Graph Traverse Indexing neo4j-server Neo4j REST API Admin tools Online BackUp Neoclipse Neo4j ↑ Batch Insert](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-48-2048.jpg&f=jpg&w=240)
![Neo4j[ver. 1.2] 1.2 Neo4j Server REST API Admin Interface High Availability Kernel](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-49-2048.jpg&f=jpg&w=240)

![sones[ ] HP C# AGPLv3 2011 VC ACID REST Interface Property Graph Model / Gremlin : Property Hyper Graph Graph Query Language(GQL)](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-51-2048.jpg&f=jpg&w=240)
![sones [GQL] SQL Traversal Cheat Sheet Query• FROM User SELECT User.Friends.Friends.Name// aggregation• SELECT COUNT(User.Friends)• SELECT User.Friends.Random(2)• SELECT User.Friends.Name.Substring(2,5)](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-52-2048.jpg&f=jpg&w=240)

![Orient DB[ ] HP Java Apache2.0 1997 C++ → Java Document-Graph DB ACID Shell / REST Interface Propety Graph Model / Gremlin](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-54-2048.jpg&f=jpg&w=240)
![Orient DB [Document-Graph DB] [ ] Orient DB Object DB Key/Value Server Document DB// DATABASE OPENODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/petshop").open("admin", "admin");// DocumentODocument doc = new ODocument(db, "Person");doc.field( "name", "Luke" );doc.field( "surname", "Skywalker" );doc.field( "city", new ODocument(db, "City").field("name","Rome").field("country","Italy") ); // Transactiondoc.save();db.close();](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-55-2048.jpg&f=jpg&w=240)
![Orient DB [Document-Graph DB] OGraphVertex OGraphEdge OGraphElement ODocumentWrapper Document SQLSELECT FROM OGraphVertex WHERE outEdges CONTAINS ( label = 'knows' )//7 ”knows”SELECT FROM OGraphVertex WHERE outEdges TRAVERSE(0,7,'out,outEdges')( @class = 'OGraphEdge' and label = 'knows' )](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-56-2048.jpg&f=jpg&w=240)
![Orient DB[Language Binding Using Binary Protocol] Java C PHP JRuby (Ruby: soon)[Language Binding Using REST Protocol] Python Java Script](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-57-2048.jpg&f=jpg&w=240)

![InfoGrid [ ] HP JAVA AGPLv3 ACID REST Interface MeshObject GraphMeshBase _GDB = StoreMeshBase.create(_MySQLStore);MeshObject _xkcd = _GDB.getMeshObjectLifecycleManager().createMeshObject();_xkcd.setProperty("Name", "xkcd");_xkcd.setProperty("Url", "http://www.xkcd.com");_xkcd.relate(_good)](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-59-2048.jpg&f=jpg&w=240)

![Infinite Graph[ ] HP C++ Academic and Start Up 2010 6 Distributed Graph DB ↑Objectivity/DB: distributed database server](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-61-2048.jpg&f=jpg&w=240)


![Graph DB[ ] Graph DB Neo4j Open Source Social Graph Software Not Ready Yet Graph DB Hypergtaph: PropertyGraph HyperGraph Pregel: bulk synchronous parallel model Distributed DB Google FlockDB: Distributed DB for storing adjancency lists Twitter](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-64-2048.jpg&f=jpg&w=240)


![Tinker Pop[Tinker Pop] HP Property Graph Model GraphDB Blueprints: A Property Graph Model Interface Gremlin: A Graph Traversal Language Pipes: A Data Flow Framework using Process Graphs Rexster: A RESTful Graph Shell Mutant: A Poly-ScriptEngine ScriptEngine](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-67-2048.jpg&f=jpg&w=240)


![BluePrints[ ] HP GraphDB ”JDBC”Property Graph Model GraphDB[Now] Tinker Graph: in-memory property graph model Sail: Open RDF Neo4j, Orient DB, sones, ...[Future] Redis Infinite Graph, Dex](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-70-2048.jpg&f=jpg&w=240)



![Gremlin[ ] HPGremlin = Graph Programing LanguageBlueprints GraphDBShell GraphDB QueryJava + Groovy](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-74-2048.jpg&f=jpg&w=240)

![doryokujin$ ./gremlin.sh ,,,/ (o o)-----oOOo-(_)-oOOo-----gremlin> g = TinkerGraphFactory.createTinkerGraph()==>tinkergraph[vertices:6 edges:6] // 6 6gremlin> g.class==>class com.tinkerpop.blueprints.pgm.impls.tg.TinkerGraphgremlin> // gremlin> g.V==>v[3]==>v[2]...gremlin> // gremlin> g.E==>e[10][4-‐created-‐>5]==>e[7][1-‐knows-‐>2]==>e[9][1-‐created-‐>3]... Getting Srarted](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-76-2048.jpg&f=jpg&w=240)
![gremlin> v = g.v(1) // id=1 ==>v[1]gremlin> v.keys() // ==>age==>namegremlin> v.values() // ==>29==>markogremlin> v.name + ' is ' + v.age + ' years old.'==>marko is 29 years old.gremlin> // id=1, name=marko gremlin> v.outE==>e[7][1-‐knows-‐>2]==>e[9][1-‐created-‐>3]==>e[8][1-‐knows-‐>4]gremlin> // gremlin> v.outE.weight==>0.5==>0.4==>1.0 Getting Srarted](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-77-2048.jpg&f=jpg&w=240)
![gremlin> // id=1 1.0gremlin> v.outE{it.weight < 1.0}.inV==>v[2]==>v[3]gremlin> // gremlin> list = [] gremlin> v.outE{it.weight < 1.0}.inV >> list==>v[2]==>v[3]gremlin> // list property mapsgremlin> list.collect{ it.map() }==>{name=vadas, age=27}==>{name=lop, lang=java}gremlin> // listgremlin> list.inE() ==>e[7][1-‐knows-‐>2]==>e[9][1-‐created-‐>3]... Getting Srarted](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-78-2048.jpg&f=jpg&w=240)
![gremlin> list.inE{it.label=='knows'} // 'knows' ==>e[7][1-‐knows-‐>2] gremlin> list.inE()[[label:'knows']] // ==>e[7][1-‐knows-‐>2] gremlin> list.inE()[[label:'knows']].outV.name // :name ==>marko Getting Srarted~20000ms: g.V.outE{it['label']=='followed_by'}.inV.outE{it['label']=='followed_by'}.inV.outE {it['label']=='followed_by'}.inV >>-‐1~9000ms: g.V.outE{it.label=='followed_by'}.inV.outE{it.label=='followed_by'}.inV.outE {it.label=='followed_by'}.inV >>-‐1~8500ms: g.V.outE{it.getLabel()=='followed_by'}.inV.outE{it.getLabel()=='followed_by'}.inV.outE {it.getLabel()=='followed_by'}.inV >>-‐1~6000ms: g.V.outE[[label:'followed_by']].inV.outE[[label:'followed_by']].inV.outE [[label:'followed_by']].inV >>-‐1 ClosureFilterPipe vs. PropertyFIlterPipe](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-79-2048.jpg&f=jpg&w=240)

![Pipes[ ] HPPipes = Data Flow FrameworkPipes Graph Traversal 1 1Pipes filtering, splitting, merging, traversing,...](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-81-2048.jpg&f=jpg&w=240)
![Gremling:id-v('a')/outE[@label='knows']/inV/outE[@label='develops']/inV/@name Pipe pipe1 = new VertexEdgePipe(Step.OUT_EDGES); Pipe pipe2 = new LabelFilterPipe("knows", Filter.NOT_EQUALS); Pipe pipe3 = new EdgeVertexPipe(Step.IN_VERTEX); Pipe pipe4 = new VertexEdgePipe(Step.OUT_EDGES); Pipe pipe5 = new LabelFilterPipe("develops", Filter.NOT_EQUALS); Pipe pipe6 = new EdgeVertexPipe(Step.IN_VERTEX); Pipe pipe7 = new PropertyPipe("name"); Pipe pipeline = new Pipeline (pipe1,pipe2,pipe3,pipe4,pipe5,pipe6,pipe7); pipeline.setStarts(new SingleIterator(graph.getVertex("a")); for(String name : pipeline) { System.out.println(name); } A Graph Processing Stack](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-82-2048.jpg&f=jpg&w=240)


![Rexster[ ] HPRexster = A RESTful Graph ShellBlueprints GraphDB RESTfulAPI (JSON)Gremlin](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-85-2048.jpg&f=jpg&w=240)
![> http://localhost:8182/examplegraph/vertices/b{ "version":"0.1", "results": { "_type":"vertex", "_id":"b", "name":"aaron", "type":"person" }, "query_time":0.1537} A Graph Processing Stack// g:key-v('name','DARK STAR')[0]: Usin gGremlin Code> http://localhost:8182/gratefulgraph/traversals/gremlin?script=g:key-v%28%27name%27,%27DARK%20STAR%27%29[0]{ "results": [{ "_type":"vertex", "_id":"89", "name":"DARK STAR", "song_type":"original", "performances":219, "type":"song"} ], "query_time":6.753024, "success":true, "version"} Using Gremilin](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-86-2048.jpg&f=jpg&w=240)

![Mutant[ ] HPMutant = A Poly-ScriptEngine ScriptEngineJVM Script Engine](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-88-2048.jpg&f=jpg&w=240)
![Mutant Consolemarko:~/software/mutant$ ./mutant.sh // oO ~~-‐____m(___m___~.___ MuTanT 0.1-‐SNAPSHOT_|__|__|__|__|__| [ ?h = help ][gremlin] gremlin 0.6-‐SNAPSHOT[Groovy] Groovy Scripting Engine 2.0[ruby] JSR 223 JRuby Engine 1.5.5[ECMAScript] Mozilla Rhino 1.6 release 2[AppleScript] AppleScriptEngine 1.0mutant[gremlin]> $x := 12[12]mutant[gremlin]> ?xmutant[AppleScript]> ?xmutant[Groovy]> $x12mutant[Groovy]> ?xmutant[ruby]> $x12mutant[ruby]> ?xmutant[ECMAScript]> $x12 Basic Examples](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-89-2048.jpg&f=jpg&w=240)
![[ ] Graph DB Graph DB Graph Partitioning Pregel Neo4j](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-90-2048.jpg&f=jpg&w=240)


The document discusses graph databases and their properties. Graph databases are structured to store graph-based data by using nodes and edges to represent entities and their relationships. They are well-suited for applications with complex relationships between entities that can be modeled as graphs, such as social networks. Key graph database technologies mentioned include Neo4j, OrientDB, and TinkerPop which provides graph traversal capabilities.

![[Me] doryokujin 2 2 33[Company] 1](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-2-2048.jpg&f=jpg&w=240)
![[ ] MongoDB JP TokyoWebMining MongoDB[ ] MongoDB MongoDB GraphDB](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-3-2048.jpg&f=jpg&w=240)
![#1[MongoTokyo] Mongo DB Congerence in Japan 2011 03 01 10gen 3 … http://www.10gen.com/conferences/ mongotokyo2011](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-4-2048.jpg&f=jpg&w=240)
![#2[gihyo ] gihyo.jp 2 DocumentDB GraphDB NoSQL](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-5-2048.jpg&f=jpg&w=240)



![Graph[Graph] Dots Lines vertices edges 1 (relationship) Dots Lines Graph](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-9-2048.jpg&f=jpg&w=240)
![Undirected Graph[ (Undirected)Graph] Vertices: Edges: (relationship) (symmetric)](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-10-2048.jpg&f=jpg&w=240)
![Directed Graph[ (Directed) Graph] Vertices: Edges: (relationship) (asymmetric)](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-11-2048.jpg&f=jpg&w=240)
![Directed / Underected Graph friend follow friend follow followfriend follow [Facebook] [Twitter] ”Undirected Graph” Follow ”Directed Graph” ” ” ” ” ”friends” ”follow”](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-12-2048.jpg&f=jpg&w=240)

![Single-Relational Graph friend follow friend follow followfriend follow [Facebook] [Twitter] ”Undirected Graph” Follow ”Directed Graph” ”Facebook ” ”Twitter ” ”friends” ”follow”](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-14-2048.jpg&f=jpg&w=240)
![Single-Relational Reply num:5 Reply Block num:5 Reply DM num:5 num:1 RT RT Reply DM num:2 num:2 num:2 num:1 [Twitter] Graph ”Directed Graph” ”Twitter ” ”Reply”,”RT”,”DM”,”Block”](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-15-2048.jpg&f=jpg&w=240)
![*Facebook Flickr lives_in is is is follow lives_in friend is share * friend share follow follow is[ ] lives_in Undirected Directed is is is lives_in](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-16-2048.jpg&f=jpg&w=240)

![Multi-Relational Reply Reply Block DM Reply RT RTReply DM [Twitter] ”Twitter ” ”Reply”,”RT”,”DM”,”Block”](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-18-2048.jpg&f=jpg&w=240)
![Multi-Relational *Facebook Flickr lives_in has has has follow lives_in friend has share * has friend share follow lives_in[Multi-Relatinal Graph] has has has lives_in](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-19-2048.jpg&f=jpg&w=240)







![Graph DB[ DB ≠ Graph DB] Graph DB DB Graph DB](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-27-2048.jpg&f=jpg&w=240)
![RDB Graph[Relatinal Database] AoutV inV A B B C A C C D D D A](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-28-2048.jpg&f=jpg&w=240)
![Document DB Graph [Document Database] A{ A : { out : [B, C], in : [D] } B : { in : [A] B C } C : { out : [D], in : [A] } D : { out : [A], in : [C] D }}](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-29-2048.jpg&f=jpg&w=240)
![XML DB Graph [XML Database] A<graphml><graph><node id=A /><node id=B /> B C<node id=C /><edge source=A target=B /><edge source=A target=C /><edge source=C target=D /><edge source=D target=A /></graph> D</graphml>](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-30-2048.jpg&f=jpg&w=240)
![Graph DB[ ]“A graph database is any storage system that provides index-free adjacency” The Graph Traversal Programming Pattern (“adjacent”) ( “index-free” )](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-31-2048.jpg&f=jpg&w=240)








![Graph DB[Data Locality] [Local Search, Social Network] 2 [Transition] Web [Recommendation]](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-40-2048.jpg&f=jpg&w=240)
![[Graph Problems] [Shortest Path] 2GraphDB Traversal Neo4jrb](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-41-2048.jpg&f=jpg&w=240)

![Graph DB[ ] Property Graph Index-Free Adjacency Graph Query = Graph Traversal Data Locality](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-43-2048.jpg&f=jpg&w=240)


![Neo4j[ ] HP Java AGPLv3 2003 24 8 2009 VC ACID Propety Graph Model / Gremlin Lucene](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-46-2048.jpg&f=jpg&w=240)
![Neo4j[Language Binding - Framework] Python - Django Ruby - Ruby on Rails Clojure Scala Groovy - Griffin / Grails Java - Spring Framework Ruby Ruby Java](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-47-2048.jpg&f=jpg&w=240)
![Neo4j[Tools] Shell Shell Graph Traverse Indexing neo4j-server Neo4j REST API Admin tools Online BackUp Neoclipse Neo4j ↑ Batch Insert](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-48-2048.jpg&f=jpg&w=240)
![Neo4j[ver. 1.2] 1.2 Neo4j Server REST API Admin Interface High Availability Kernel](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-49-2048.jpg&f=jpg&w=240)

![sones[ ] HP C# AGPLv3 2011 VC ACID REST Interface Property Graph Model / Gremlin : Property Hyper Graph Graph Query Language(GQL)](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-51-2048.jpg&f=jpg&w=240)
![sones [GQL] SQL Traversal Cheat Sheet Query• FROM User SELECT User.Friends.Friends.Name// aggregation• SELECT COUNT(User.Friends)• SELECT User.Friends.Random(2)• SELECT User.Friends.Name.Substring(2,5)](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-52-2048.jpg&f=jpg&w=240)

![Orient DB[ ] HP Java Apache2.0 1997 C++ → Java Document-Graph DB ACID Shell / REST Interface Propety Graph Model / Gremlin](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-54-2048.jpg&f=jpg&w=240)
![Orient DB [Document-Graph DB] [ ] Orient DB Object DB Key/Value Server Document DB// DATABASE OPENODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/petshop").open("admin", "admin");// DocumentODocument doc = new ODocument(db, "Person");doc.field( "name", "Luke" );doc.field( "surname", "Skywalker" );doc.field( "city", new ODocument(db, "City").field("name","Rome").field("country","Italy") ); // Transactiondoc.save();db.close();](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-55-2048.jpg&f=jpg&w=240)
![Orient DB [Document-Graph DB] OGraphVertex OGraphEdge OGraphElement ODocumentWrapper Document SQLSELECT FROM OGraphVertex WHERE outEdges CONTAINS ( label = 'knows' )//7 ”knows”SELECT FROM OGraphVertex WHERE outEdges TRAVERSE(0,7,'out,outEdges')( @class = 'OGraphEdge' and label = 'knows' )](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-56-2048.jpg&f=jpg&w=240)
![Orient DB[Language Binding Using Binary Protocol] Java C PHP JRuby (Ruby: soon)[Language Binding Using REST Protocol] Python Java Script](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-57-2048.jpg&f=jpg&w=240)

![InfoGrid [ ] HP JAVA AGPLv3 ACID REST Interface MeshObject GraphMeshBase _GDB = StoreMeshBase.create(_MySQLStore);MeshObject _xkcd = _GDB.getMeshObjectLifecycleManager().createMeshObject();_xkcd.setProperty("Name", "xkcd");_xkcd.setProperty("Url", "http://www.xkcd.com");_xkcd.relate(_good)](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-59-2048.jpg&f=jpg&w=240)

![Infinite Graph[ ] HP C++ Academic and Start Up 2010 6 Distributed Graph DB ↑Objectivity/DB: distributed database server](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-61-2048.jpg&f=jpg&w=240)


![Graph DB[ ] Graph DB Neo4j Open Source Social Graph Software Not Ready Yet Graph DB Hypergtaph: PropertyGraph HyperGraph Pregel: bulk synchronous parallel model Distributed DB Google FlockDB: Distributed DB for storing adjancency lists Twitter](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-64-2048.jpg&f=jpg&w=240)


![Tinker Pop[Tinker Pop] HP Property Graph Model GraphDB Blueprints: A Property Graph Model Interface Gremlin: A Graph Traversal Language Pipes: A Data Flow Framework using Process Graphs Rexster: A RESTful Graph Shell Mutant: A Poly-ScriptEngine ScriptEngine](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-67-2048.jpg&f=jpg&w=240)


![BluePrints[ ] HP GraphDB ”JDBC”Property Graph Model GraphDB[Now] Tinker Graph: in-memory property graph model Sail: Open RDF Neo4j, Orient DB, sones, ...[Future] Redis Infinite Graph, Dex](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-70-2048.jpg&f=jpg&w=240)



![Gremlin[ ] HPGremlin = Graph Programing LanguageBlueprints GraphDBShell GraphDB QueryJava + Groovy](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-74-2048.jpg&f=jpg&w=240)

![doryokujin$ ./gremlin.sh ,,,/ (o o)-----oOOo-(_)-oOOo-----gremlin> g = TinkerGraphFactory.createTinkerGraph()==>tinkergraph[vertices:6 edges:6] // 6 6gremlin> g.class==>class com.tinkerpop.blueprints.pgm.impls.tg.TinkerGraphgremlin> // gremlin> g.V==>v[3]==>v[2]...gremlin> // gremlin> g.E==>e[10][4-‐created-‐>5]==>e[7][1-‐knows-‐>2]==>e[9][1-‐created-‐>3]... Getting Srarted](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-76-2048.jpg&f=jpg&w=240)
![gremlin> v = g.v(1) // id=1 ==>v[1]gremlin> v.keys() // ==>age==>namegremlin> v.values() // ==>29==>markogremlin> v.name + ' is ' + v.age + ' years old.'==>marko is 29 years old.gremlin> // id=1, name=marko gremlin> v.outE==>e[7][1-‐knows-‐>2]==>e[9][1-‐created-‐>3]==>e[8][1-‐knows-‐>4]gremlin> // gremlin> v.outE.weight==>0.5==>0.4==>1.0 Getting Srarted](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-77-2048.jpg&f=jpg&w=240)
![gremlin> // id=1 1.0gremlin> v.outE{it.weight < 1.0}.inV==>v[2]==>v[3]gremlin> // gremlin> list = [] gremlin> v.outE{it.weight < 1.0}.inV >> list==>v[2]==>v[3]gremlin> // list property mapsgremlin> list.collect{ it.map() }==>{name=vadas, age=27}==>{name=lop, lang=java}gremlin> // listgremlin> list.inE() ==>e[7][1-‐knows-‐>2]==>e[9][1-‐created-‐>3]... Getting Srarted](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-78-2048.jpg&f=jpg&w=240)
![gremlin> list.inE{it.label=='knows'} // 'knows' ==>e[7][1-‐knows-‐>2] gremlin> list.inE()[[label:'knows']] // ==>e[7][1-‐knows-‐>2] gremlin> list.inE()[[label:'knows']].outV.name // :name ==>marko Getting Srarted~20000ms: g.V.outE{it['label']=='followed_by'}.inV.outE{it['label']=='followed_by'}.inV.outE {it['label']=='followed_by'}.inV >>-‐1~9000ms: g.V.outE{it.label=='followed_by'}.inV.outE{it.label=='followed_by'}.inV.outE {it.label=='followed_by'}.inV >>-‐1~8500ms: g.V.outE{it.getLabel()=='followed_by'}.inV.outE{it.getLabel()=='followed_by'}.inV.outE {it.getLabel()=='followed_by'}.inV >>-‐1~6000ms: g.V.outE[[label:'followed_by']].inV.outE[[label:'followed_by']].inV.outE [[label:'followed_by']].inV >>-‐1 ClosureFilterPipe vs. PropertyFIlterPipe](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-79-2048.jpg&f=jpg&w=240)

![Pipes[ ] HPPipes = Data Flow FrameworkPipes Graph Traversal 1 1Pipes filtering, splitting, merging, traversing,...](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-81-2048.jpg&f=jpg&w=240)
![Gremling:id-v('a')/outE[@label='knows']/inV/outE[@label='develops']/inV/@name Pipe pipe1 = new VertexEdgePipe(Step.OUT_EDGES); Pipe pipe2 = new LabelFilterPipe("knows", Filter.NOT_EQUALS); Pipe pipe3 = new EdgeVertexPipe(Step.IN_VERTEX); Pipe pipe4 = new VertexEdgePipe(Step.OUT_EDGES); Pipe pipe5 = new LabelFilterPipe("develops", Filter.NOT_EQUALS); Pipe pipe6 = new EdgeVertexPipe(Step.IN_VERTEX); Pipe pipe7 = new PropertyPipe("name"); Pipe pipeline = new Pipeline (pipe1,pipe2,pipe3,pipe4,pipe5,pipe6,pipe7); pipeline.setStarts(new SingleIterator(graph.getVertex("a")); for(String name : pipeline) { System.out.println(name); } A Graph Processing Stack](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-82-2048.jpg&f=jpg&w=240)


![Rexster[ ] HPRexster = A RESTful Graph ShellBlueprints GraphDB RESTfulAPI (JSON)Gremlin](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-85-2048.jpg&f=jpg&w=240)
![> http://localhost:8182/examplegraph/vertices/b{ "version":"0.1", "results": { "_type":"vertex", "_id":"b", "name":"aaron", "type":"person" }, "query_time":0.1537} A Graph Processing Stack// g:key-v('name','DARK STAR')[0]: Usin gGremlin Code> http://localhost:8182/gratefulgraph/traversals/gremlin?script=g:key-v%28%27name%27,%27DARK%20STAR%27%29[0]{ "results": [{ "_type":"vertex", "_id":"89", "name":"DARK STAR", "song_type":"original", "performances":219, "type":"song"} ], "query_time":6.753024, "success":true, "version"} Using Gremilin](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-86-2048.jpg&f=jpg&w=240)

![Mutant[ ] HPMutant = A Poly-ScriptEngine ScriptEngineJVM Script Engine](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-88-2048.jpg&f=jpg&w=240)
![Mutant Consolemarko:~/software/mutant$ ./mutant.sh // oO ~~-‐____m(___m___~.___ MuTanT 0.1-‐SNAPSHOT_|__|__|__|__|__| [ ?h = help ][gremlin] gremlin 0.6-‐SNAPSHOT[Groovy] Groovy Scripting Engine 2.0[ruby] JSR 223 JRuby Engine 1.5.5[ECMAScript] Mozilla Rhino 1.6 release 2[AppleScript] AppleScriptEngine 1.0mutant[gremlin]> $x := 12[12]mutant[gremlin]> ?xmutant[AppleScript]> ?xmutant[Groovy]> $x12mutant[Groovy]> ?xmutant[ruby]> $x12mutant[ruby]> ?xmutant[ECMAScript]> $x12 Basic Examples](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-89-2048.jpg&f=jpg&w=240)
![[ ] Graph DB Graph DB Graph Partitioning Pregel Neo4j](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f2011-01-23whatisgraphdb-110123025419-phpapp02%2f75%2fGraphDB-GraphDB-90-2048.jpg&f=jpg&w=240)
