Introducing Gremlin The Graph Database
Written by Kay Ewbank   
Wednesday, 14 August 2013

The latest collection of technologies from open source software development group, TinkerPop, which work in the graph database area has been released. TinkerPop 2.4 includes graph database frameworks, algorithm packages and servers, and has been given the name “Gremlin Without a Cause".

The name is a pun on the fact that Gremlin, the graph database query language, is one of the primary reasons why TinkerPop was formed, and has also given the group the opportunity to design a logo depicting James Dean dressed as a Gremlin.

If you’re not familiar with graph databases, they make use of the Resource Description Framework, RDF. In RDF, all expressions are collections of triples, each consisting of a subject, and object, and a predicate or property that denotes the relationship between the subject and object.

If you wanted to represent the triple:

Fred lives in Denver

you could have a node called Fred, another node called Denver, and the predicate could be ‘City’ (or maybe ‘Address’  for more detailed data).

 

gremlingraph

 

You need a special query language for working with graph databases because of the fact that a property graph can be traversed in many ways, starting with the straightforward paths then adding operations such as filter on edges, retrace steps, and update counters.

Gremlin is a language that can concisely express routes through the graph including these and other operations. It’s a Domain Specific Language (DSL) written in Groovy that compiles down to Pipes.

The core of the TinkerPop stack is the Blueprints framework, which Marko Rodriguez, the main developer behind TinkerPop, describes as “the JDBC of Graph Databases”. Blueprints provides a collection of generic interfaces that mean you can develop graph-based applications without introducing explicit dependencies on concrete Graph Database implementations.  It also provides concrete bindings for Neo4J, OrientDB and Dex graph databases. Gremlin sits on top of this framework.

The main changes to Blueprints in this release start with the fact that the VertexQuery and GraphQuery API now make use of general predicates so adding support for push-down predicates.  GraphFactory has been improved with support for dynamic determination of graph constructors.

Pipes is the TinkerPop dataflow framework that uses Process Graphs. A process graph is composed of Pipe vertices connected by communication edges.  In this new version, it has full support for the predicate operator in Blueprints.  

Gremlin itself has benefited from query optimization so that Gremlin compilation is more efficient, and has branch factor support for more operators. The list of improvements provides links to the full release notes for the new versions of the components.

 

More Information

TinkerPop 2.4.0 Released (Gremlin Without a Cause)

TinkerPop Github

Related Articles

NuoDB Challenges NoSQL       

OrientDB Graph Database Upgraded       

NoSQL Database OrientDB 1.0 Released       

Contest marks new release of Infinite Graph       

NoSQL Predicted To Grow in 2012

 

To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin,  or sign up for our weekly newsletter.

 

raspberry pi books

 

Comments




or email your comment to: comments@i-programmer.info

 

Banner


Running PostgreSQL Inside Your Browser With PGLite
18/03/2024

Thanks to WebAssembly we can now enjoy PostgreSQL inside the browser so that we can build reactive, realtime, local-first apps directly on Postgres. PGLite is about to make this even easier.



TypeScript 5.4 Adds NoInfer Type
12/03/2024

TypeScript 5.4 has been released, with the addition of a NoInfer utility type alongside preserved narrowing in closures following last assignments. 


More News

Last Updated ( Wednesday, 14 August 2013 )