If you haven’t seen the Yahoo Query Language you should definitely check it out. It has a handy console where you can test queries and for anyone who writes SQL on a regular basis it should be pretty straight forward to construct a query and see the results that you get. It will even generate the REST query for you to drop into your scripts, outputting a choice of XML or JSON. You can look through the many APIs that Yahoo offer including Flickr, Upcoming.
Any developer who uses APIs on a regular basis knows that understanding and interrogating APIs is made more difficult by that fact that no standards exist for methods and syntax within APIs. YQL pulls together APIs to allow you to interrogate a variety of APIs through a standardised language. Yahoo call this YQL but for all intents and purposes it is SQL. So to query Flickr for photos of London that are geotagged you could use.
select * from flickr.photos.search where has_geo="true" and text="london"
This generates the REST query
Adding Microformats adds a rich layer of semantic information to this supra-API. YQL supports joins so already we can create views of data from multiple sites using this service. Welcome to “View Source” your way for data.
When I started working on the web six years ago I thought of the web as a giant fileserver that was grossly underused in terms of access to data. In recent years I’ve realised that it is actually a giant network that can read, write and learn from other nodes. APIs have emerged as an initial way to share data between sites but for this to truly emerge, we need a standard means of sharing data and ultimately of granting permissions. The web community have worked through, and are still working through standards in client side technologies, but APIs are still at the beginning. YQL should be commended for using technologies that work very well on a local network to apply them to the internet in general. I for one can’t wait to get hacking with Microformats in the YQL. More reason that you should start using Microformats.
Have an update or suggestion for this article? You can edit it here and send me a pull request.