Re: @about/@instanceof discussion

Manu Sporny wrote:
> We currently have 16 test cases "On Hold". It shouldn't take much to
> resolve half of them to "Approved"... perhaps, I'm being a bit optimistic :)

I think it's not going to be all that easy... there is a fundamental
issue that Mark and I have been trying to hash out, but without much
success.

Mark: I'm still waiting for your approval of my wording of the issue :)
Let me know when you've had time to take a look at it.

Manu: the issue with the approach you're proposing is that it only looks
at the test cases, and not at the use cases.

Here's an important use case that I think would not be easily
expressible in RDFa if we go with the approach you're proposing:

<#me> foaf:knows [a foaf:Person ; foaf:name "Ralph"] .

which, in English, is "I know a person named Ralph."

If you have @instanceof always applying to the subject, then it's really
difficult to every use it to declare a type on the chaining node.

So, the question is, how would you do the above?

In my mind, @instanceof should apply first to the @resource on an
element, and only when there is no @resource, to @about. Because, in my
mental model, when you have @resource, you're effectively saying that
the current node is the chain, and thus corresponds to the value of
@resource.

Thus, the above use case gets written:

<div about="#me" rel="foaf:knows" instanceof="foaf:Person">
  <span property="foaf:name">Ralph</span>
</div>

And if you wanted to declare #me a foaf:Person, you would write it with
two elements:

<div about="#me" instanceof="foaf:Person">
  <div rel="foaf:knows">
     <span property="foaf:name">Ralph</span>
  </div>
</div>

which I think is still quite clear.

So, that's the issue, I think :)

-Ben

Received on Thursday, 1 November 2007 05:12:06 UTC