In the first three parts of this series, we've looked at what RDF will do for you as both a consumer and a provider of RDF data and we've had a quick primer on what exactly implementing RDF entails. Turning our attention back to Drupal, this article will take a look at the state of RDF in Drupal 6 and some of the available contribued modules. Tomorrow's article will take a look at what the next version of Drupal will offer in terms of RDF.
Drupal 6 does not have any RDF functionality in core. If you want to implement anything having to do with RDF in Drupal 6, you'll need to utilize contributed modules. Only a few of the RDF-related contribued modules for Drupal have even had official releases - the majority of them are still somewhere in the development process.
While reviewing the existing RDF modules for Drupal 6, I found that I could categorize them into two categories - "Provider Modules" and "Consumer Modules". Those in the former category are designed primarily to help you RDF-ize your site's content. Modules in the "Consumer" category are generally designed to help you consume, use, and display RDF data from various sources. In some cases, there is some overlap, so this categorization is more for convenience than anything else.
Provider Modules
- RDF
- The RDF module is the mothership of RDF modules for Drupal 6, providing a "uniform API and storage abstraction layer" (http://groups.drupal.org/node/8930) for RDF data. One of the cool things you can do with this module on its own is to RDF-ize your RSS feeds. Arto Bendiken, the author of the RDF module, provides step-by-step instructions for doing just this in his blog.
- RDF External Vocabulary Mapper (EVOC)
- This module provides a way to import external RDF ontologies into Drupal for use by other modules (RDF CCK, for one). For example, if you want to markup your event content using the RDF Calendar ontology, you can import it using this module, then it will be available to the RDF CCK module. Out of the box, this module provides support for the Dublin Core, Friend-of-a-Friend, and SIOC ontologies.
- RDF CCK
- This module allows you to provide your content in RDF format. It provides a "node/<nid>/rdf" page for desired content types; it does not provide RDFa output without a patch to CCK. This module is dependent on the following modules: CCK, RDF, RDF External Vocabulary Mapper, and SPARQL. If you're looking to output RDF or RDFa for your site's custom content types, this module is your best shot.
- SIOC
- The Semantically-Interconnected Online Communities (SIOC) ontology is often used to RDF-ize user forums, providing the ability to markup posts and comments by category, author, and other attributes. The SIOC module provides links to export RDF data for much of Drupal's default content, including nodes, users and comments. The module does not depend on the RDF (or any other) module and doesn't allow site admins to map RDF concepts to their site's content. On the upside, it is extremely easy to set up (there's virtually none) and provide RDF export data for a site's content using the SIOC, Dublin Core, and Friend-of-a-Friend ontologies. This module is kind of a lone wolf, not relying on any other RDF-related module.
- Calias
- This fantastic and mature module integrates with Thomson Reuters' amazing Calias web service to provide your content with more RDF data than most sites know what to do with. The RDF data is mainly provided in the form of Drupal vocabulary terms allowing you to leverage Views and other standard Drupal modules. Check out webchick's awesome writeup to learn more about how it works.
- Calais Marmoset
- Injects semantic data into your site's content when search robots access the site.
- Topic Hubs
- Works with the Calais module to provide site administrators and easy way to offer topic hubs for a site's tags. Integrates with Calais Geo (included in the Calais module) to display topic hub content on a map.
- Open Dover
- Similar to OpenCalias in that it is a web service that will provide semantic data for your content, but different in that its main goal is to "provide sentiment to your content" (http://www.opendover.nl/). For example, it makes an attempt to rate content as "positive" or "negative" based on advanced linguistic techniques.
- Feed API RDF Processor
- Works with the Feed API module to save feed data in RDF format.
- Views Datasource
- Provides a number of Views style plugins for displaying data in RDF (and other) formats.
Consumer Modules
- SPARQL
- Dries Buytaert demoed an early version of the SPARQL module back in 2008 at DrupalCon Boston. More than any other RDF module, it really shows how RDF has the potential to change the way the web works. The SPARQL module allows you to query local and remote RDF data using a language similar to SQL. It takes some prerequisite RDF knowledge to get results from this module, unfortunately, there's not a whole lot of Drupal-sepcific information out there for beginners. Wikipedia's SPARQL page is a good place to get started.
- Exhibit
- This module utilizes the Exhibit Publishing Framework to give you the ability to display data with advanced filter and search capabilities using RDF. A nice example of the framework's functionality can be found in this "Recent United States Senate Bills" page. The Potluck module enhances Exhibit-powered pages by providing a tool to re-mix the data. If anyone knows of a public-facing Drupal site utilizing the Exhibit module, please post it in the comments below.
Obviously, there's a lot going on with RDF in the Drupal community. The Semantic Web group is a great place to find out the latest going-ons. If you know of any additional examples in use of any of the modules listed above, please list them in the comments!
Thanks to Benjamin Melançon of the Agaric Design Collective for his assistance with this article. Benjamin is an active member of the Drupal community and attended the "RDF in Core" sprint in May, 2009.
This is part 4 in a 5 part series about RDF and Drupal.
Comments
Thanks for writing these
Thanks for writing these series of article! very informative. Just to clarify, the path
node//rdf
is not implemented by the RDF CCK module itself but by the main RDF module. RDF CCK plugs in this path to add its own RDF data via the hooks implemented by the RDF module.scor, Ah - thanks. That's a
scor,
Ah - thanks. That's a subtle, but important point. My mistake.
-mike
Pingback
[...] RDF in Drupal: What can I do now? Drupal 6 and the Semantic Web [...]
Pingback
[...] original here: RDF in Drupal: What can I do today? Drupal 6 and the Semantic Web … Share and [...]