W3C home > Mailing lists > Public > public-rdf-in-xhtml-tf@w3.org > July 2007

Re: [RDFa] ISSUE-42: the @src attribute

From: Mark Birbeck <mark.birbeck@x-port.net>
Date: Wed, 18 Jul 2007 13:03:51 +0100
Message-ID: <640dd5060707180503i6d2ad3c2s148553d90a024d0e@mail.gmail.com>
To: "Ivan Herman" <ivan@w3.org>
Cc: "Ben Adida" <ben@adida.net>, public-rdf-in-xhtml-tf@w3.org

Hi Ivan,

> Indeed, how do I then set the rdf:type for the _subject_?

Yes...I apologise for jumping the gun and making it sound easier than
it is. I realised the same thing as you a few hours after I sent my
post. In my case I was looking at a use-case that I'm really keen on,
which goes like this:

A normal link in your blog might look like this:

  I found a good recipe in
  <a href="http://www.amazon.com/gp/product/0091808189">
    Canteen Cuisine
  </a>.

This is fine as a link to a book, but from the point of view of
improving the web :) it's not great. Ideally we want to just put an
'identifier' in there for the book, and then let people do whatever
they want to with it--buy it from a bookshop, add it to their
wish-list, search for other books by the same author, and so on.

This was quite straightforward with our old syntax, and a few months
ago I blogged about how great it was that we could use this syntax:

  <span xmlns:bib="http://somebig.org/" about="urn:ISBN:0091808189"
class="bib:book">
    Canteen Cuisine
  </span>

Which gives me this triple:

  <urn:ISBN:0091808189> rdf:type <http://somebig.org/book> .

Now, as you rightly say Ivan, the problem is that we've recently
started to define our rdf:type shorthand as being applied to the
_object_ of a statement. And what's more, we've even started to say
that if there is no object one should be created. In other words, if
we have this:

  <span instanceof="bib:book">
    Canteen Cuisine
  </span>

we get:

  _:span0 rdf:type <http://somebig.org/book> .

And again, as you point out, even if we add an @about:

  <span about="urn:ISBN:0091808189" instanceof="bib:book">
    Canteen Cuisine
  </span>

we don't get the triples I had earlier, unless we were to add some
convoluted rules to say when @instanceof applies to the bnode and when
to the @about.

However, if we go back for a moment the original mark-up, i.e., the
normal way to do a link:

  <a href="http://www.amazon.com/gp/product/0091808189">
    Canteen Cuisine
  </a>

We see it's usual to have a resource with no @rel value--i.e. nothing
going 'upwards' to connect this to the containing document. Also, if
we look at the triples I want:

  <urn:ISBN:0091808189> rdf:type <http://somebig.org/book> .

you can see that they have no relationship to the containing document;
I'm saying saying that 'x' is a book, which then allows the software
to do all sorts of clever things with the identifier.

Given these two things, why don't we just make this the best practice:

  <span resource="urn:ISBN:0091808189" instanceof="bib:book">
    Canteen Cuisine
  </span>

It follows the same pattern as @href, I think.

Now, you could say that this will cause confusion over when to use
@resource and when to use @about, but if (and it's a big 'if'...but
not an impossible 'if') we go with the idea that Ben is suggesting, of
resurrecting the idea that the object (if it's a resource) sets the
subject for the context, then we would have a situation where the
following would be perfectly legitimate:

  <span resource="urn:ISBN:0091808189" instanceof="bib:book">
    Canteen Cuisine was written by
    <span property="dc:creator">Marco Pierre White</span>
  </span>

In other words, in a world where 'the object sets the subject',
@resource would be more commonly used than @about, and I think
probably the only reason you'd need to use @about would be if you
wanted to put a subject and resource object on the same element.

Of course, it depends on how we go with resurrecting the 'chaining'
approach from the original drafts, but if we do go that way, it saves
having to have two attributes.

One last thing that people might like to ponder; we discussed on last
week's telecon how we'd all like to see browsers that are able to make
use of metadata to create 'smart links' to other resources. (The
discussion was in the context of whether we needed @resource, or if
@href was sufficient.) It strikes me that changing the above mark-up
one more step, so that the <span> is replaced with <a>:

  <a resource="urn:ISBN:0091808189" instanceof="bib:book">
    Canteen Cuisine
  </a>

might be one way to do it.

In this mark-up, the author is effectively saying that they want some
kind of interactive location to be created (denoted by the <a> tag).
But what 'interactivity' is placed there will depend on an array of
factors, such as the browser's capabilities, the user's preferences,
and so on. We might end up with a personalised menu of links and
actions such as 'add this book to my wish-list', but the main thing is
that the author is indicating that the information the browser should
use to create this 'menu of links' is the identifier
'urn:ISBN:0091808189'.

This would mean that there is also a difference between this:

  <a href="http://www.amazon.com/gp/product/0091808189">
    Canteen Cuisine
  </a>

which creates a direct link to a web-page, and this:

  <a resource="http://www.amazon.com/gp/product/0091808189">
    Canteen Cuisine
  </a>

which creates a cluster of actions and links that are relevant to that web-page.

That's in the 'interesting...but for the future' category, but I
mention it because it makes me feel that we're heading in the right
direction with some of the newer things we've decided.

Regards,

Mark

-- 
  Mark Birbeck, formsPlayer

  mark.birbeck@x-port.net | +44 (0) 20 7689 9232
  http://www.formsPlayer.com | http://internet-apps.blogspot.com

  standards. innovation.
Received on Wednesday, 18 July 2007 12:04:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:15:08 GMT