Google has released an open source graph database written in Go, making it available on GitHub.
Cayley can be used for apps that are based on a graph of related information. The database was developed to be fast, free, and easy to get started working with, according to a post on the Google open source blog by Barak Michener. He says that since Google acquired Metaweb and began using Freebase and linked open data,
“it’s been astounding to watch the growth of the Knowledge Graph and how it has improved Google search to delight users every day.”
Google’s Knowledge Graph is a database of “knowledge” that it used when you carry out a Google search. The graph database enhances the search results with a graphical view of information gathered from many sources. You’re shown structured details about the topic you’ve searched for and links to other sites that may be of interest. The idea is that you can find out everything you want without needing to look at multiple sites to find the overall picture.
Given the importance of Knowledge Graph and the way it has become heavily used throughout Google, developers at Google wanted to create an open source graph database for developers outside Google to use, and the result is the Cayley project, which takes its name from the mathematician Arthur Cayley who was responsible for the Cayley Graph theorem among other things.
Michener says that
“Cayley is a spiritual successor to graphd; it shares a similar query strategy for speed”,
adding that it’s not an exact replica of its predecessor.
In this a video, which is part of a 3-part series on building a knowledge graph, Barak Michener discusses the role of Caley and how it can be used to explore a dataset:
There’s also a Caley demo in a live instance running on Google App Engine that uses the sample dataset in the repository — 30,000 movies and their actors, roles, and directors using Freebase film schema. This lets you ask questions such as what the neighborhood is of a given actor, or how actors who co-star with that actor interact with each other.
If you use antibiotics against bacteria then antibiotic resistance is inevitable. However, if you use multiple antibiotics in a clever way you can engineer the bacterial population to remain unchanged [ ... ]