Re: what does @instanceof refer to

Niklas,

I will reply to Ben as well, but I'd like to reply to you first
because you put the issue in such a compact way! The problem is that
what started out meaning one thing (@class, then @role, then
@instanceof) has been co-opted to behave in a different way, due to
the re-introduction of chaining.

The argument is therefore *not* what is the 'correct' interpretation
of @instanceof, but rather should the re-introduction of chaining back
into RDFa affect the behaviour of rdf:type? In other words, we're
looking for a change here.

Regards,

Mark

On 20/09/2007, Niklas Lindström <lindstream@gmail.com> wrote:
>
> Hi Ben!
>
> +1. I fully agree with your reasoning.
>
> You've actually formulated my exact opinion. I began scribbling a
> draft about this a couple of days ago, but time eluded me. You made
> the point much more clearly though. I think the key is that the
> presence of @rel is so significant.
>
> [ A note though: while we view @instanceof as sugar for a child
> element, it may also generate a bnode by itself, so it isn't exactly
> equivalent.

It is!

The way that <link> and <meta> on a child element were defined was
that they created a bnode if no @about was present. Historically, this
originated from the idea that this:

  <div>
    <link rel="my:property" href="http://resource.com" />
    ...
  </div>

was equivalent to this:

  <div my:property="http://resource.com">
    ...
  </div>

In other words, the <link> and <meta> values 'attached' themselves to
the item identified by the parent element, and *not* to the current
in-scope resource (for example, that last @about) up the tree).

By extension, therefore these are equivalent:

  <div>
    <link rel="rdf:type" href="http://resource.com" />
    ...
  </div>

  <div rdf:type="http://resource.com">
    ...
  </div>

and of course, all that is being proposed with @instanceof is that this:

  <div rdf:type="http://resource.com">
    ...
  </div>

can be abbreviated to this:

  <div instanceof="http://resource.com">
    ...
  </div>

A while ago we were forced to drop this 'link and meta anywhere'
feature because different browsers did different things with the
mark-up--most notably, Firefox moved the elements from the body to the
head, so the parser would have no context information.

But I don't think that means that we should abandon all of the
'logical' work that went into arriving at this syntax; I think it's a
key part of the general 'approach', and there is no reason that it
cannot be incorporated into future versions of XHTML+RDFa.



> The further effect of it (in my interpretation) is that
> when both @about and @rel are absent, *the effect of* an @about with a
> bnode is also implied.

As described above, that has always been there.


> Just as @rel without @resource or equivalent
> has the effect of a bnode @resource... ]

@rel is unique in this respect though. I personally don't like it,
since it creates an intermediate object between the current element
and all child elements, and in that it is a little odd. (I.e., there
is no correspondence with the DOM.) But since other people seem to
think this is useful I've kept quiet about it, although I've not found
a situation where it is so useful that it warrants making the mark-up
less clear.

But although I can live with @rel doing these things--creating these
ghostly child bnodes--I'm having trouble going along with the same
thing for @instanceof.

Regards,

Mark

-- 
  Mark Birbeck, formsPlayer

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

  standards. innovation.

Received on Thursday, 20 September 2007 14:07:18 UTC