Check out DrupalEasy around the web:
DrupalEasy is the collective expertise of Ryan Price and Michael Anello, who joined forces to provide training and consulting services worldwide. Read all about them and what they can do.
Drupal is a free, super-powerful content management system for sites that require information posting and collection, including blogs, forums, videos, photos, and databases of information. We think it is the best platform available. Here's why...
More and more savvy organizations are going with Drupal for content management, and its no mystery why. It’s free, flexible, and easy to maintain for small or large volume sites. Learn more...
The deadline for winning one of four Drupal-related books that we're giving away will be here before you know it.
If you'd like to win a free copy of Matt Butcher's Drupal 6 JavaScript and jQuery from Packt Publishing, all you have to do is either leave a comment with your best jQuery/JavaScript tip and/or why you'd like to win the book. You can also enter by calling our voicemail at 321-441-3964.
We're also giving away a couple of copies of the Emma Jane Hobgin and Konstantin Kaefer Front End Drupal book. Again, you can enter by leaving a comment with your best theming tip and/or why you'd like to win the book or by leaving us a voicemail at: 321-441-3964.
Good luck!
We're back together for another news-based DrupalEasy podcast covering some of the latest Drupal-related (and sometimes not-so-related) happenings in the Drupal community. Join Andrew Riley, Ryan Price, and myself (Mike Anello) as we discuss Opera Unite, the next version of Drupal and CCK, an upcoming Drupal-powered intranet package. As always, we also make our Picks of the Week and Site of the Week.
Notes from the podcast:
5 Stories
Picks of the Week - every podcast we each pick a module, theme, or other Drupal-related "thing" that we'd like to spread the word about.
Site of the Week - every podcast we collectively pick a (usually new) Drupal site to be highlighted and discussed. This week's pick is Zappo's "about" site - http://about.zappos.com/. You can check out the case study on Drupal.org.
If you'd like your site highlighted, please submit it here: http://DrupalEasy.com/siteoftheweek
Follow us on twitter:
If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or medicinal advice for Andrew. If you'd rather just send us an email, please use our contact page at http://DrupalEasy.com/contact
P.S. Sorry for the cell phone interference
Matt Butcher, author of Drupal 6 JavaScript and jQuery from Packt Publishing talks with Mike about the book and numerous topics regarding Drupal, JavaScript, and jQuery.
Matt is a senior programmer with Palantir and often writes about Drupal and other open source technologies on his blog, http://technosophos.com (listen to the podcast to learn what "technosophos" means). This is Matt's second Drupal book - he also wrote Learning Drupal 6 Module Developement in 2008.
The interview covers Drupal behaviors and its JavaScript templating system as well as some of the other ways Drupal developers can leverage JavaScript.
Packt has provided DrupalEasy with a couple of copies of the book to give away to listeners - listen to the interview to learn how you can get your hands on a free copy!
We've seen in the previous four articles that RDF has the potential to be a game-changer when it comes to linked data on the web. The fact that is it an open standard, easy to understand, and implementable on sites from those powered by the most complex web applications to simple hand-built web pages makes it easy to understand why so many people are starting to look at RDF as one of the future cornerstones of the web.
Luckily for the Drupal community, our fearless leader Dries Buytaert recognized this in 2008 and suggested that Drupal take the lead in implementing RDF among open source content management systems.
Since then, a number of individuals have stepped up and committed to working to get RDF functionality in Drupal 7. The Semantic Web group on Drupal.org is the focal point of the work that is going on in this effort. Earlier this year, they posted a video about what will be possible when RDF functionality is available. They showcased advanced search results and the ability to navigate the relationships that RDF triples provide with HTML documents.
As part of the effort to get RDF in Drupal core, a week-long code sprint was held in Ireland with the aim to organize and to start implementing the various RDF plans and patches for Drupal 7. The result of the sprint was a "lightweight basic design for integrating RDF". Specifically, it was decided to implement RDF classes and properties for nodes, users, comments, and taxonomy terms. These RDF "mappings" could then be defined and altered programatically similar to the way forms and links are handled today. In a nutshell, it is an RDF API.
The code sprint participants split into two groups - one focused on figuring out the best ontology mappings for standard Drupal content. They worked on questions like, "What's the best way to mark up an article with comments with RDF? What ontologies should we use? What's the best way to mark up taxonomy terms?. Fortunately, they had some help in the form of Mark Birbeck, who is one of the designers of RDFa. The second group tasked themselves with figuring out how to build the RDF API.
Once the RDF API gets committed to core, this will allow helper functions to be written to push the RDF data to the theme layer in order to output RDFa (RDF data will only be output as RDFa in core - it will be up to contributed modules to output the RDF data in other formats). Then, individual core modules (node, user, blog, etc...) can be updated to output default RDFa attributes.
One of the key aspects of using RDF with Drupal is having the ability to define Compact URIs (CURIES) which allow you to use shorthand when writing RDFa attributes. In order to implement CURIES, an "RDF Namespace Registry" is needed to manage the various CURIES (to avoid duplicates). Much of this work has already been completed and committed to Drupal 7 core.
So, how does the work done so far compare with Dries' original vision of adding RDF support into Drupal? It's actually pretty close. A site deployed on the Drupal 7 platform will, (probably) by default, start exposing RDF data immediately. With well-over 100,000 downloads per month, that's a lot of new RDF data getting exposed every day. In this sense, Drupal will be way out in front of the curve compared to virtually every other content management system - open-source or not.
While the majority of the RDF effort for both Drupal 6 and Drupal 7 has been focused on the provider side of things, as RDF data becomes more prevalent, there will no doubt be a push to start consuming all of the newly-found data relationships.
Wrap Up
At the outset of the first article in this series, I indicated that I was motivated to write these articles in an effort to figure out if I could find a compelling reason to convince my clients that they should implement RDF on their Drupal sites. What did I learn?
For Drupal 6 sites, unless the client specifically requests RDF functionality, I would probably only recommend using Calais (or one of its companion modules) unless there is a clear indication that a more robust solution would be beneficial to them. With most of the Drupal 6 RDF modules still in the development phase, there is still a risk that a custom implementation will be a rocky (and costly) road for all but the simplest of cases.
Moving into the future, for Drupal 7 sites the question is moot. RDF will be there regardless. There will definitely be an opportunity to offer clients the ability to RDF-ize their custom content types using the next version of RDF CCK, but the decision to do so won't be nearly as difficult (or costly) as it is today.
RDF is coming. As a developer, I look at it this way: I will be able to offer RDF functionality to my clients at a fraction of the cost that my non-Drupal-developer competitors will be able to. Organizations that want an RDF solution will see that it will be baked right in to Drupal 7 - this will be a big advantage to us all. We're ahead of the curve.
Additional Resources
Interested in learning more? Here's some of the articles and videos I found useful while writing these articles:
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 5 in a 5 part series about RDF and Drupal.
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
Consumer Modules
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.
If you've read the first couple of installments of this series, you should have a pretty good idea of what the "semantic web" is by now. By providing precise meaning to a site's content, applications can take advantage of these machine-readable hints to link data together across sites in a myraid of ways.
Before you jump in the deep end of the semantic web pool, there's a few more things you should have a clear understanding of. As I previously defined, RDF stands for Resource Description Framework. This is a family of standards for describing content on the web. The vast majority of current and future Drupal implementations of RDF are actually RDFa (Resource Description Framework in Attributes), a set of extensions to XHTML. RDF is normally implemented using XML; while this is possible with Drupal, RDFa allows Drupal to implement RDF as part of the standard content displays.
For example, RDF describing a person's nickname and one of their interests looks like this (using the Friend-of-a-Friend [FOAF] ontology):
<foaf:person rdf:about="#me" >
<foaf:name>Michael Anello</foaf:name>
<foaf:nick>Mike</foaf:nick>
<foaf:interest rdf:resource="http://yankees.com/" rdfs:label="New York Yankees"/>
</foaf:person>While the analogous RDFa would look like this:
<div typeof="foaf:Person" about="#me" >
<p>My full name is <span property="foaf:name">Michael Anello</span>, but most people just call me <span property="foaf:nick">Mike</span>. My favorite baseball team is the <a href="http://yankees.com/" rel="foaf:interest">New York Yankees</a>.</p>
</div>The second example clearly shows how RDFa is just a simple extension of XHTML. Now think about what happens when thousands of people are described with this same interest - suddenly all these people are linked in a way that can be utilized by semantic web applications.
Ontologies
In order for RDF to be effective, there has to be a standard way to define the various relationships between data. RDF itself does not provide this mechanism - it leaves it up to others to define and make public various ontologies. In laymen's terms, an "ontology" is a defined way to categorize things. For those familiar with Drupal, it is safe to think of ontologies the same way you think about taxonomy vocabularies. Each ontology is just a defined set of categories.
This will no doubt be a source of confusion in the future for Drupal users. Ontologies are also commonly known as RDF "vocabularies". Unfortunately, when the word "vocabulary" is used in a Drupal-related conversation, most people immediately think about the taxonomy module, not RDF. I'll use the word "ontology" when talking about RDF vocabularies from here on out.
For example, the FOAF ontology allows you to specify attributes about people. Some of FOAFs attributes include:
There are a myraid of public ontologies available for anyone to utilize. Specific industries and organizations will no doubt decide on a common ontoloty for their specific disciplines. Likewise, the Drupal community will decide which ontologies to support in Drupal 7 core. FOAF, Dublin Core, and Semantically-Interlinked Online Communities (SIOC) seem like obvious choices.
SchemaWeb is a handy database of various RDF ontologies to describe all kinds of things including Airports, Beer, Gadgets, and even Kissing!
RDF Triples
Up to now, I've talked about what exactly RDF is and how ontologies are just one piece of the puzzle. It is time to start putting all the pieces together.
All RDF relationships are comprised of three pieces of data, often called the "subject", "predicate", and "object" (shout out to all you English majors out there). Combined, these three pieces of data are called an "RDF triple". Regardless of how complex or arcane the data is, for it to be described with RDF, its relationships must be broken down into any number of RDF triples.
Using the FOAF example from above:
| subject | predicate | object |
|---|---|---|
| me | has name | Michael Anello |
| me | has nickname | Mike |
| me | has interest | http://yankees.com |
To keep things as simple as possible, I've left out some of the details about this FOAF example. Mark Birbeck explains it all much better in his blog.
Here's some other examples from other ontologies:
Once you start thinking about describing your data in these easy-to-understand triples, implementing RDFa becomes much easier. In the next section, we'll look at some of the available modules to help you start implementing RDF in your Drupal 6 site.
This is part 3 in a 5 part series about RDF and Drupal.
Even if you're not ready to implement RDF into your Drupal site, there's still a number of reasons why you should be excited about the Semantic Web. The fact that data will be linked from web site to web site (regardless of the underlying technology running the site) will lead to powerful Semantic Web applications - most of which haven't even been imagined yet.
First and foremost, search will be revolutionized. Imagine being able to search for a specific person - not just the person's name. This is a subtle but important distinction. Currently, when you type "Dave Matthews" into your favorite search engine, the results you see are based on the words "Dave" and "Matthews". You'll see results about Dave Matthews, about people with the name "Dave" and/or "Matthews", about the orgin of the words "Dave" and "Matthews", etc... The search engine doesn't know that you're looking for a specific person with the name "Dave Matthews". With the Semantic Web, you'll be able to specify, "find me the person with the name 'Dave Matthews'". You'll even be able to perform "deeper" searches by specifying things like "find me all events having to do with Drupal taking place between now and July".
Other than search, the Semantic Web will also provide you with the ability to do stuff with this data. For example, let's say you perform the Drupal events search from the previous paragraph and you're looking at the results. Because the data returned will have meta-data attached to it, future software tools will allow you to click on a returned event, and see if you're available on that date and time. If so, another click will seamlessly add it to your calendar. If you're familiar with Mac OS X, it's like data detectors on steriods. Really good steriods.
Another future use for the Semantic Web that will no doubt be huge is that it has the potential to turn the entire web into a social network - owned and operated by all of us. The Friend of a Friend project (FOAF) is an RDF vocabulary that describes people and relationships between them. By implementing FOAF on existing web site, you can indicate relationships between your users. These relationships can then be combined with other relationships on other sites to produce a social network.
While most of the whiz-bang capabilities described here have not yet come to pass just yet - they all have one thing in common - they require that web sites start implementing RDF now. Lots of large sites have done so, and more are being added every day. One of the more well-known sites that has begun implementing RDF is Digg.com. They are using the Dublin Core vocabulary for content attribution (additional details).
The Data Portability Project is an industry initiative "To help people to use and protect the data they create on networked services, and to advocate for compliance with the values of DataPortability." If you have any doubt about the future of the Semantic Web, some of their members include Facebook, Google, Microsoft, and LinkedIn.
This is part 2 in a 5 part series about RDF and Drupal.
Emma Jane Hogbin and Konstantin Kaefer recently finished the book titled Front End Drupal. Emma reveals a little about the book, shares stories about knitting, conferences, and the open source scene.
The publisher of Front End Drupal will be giving away a copy of the book to two DrupalEasy Podcast listeners. We will be accepting entries via voicemail. Please reply by July 1st to be considered.
Shameless links:
If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or medicinal advice for Andrew. If you'd rather just send us an email, please use our contact page at http://DrupalEasy.com/contact
RDF. Semantic Web. Giant Global Graph. Food for Robots. By now you've probably heard all of these phrases, but relatively few of us have actually done anything with them. For example, I try to follow all the RDF modules on Drupal.org, read all the blog posts regarding Drupal and RDF but I've yet to implement anything having to do with RDF on any of the sites I develop or maintain. Why is this? Am I behind the curve?
The answer is two-fold. First, I have yet to have any clients specifically ask for RDF functionality in their web sites. Secondly, I hadn't been convinced that recommending that my clients spend the time and money to implement an RDF solution is a sensible move for them. The reason I decided to research and write this series of articles is to figure out if and why I should recommend implementing RDF functionality to my clients.
Prior to performing the research for this series, my knowledge of RDF was limited to water-cooler-conversation type knowledge. Big on bulletpoints, small on details. I was aware that RDF will, in the future, be used by search engines to provide better search results. I was also aware that by "tagging" web site content with RDF would enable a "richer" experience. The one example I would relay to people was a vCard-powered business card embedded on a web page using microformats that allowed the user's computer to do something with the contact information. Amusingly, it turned out that my one RDF example didn't even involve RDF, and that the vCard format was actually called hCard when used as a microformat. I had a lot to learn.
Definition
Just so we're all on the same page, RDF stands for "Resource Description Framework". The current HTML-based structure of the web it great for us humans, but it is difficult for computers to make sense of all the data. RDF is a framework to describe information on the web that makes it easy for software programs to process.
Industry Support and Momentum
As Drupal project lead Dries Buytaert pointed out in a blog post, Google has announced Rich Snippets - its first (of many, I'm sure) way of utilizing RDF and other semantic markup formats in its search results. Cutting to the chase, implementing RDF now can lead to better search rankings for your site.
With Google's big announcement and Yahoo already on-board (Microsoft isn't sitting still either), now is a good time to get down to brass tacks and start talking about implementing RDF your Drupal sites.
Benefits to Site Administrators and Owners
As I mentioned, implementing RDF today has the potential of immediately leading to better search rankings - contingent on how quickly Google and other search providers fully roll out their RDF capabilities. If you've been paying any attention at all to RDF and the Semantic Web, then you'll know that better search rankings are only the tip of the iceberg.
By adding RDF data to your site you are, in effect, giving absolute meaning and context to your content. This means that you can allow present and future Semantic Web applications to absolutely know that the text "Ice Cube" on your site refers to the rap artist and not an actual ice cube. Then, when other sites markup their Ice Cube text in the same way your site does, your data is in effect, linked using RDF. Applications can then utliize these links to create mashups and add additional value to your data. Extrapolate this out past just people's names but also events, relationships, and topics and you'll realize how powerful RDF can be. This is the Giant Global Graph that Tim Berners-Lee first envisioned (yeah, his blog runs on Drupal).
While there will definitely be people and organizations that argue that they don't want their data "linked" with anything for proprietary reasons, most RDF proponents argue that linking your data with other people's data makes it more valuble. It stands to reason that RDF will follow Metcalfe's Law - the value of the RDF "network" is proportional to the square of the number of connected datapoints. The more data that is connected using RDF, the more valuble your data becomes. A great example of Metcalfe's Law is the fax machine (thanks Ryan). If you're the only one with a fax machine, it kind of sucks. Once all your friends get fax machines, it's kind of awesome. Imagine the same senario but with RDF.
Another immediate benefit, should you choose to pursue it, is the ability to use a technology like SPARQL to start linking your site's data to other RDF-ized data and presenting it back to your users in a format they can use (check out the Drupal SPARQL module). This is precisely what Dries showed during his keynote at DrupalCon Boston in 2008.
Implementing RDF now will put you ahead of the Semantic Web curve. Tom Scott summed things up nicely on his blog in his Semantic web - why bother? post:
As a publisher of linked data not only are you enabling others to build cool things with your data – helping you right now – you are also helping to insulate yourself against atrophy. If your data is as open and accessible as possible – then it is relatively straight forward for your future colleagues, working on a as yet unimagined product, to use the data you are publishing right now.
This article is the first in a five-part series about RDF on DrupalEasy.com. Over the next 4 days, I'll be delving deeper into RDF and Drupal:
The fine folks at Icebar Orlando (dot com) invited us to do our podcast from their "Fire Lounge" - who are we to turn down an invite from Orlando's coolest bar (bad pun, I can't help myself)? We had a great discussion about the number of content types on Drupal sites, our (equal) love for designers, and a bunch of other Drupal news from the last 2 weeks.
5 Stories
Picks of the Week - every podcast we each pick a module, theme, or other Drupal-related "thing" that we'd like to spread the word about.
Site of the Week - every podcast we collectively pick a (usually new) Drupal site to be highlighted and discussed. This week we picked two quick ones:
If you'd like your site highlighted, please submit it here: http://DrupalEasy.com/siteoftheweek
Follow us on twitter:
If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or medicinal advice for Andrew. If you'd rather just send us an email, please use our contact page at http://DrupalEasy.com/contact