Re: following up on ISSUE-110, @src

Hi Laurens,

> Well, as I argued, I still don't consider it that much more useful to
> justify the confusion that them being treated differently causes...

If @src is an *object* you can do this:

  <img about="#laurens" rel="foaf:img" src="laurens.png" />

That's fine, but now let's try to add some licensing information about
the image.

We can't without repeating the URI, since <img> cannot contain any
child elements:

  <img about="#laurens" rel="foaf:img" src="laurens.png" />
  <span about="laurens.png" rel="license" resource="attribution" />

Now, if @src is a subject, the first mark-up becomes this:

  <span about="#laurens" rel="foaf:img">
    <img src="laurens.png" />
  </span>

It's slightly longer than before, but not by much. However, it opens
up the possibility of hanging stuff on the image, without having to
repeat the URI:

  <span about="#laurens" rel="foaf:img">
    <img src="laurens.png" rel="license" resource="attribution" />
  </span>

Another way to look at this is that since <img> cannot have any child
elements, it becomes a kind of 'terminal' in the processing. This
means that if we make @src the object, then the image itself becomes
the final node in a graph. By making it a subject, then we get the
possibility of adding one more statement. (Of course we can add more
'longhand', but not via chaining.)

In the case of standalone images, where we merely want to put the
license onto an image (perhaps in a page of Flickr search results),
then there is not so much to choose between the subject version and
the object version, although I would say that asking authors to use
@rev is a little quirky:

    <img src="laurens.png" rev="license" about="attribution" />

But where the two solutions diverge is if we want to do something with
these images that we've added licenses to...we can't. If we drop one
of these into some other mark-up, the only thing we can do is state a
relationship with the license itself, which is generally going to be
pretty useless:

  <span about="#laurens" rel="...some relationship with license...">
    <img src="laurens.png" rev="license" about="attribution" />
  </span>

So, not only would we be asking authors to use @rev in a quirky
way--if @src were an object--but we'd also be asking them to add extra
mark-up, if they wanted to establish a relationship between that image
and something else:

  <span about="#laurens" rel="foaf:img" resource="laurens.png">
    <img src="laurens.png" rev="license" about="attribution" />
  </span>

One last thing, doing it the way we have done (@src as a subject),
enables the easy creation of collections of items that all have the
same predicate:

  <span about="#laurens" rel="foaf:img">
    <img src="laurens.png" rel="license" resource="attribution" />
    <img src="laurens-in-holiday.png" rel="license" resource="norestriction" />
    <img src="laurens-at-work.png" rel="license" resource="norestriction" />
  </span>

and so on. I'd imagine that this becomes very useful in the Flickr
photo layout scenario.

I realise that you have accepted the decision, but I did want to
stress that the decision was not made on the flip of the coin, and we
did think through the alternatives carefully.

Regards,

Mark

-- 
Mark Birbeck, webBackplane

mark.birbeck@webBackplane.com

http://webBackplane.com/mark-birbeck

webBackplane is a trading name of Backplane Ltd. (company number
05972288, registered office: 2nd Floor, 69/85 Tabernacle Street,
London, EC2A 4RR)

Received on Wednesday, 21 May 2008 16:11:06 UTC