Re: RDFa in Drupal core

David Peterson wrote:
> One BOF in particular was really flowing and it went quickly from
> microformats to RDFa and what can be done whithin Drupal [2] core to
> enable RDFa. I had a continuing chat with Dries Buytaert (creator of
> Drupal and CTO of Acquia [3]) where he expressed his continued interest
> in making Drupal a linked data client.

This is great news, David. We'd love to see Drupal adopt RDFa as their
method of semantics expression. This would require a couple of things
from Drupal core that I'm unsure of:

1. Does Drupal produce clean XHTML? If not, it should do so before you
   start adding RDFa.
2. You will have to change the DOCTYPE and HTML version for any page
   that produces XHTML+RDFa. Would this be an issue?
3. You may want to focus on not cleaning @about, @rel/@rev, @property,
   @resource, @datatype, @property, @xmlns:XXX and @href (as well as the
   other RDFa elements) from raw XHTML+RDFa markup. This would be a good
   "first round" implementation of RDFa support.

> I think FOAF for each user is obvious, SIOC to describe the site and its
> structure... then what? I am aware of Manu's great posts lately relating
> to DIGG. I hate to ask this question (please no stones!) but why SIOC? I
> keep wondering, what is the business case for its use here and how can
> we sell it as "useful" to the Web 2.0 crowd? Don't get me wrong, I think
> SIOC is great, but I am having a tough time selling the concept as an
> enabler...

That is a fair question - why SIOC and not FOAF for Digg? Is SIOC useful
for Drupal's use case? The answer is that it really depends on what your
website does - is Drupal going to be used for something that resembles
Digg, or is it going to be used for something else (like a music or
video blog)?

If you would like to describe People, Projects, Accounts and Groups -
then FOAF is probably better for your needs. If you need to describe
Communities, Forums, Users, Threads, Posts and their
inter-relationships, then SIOC is probably more for you. The beauty of
it all, however, is that you can mix and match between the two
vocabularies if you need to be more specific. For example, you can use
SIOC for Communities, Forums, Threads, and Posts, but FOAF to describe
the people and groups on the site.

The "business case" for RDFa has its basis in practicality - does
vocabulary XYZ more accurately describe what you mean on a page? If so,
you should use it - be as precise as possible - because when the search
engines start really relying on this information, the more accurate that
you are, the higher the hit-rate will be on your website.

If you look at the Drupal Modules, we can guess which vocabulary may be
used for a certain class of modules:

http://drupal.org/project/Modules

For example, the "Community" Modules for Drupal should probably use SIOC
pretty heavily. "User Management" might use FOAF and vCard. Drupal Core
should probably support at least Dublin Core Terms (dcterms).

So, for Drupal Core - I'd focus on getting basic support for RDFa in
there and getting DCTerms integrated first - then worry about SIOC and FOAF.

> Let me know your thoughts and use-cases. I want to have the most
> compelling arguments ready.

I think a general strategy may be more useful because we could spend
weeks listing the use cases for RDFa in each Drupal Module. As a general
strategy, you might try this:

1. Get Drupal Core emitting clean XHTML+RDFa.
2. Drupal Core support for embedding raw RDFa+XHTML.
3. Mark up sioc:Post, sioc:User (or foaf:Person), and some DCTerms
   properties such as creator, date, description, modified, etc.
4. Have module authors decide which vocabularies are best suited for
   their modules.

Do you think this strategy is work-able?

-- manu

-- 
Manu Sporny
President/CEO - Digital Bazaar, Inc.
blog: Bitmunk 3.0 Website Launches
http://blog.digitalbazaar.com/2008/07/03/bitmunk-3-website-launches

Received on Tuesday, 30 September 2008 19:34:15 UTC