Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Cayley: A Graph Engine Inspired by Google’s Knowledge Graph

Cayley: A Graph Engine Inspired by Google’s Knowledge Graph

This item in japanese


Barak Michener, a Software Engineer working for the Google Knowledge Team, has open sourced a personal project called Cayley, a graph database inspired by Freebase and the Google Knowledge Graph, the later powering Google’s search engine. Freebase is a collection of free structured data, currently at ~2.7B facts and counting, and an API for querying this data.

Cayley provides a way to append and query complex semantic data stored in various back-end stores such as LevelDB, MongoDB or in-memory. According to Michener, the graph store was written in Go for performance reasons:

Cayley is written in Go, which was a natural choice. As a backend service that depends upon speed and concurrent access, Go seemed like a good fit. Go did not disappoint; with a fantastic standard library and easy access to open source libraries from the community, the necessary building blocks were already there. Combined with Go’s effective concurrency patterns compared to C, creating a performance-competitive successor to graphd became a reality.

Cayley uses a RESTful API or a REPL with a query editor and visualizer that can be tested online. The query engine supports Gremlin, a JavaScript DSL for property graph traversal, and a simplified MQL, Freebase’s query language. Cayley can be extended with more back-end stores and query languages if needed.

Cayley is currently not a Google project, but it is “created and maintained by a Googler, with permission from and assignment to Google, under the Apache License, version 2.0,” according to this disclaimer.

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p