22 March 2007

InfoWorld | Freebase, the Semantic Web, and the Metaweb Query API | By Martin Heller

Martin Heller has written a thoughtful technical review of Freebase and the Metaweb Query API in an article titled Freebase, the Semantic Web, and the Metaweb Query API on the Strategic Developer weblog at Infoworld. I recommend that any developer interested in the Metaweb read his review. And if you're really interested, I have three invitations to give away for our alpha test.

At Metaweb, we're making our API as open as possible - here's the documentation. The API allows programmers and web developers to query Freebase via MQL (mickle) the Metaweb Query Language. MQL is not your standard SQL "select user_name from users where ..." syntax because our database allows for a great deal of expressiveness and connections between objects with varying schemas.

If you want to ask questions and learn more, our dev team posts on the Freebase Dev Blog. For executive-level discussions about Freebase and the philosophy behind it, see Robert Cook's blog, Freebasics.

In addition to the API and MQL, we've also open-sourced (BSD dual-clause license) a web toolkit called MJT (midget). MJT is influenced by Kid and Genshi, and allows developers to query and display information with the rendering done in-browser. It's a nice way to create data-driven applications without a separate app server. Javascript has come a long way.

Here's a MJT documentation excerpt.

* * *

MJT Templates

Mjt is an HTML templating engine that runs entirely in a web browser. It was built for the Freebase service, but it can be used for many other web services. It is distributed as open source.

Mjt makes it very simple to take data from a web service and format it in a browser, with no server support. The templates are hosted and delivered as static HTML, and they are compiled and applied entirely in Javascript.

Mjt is particularly useful with services that return JSON values and accept a callback= parameter, such as the Freebase service and the Yahoo JSON API. With these services you can use mjt to build "mash-ups" that incorporate data from services on multiple hosts.For a step-by-step introduction to the mjt template language as well as an example of mjt in action, see the intro tour.

No comments: