Change on typeof? (Was Re: The processing rules for property/rel)

Gregg,

I just try to go down the line of concentrating on @typeof; maybe that reaches the same goal as what we wanted, but makes a change in RDFa that might be, possibly, cleaner. This is not fully worked out yet...

Let us consider changing the behaviour of @typeof such that:

1. if (@rel/@rev is present, but no @resource/@href/@src) or 
      (@property is present, @rel/@rev is not, and no @resource/@href/@src)
    then 
       - @typeof creates a blank node
       - that blank node is the current_object (ie, the one going down the chain)
       - is the subject of the type triples
2. if @resource/@href/@src is present _as well as_ @typeof, then no blank node is generated, and the subject of the type triples is the IRI resource of @resource/@href/@src

Both of these rules are different than what we have now; all other rules for @typeof remain unchanged. The advantage is that there is no difference between @rel/@rev on the one hand and @property on the other hand with respect to @typeof. Of course, what I called the 'minimalist' change for @property, as you described on the wiki, remains valid, too.

What we get is:

<div about="relV" rel="t:foo" typeof="t:Bar"><span property="t:yip">Yes</span></div>
=>
<relV> t:foo [ a t:Bar;
            t:yip "Yes" ] .
  
<div about="relP" property="t:foo" typeof="t:Bar"><span property="t:yip">Yes</span></div>
=>
<relP> t:foo [ a t:Bar;
            t:yip "Yes" ] .

Both by virtue of #1 above. The reason for the #2 rule above is that if I have

<div about="relV2" rel="t:foo" typeof="t:Bar" href="http://example.org">

Our current rules would assign a type to <relV2>, but this is really not consistent with the fact that, without @href, the typing goes to the 'right hand' of @rel, so to say. With that modification, what we get is:

<div about="relV2" rel="t:foo" typeof="t:Bar" href="http://example.org">
  <span property="t:yip">Yes</span>
</div>
=>
<relV2> t:foo <http://example.org> .
<http://example.org> a t:Bar;
    t:yip "Yes" .

<div about="relP2" property="t:foo" href="http://example2.org" typeof="t:Bar">
   <span property="t:yip">Yes</span>
</div>
=>
<relP2> t:foo <http://example2.org> .
<http://example2.org> a t:Bar;
    t:yip "Yes" .

Thoughts?

Ivan



----
Ivan Herman, W3C Semantic Web Activity Lead
Home: http://www.w3.org/People/Ivan/
mobile: +31-641044153
PGP Key: http://www.ivan-herman.net/pgpkey.html
FOAF: http://www.ivan-herman.net/foaf.rdf

Received on Tuesday, 1 November 2011 13:07:17 UTC