For the past week or so, I’ve been sneaking in some work on a proof-of-concept Drupal module — Extendr. The idea behind the module was to see how difficult it would be to use the Views module to query something other than a SQL database. In short it was easy…dangerously easy.
A “Google Summer of Code student”:http://drupal.org/user/205582 had begun exploring the concept of using the Views module to show results from “Apache Solr”:http://lucene.apache.org/solr/ and wrote a patch to Views that made this possible. What the patch does is allow developers to direct Views to use different code to build a query, so that instead of putting together SQL to query a database, like MySQL of PostgreSQL, you could query a web-service like “Flickr”:http://www.flickr.com/services/api/. This is exactly what Extendr does, take a look:
This kind of integration is very basic, though immediately useful, and it is just the start. It’s easy to imagine how this sort of functionality could be use to integrate with other social web services, like “Twitter”:http://apiwiki.twitter.com/REST+API+Documentation or “Upcoming”:http://upcoming.yahoo.com/services/api/, and perhaps with a bit more work it could be possible to write a module which adds “SPARQL”:http://www.w3.org/TR/rdf-sparql-query/ functionality to views. In addition to these sorts of remote integration, I imagine that allowing developers to provide Views with an alternative query type would make it possible to use Views to generate highly optimized, or specialized, queries.
I’ve made the code for the “Extendr module”:http://devseed.svn.cvsdude.com/sandbox/drupal-6/extendr/ available, but don’t expect to see it as a release on Drupal.org. It’s a proof-of-concept that relies on a “patch”:http://drupal.org/node/293841 to Views. Hopefully once that patch gets committed and the functionality makes it’s way to a stable release, this kind of functionality will make it into existing modules.