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