what does @instanceof refer to

Hi all,

So we haven't yet resolved the issue of what @instanceof refers to when
there is both @about and @resource/@href on an element. We should take
it to a vote, but before we do, I was asked to clarify my point that
@resource overriding @about is actually based on logic, not just preference.

Mark's point is that @instanceof applies to "the node that corresponds
to the element" on which @instance of is written. I actually agree with
that. At the same time, we agree that

  <div resource="#ben" instanceof="foaf:Person>
  </div>

yields

  <#ben> rdf:type foaf:Person .

So, in this case, as per Mark's point, the node that corresponds to the
div is <#ben>, the value of @resource. It seems clear that @resource is
thus a valid candidate for the subject of @instanceof. Otherwise, we're
making a weird exception to Mark's rule about "the node that corresponds
to the element" for the above triple.

Now, here's how one can logically think of @resource overriding @about.
Consider the following markup:

  <div about="photo.jpg" rel="foaf:depicts" resource="#ben">
      <span property="foaf:name">Ben Adida</span>
  </div>

The triples are:

  <photo.jpg> foaf:depicts <#ben> .
  <#ben> foaf:name "Ben Adida" .

Now if we take @resource away:

  <div about="photo.jpg" rel="foaf:depicts">
      <span property="foaf:name">Ben Adida</span>
  </div>

the chaining node becomes a blank node:

  <photo.jpg> foaf:depicts _:bnode0 .
  _:bnode0 foaf:name "Ben Adida" .

And if we take @rel away, chaining collapses, and foaf:name's subject
now goes "further up" the tree and finds the @about:

  <photo.jpg> foaf:name "Ben Adida" .

Logically speaking, for contained elements, @rel creates a bnode that
overrides @about, and @resource overrides that bnode and, thus,
transitively, @about.

Now, we already established that @resource *is* a valid subject for
@instanceof when no other attributes are present. And we even mentioned
that @instanceof is actually syntactic sugar for a child element. This
must mean that @instanceof should be considered "deeper down the tree"
than @resource.

How, then, can we logically justify that @about overtakes @resource in
the case of @instanceof, when precisely the opposite happens for child
elements?

In my mind, adding @rel and @resource squeezes the new chaining subject
between @about and child elements, and @instanceof is, in fact,
equivalent to a child element.

There may well be a different reasoning that justifies the other point
of view, but the above is meant to show that there is very much a
logical approach to assuming that @resource overrides @about as the
subject of @instanceof, not the other way around.

Now we can take an informed vote :)

-Ben

Received on Wednesday, 19 September 2007 23:06:50 UTC