Licensing information in Drupal feeds

After releasing the Drupal GeoRSS module the other day, I sent a message to the GeoRSS mailing list. It created some positive responses and an interesting question back from Andrew Turner of the High Earth Orbit blog, who is interested in giving people the ability to create their own personal geospatial aggregators. He's done some work in this area already, in the form of Mapufacture, a geospatial aggregator that allows people to specify regions they would like to receive feeds for.

When you start to look at aggregating and redistributing information you should really be clear about the licensing of the information that is being brokered. How is it licensed, what are the restrictions, etc? Hence Andrew's question to me was whether Drupal has any way of specifying applicable licenses for its outgoing feeds. I hadn't heard of anything in the community, but whilst researching the area today I came across some Creative Commons syndication examples and also spoke to Boris Mann of Bryght - one of the biggest Drupal shops - about whether this had been implemented in Drupal already.

It turns out it has: the Creative Commons module allows Creative Commons license information to be added per feed or overridden on a per node basis. I need to do some more research into whether there are more general extensions that support other types of licenses than just Creative Commons, but it's a great start.

The next step would be to ensure license information is extracted from feeds being pulled into Drupal by the likes of aggregator2 module and its successor(s). It's becoming clearer from looking more and more into the flow of data into and out of Drupal that there are lots of use cases for ensuring standards compliant information can be pulled from feeds and applied to nodes in Drupal and then also included in outgoing feeds.

Off the top of my head, we have the basic information itself - title, body, author, date, etc - and also additional information such as location, event data, license and enclosures of different types, as well as numerous others presumably. Each module should listen for new nodes being created by an aggregator module (using Drupal's extensive hook system) and handle any elements from the incoming feed as required - so the GeoRSS module would handle geodata, the event module would handle calendar dates, times, venues, etc, the Creative Commons module would deal with licensing information, and so on.