W3C home > Mailing lists > Public > public-rdfa-wg@w3.org > November 2011

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

From: Gregg Kellogg <gregg@kellogg-assoc.com>
Date: Tue, 1 Nov 2011 14:35:50 -0400
To: Ivan Herman <ivan@w3.org>
CC: Gregg Kellogg <gregg@kellogg-assoc.com>, W3C RDFWA WG <public-rdfa-wg@w3.org>, Péter Mika <pmika@yahoo-inc.com>
Message-ID: <3B4E9DB7-334F-428C-B2CF-0BE33576646A@kellogg-assoc.com>
On Nov 1, 2011, at 6:06 AM, Ivan Herman wrote:

> 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.

I think we break a lot if <div about="foo" typeof="Bar"/> does not assign the type to <foo>. However, saying <div typeof="Bar"/> or <div typeof="Bar" resource="baz"/> assigning the type to the object would be interesting.

> 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" ] .

With my interpretation, presuming that @rel/@rev change to reference _new object_ and not _new subject_, and this would create the following:

<> t:foo <relV> .
<relV> a t:Bar;  t:yip "Yes"  .

If @rel retained it's current interpretation, there would be no resource for @rel to operate on, and it would do the following: 

<relV> 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" ] .

This should be consistent with the first interpretation above:

<> t:foo <relV> .
<relV> 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?

I would favor @typeof binding to either @about or @resource/@href/..., but not both. On it's own, having @typeof describe the type of the newly created object makes most sense to me, if we decide that some change is necessary.

Similarly, binding @rel and @property to the object, rather than the subject, produces what I believe to be the most sensible results, but does create a compatibility issue for @rel, which is why I only suggested it for @property.

My proposal had @property bind to _parent subject_ instead of _new subject_, but if we make these changes, I would support binding it to _new object_, so that the recommended pattern would be:

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

which would create

<> t:foo [ a t:Bar; t:yip "Yes" ] .

@href without an @typeof would not create a new object.

Gregg

> 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 18:37:35 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 04:55:18 GMT