Re: what does @instanceof refer to

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. 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. Just as @rel without @resource or equivalent
has the effect of a bnode @resource... ]

Best regards,
Niklas


On 9/20/07, Ben Adida <ben@adida.net> wrote:
>
>
> 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 Thursday, 20 September 2007 13:42:54 UTC