Ken - A Ruby API for accessing Freebase
I’d like to introduce a project I’ve been working on since a while. I simply called it Ken. Basically Ken is a data layer for knowledge representation. More precisely it’s a Ruby Library that is being built to access the Metaweb Services supplied by Freebase. Just born, the project’s goal is the provision of a concise API for querying and writing structured data.
Freebase is a collaborative database that underlies a huge graph of interconnected nodes, representing knowledge (in a much more structured way than Wikipedia does). That graph can be viewed at a higher level through an object-oriented lens, which leads to easier interaction. To understand the fundamental Metaweb Architecture please read the official MQL Reference Guide (with focus on chapter 2) provided by Freebase.
Normally you would use MQL (Metaweb Query Language) to express queries against the database. If Freebase finds something that matches your request, you get a result back in form of a JSON Hash. With Ken at your hands, you no longer need to parse the JSON result. Instead you can work with Ruby Objects which should be much more convenient.
Enough the talk, let’s play around with young Ken:
Actually this the only way you can use Ken at the moment. But there’s more to come. The development is at an early stage and my focus lies on building a simple API for exploring Freebase Resources first. However, if things go right, you should be able to use this library as a Data Layer (instead of or in addition to ActiveRecord / DataMapper) for your web framework of choice (Merb, Rails).
You can track development progress at Github. There you can find a more detailed explanation on features as well. I’m planning to build a sample app in Ruby On Rails or Merb to demonstrate the features.
Please let me know what you think. There’s so much room for ideas and improvements.
I’d be happy to get your feedback. If you’d like to contribute, I’d be even happier.