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

Re: Behavior of @property with @typeof and incomplete triples

From: Ivan Herman <ivan@w3.org>
Date: Sat, 12 Nov 2011 09:28:41 +0100
Cc: RDFa WG <public-rdfa-wg@w3.org>
Message-Id: <0F420212-2C88-4C1A-A6E3-A0101911077B@w3.org>
To: Gregg Kellogg <gregg@kellogg-assoc.com>
Gregg,

I have not looked at the details of the processing steps, just at my implementation. I am looking at what I would expect here to happen...

First, let us look at an RDF 1.0 case, and using @rel instead of @property; also, put @typeof aside, using a @resource instead:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" version="XHTML+RDFa 1.0">
 <head>
   <title>Test 0058</title>
 </head>
 <body>
   <div about="http://www.example.org/#ben" rel="foaf:knows">
     <p rel="foaf:homepage" resource="http://www.ex.org/">Mark Birbeck</p>
     <p rel="foaf:homepage" resource="http://www.ex1.org/">Ivan Herman</p>
   </div>
 </body>
</html>

What we get in 1.0:

@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ns1: <http://www.example.org/#> .

ns1:ben foaf:knows [ foaf:homepage <http://www.ex.org/>,
                <http://www.ex1.org/> ] .

(This is how RDFa 1.0 solves the case of 'double' chaining in some way. I checked your distiller, it produces the same thing!)

If I switch to 1.1, the difference is minimal (removing xmlns) :

<html xmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa 1.1">
 <head>
   <title>Test 0058</title>
 </head>
 <body>
   <div about="http://www.example.org/#ben" rel="foaf:knows">
     <p rel="foaf:homepage" resource="http://www.ex.org/">Mark Birbeck</p>
     <p rel="foaf:homepage" resource="http://www.ex1.org/">Ivan Herman</p>
   </div>
 </body>
</html>

The generated RDF is the same. Now I exchange to property:

<html xmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa 1.1">
 <head>
   <title>Test 0058</title>
 </head>
 <body>
   <div about="http://www.example.org/#ben" rel="foaf:knows">
     <p property="foaf:homepage" resource="http://www.ex.org/">Mark Birbeck</p>
     <p property="foaf:homepage" resource="http://www.ex1.org/">Ivan Herman</p>
   </div>
 </body>
</html>

And the generated RDF is still the same! Great, this is what we wanted...

Now I can add @typeof. The philosophy is that, in presence of @property, the @typeof is bound to the resource. So if I take:

<html xmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa 1.1">
 <head>
   <title>Test 0058</title>
 </head>
 <body>
   <div about="http://www.example.org/#ben" rel="foaf:knows">
     <p property="foaf:homepage" resource="http://www.ex.org/" typeof="schema:Thing">Mark Birbeck</p>
     <p property="foaf:homepage" resource="http://www.ex1.org/"  typeof="schema:Thing">Ivan Herman</p>
   </div>
 </body>
</html>

I get: 

@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ns1: <http://www.example.org/#> .
@prefix schema: <http://schema.org/> .

ns1:ben foaf:knows [ foaf:homepage <http://www.ex.org/>,
                <http://www.ex1.org/> ] .

<http://www.ex.org/> a schema:Thing .

<http://www.ex1.org/> a schema:Thing .

and, I believe, this is what one would expect! Finally, I remove the @resource; again, the philosophy is that @typeof would create a bnode; in effect, a @typeof alone is a shorthand for a @resource="_:a":

<html xmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa 1.1">
 <head>
   <title>Test 0058</title>
 </head>
 <body>
   <div about="http://www.example.org/#ben" rel="foaf:knows">
     <p property="foaf:homepage" typeof="schema:Thing">Mark Birbeck</p>
     <p property="foaf:homepage" typeof="schema:Thing">Ivan Herman</p>
   </div>
 </body>
</html>

And I get:

@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ns1: <http://www.example.org/#> .
@prefix schema: <http://schema.org/> .

ns1:ben foaf:knows [ foaf:homepage [ a schema:Thing ],
                [ a schema:Thing ] ] .

Which still looks o.k. to me!

The bottom line is that in the new setup the original test would create a backward compatibility issue. Yes, that is a pain. But I am not sure that we have to go out of our way to handle that case when, I believe, the current rule is consistent.

Your turn to convince me:-)

What actually makes me think: I think somebody (you? Toby?) should probably create a separate W3C Note on the backward compatiblity/incompatibility issues. 

Ivan




On Nov 11, 2011, at 21:24 , Gregg Kellogg wrote:

> No surprisingly, there's a bit more to this.
> 
> In Step 5, the first option should be:
> 
> [[[
> 1. If the current element contains the @property attribute, but does not contains neither the @content nor @datatype attributes and the  incomplete triples within the current context is empty, then ...
> ]]]
> 
> Additionally in Step 11, the case where a resource attribute is present also needs to ensure that there are no incomplete triples.
> 
> Gregg
> 
> On Nov 11, 2011, at 11:58 AM, Gregg Kellogg wrote:
> 
>> As I mentioned before, the new @property/@typeof rules break some tests, including 0058. This one is interesting, because it involves the use of both hanging @rels, @typeof and @property.
>> 
>> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" version="XHTML+RDFa 1.1">
>> <head>
>>   <title>Test 0058</title>
>> </head>
>> <body>
>>   <div about="http://www.example.org/#ben" rel="foaf:knows">
>>     <p typeof="foaf:Person" property="foaf:name">Mark Birbeck</p>
>>     <p typeof="foaf:Person" property="foaf:name">Ivan Herman</p>
>>   </div>
>> </body>
>> </html>
>> 
>> The new rules say that because both <p> elements have a @typeof and @property, it results in chaining to a new BNode. This is in Step 5 (part 1). In Step 11, the "otherwise, if @typeof is present ..." causes "typed resource" to be used as the @property value. But, the existence of incomplete triples is intended to pick up these new objects. I think we need to revise this step:
>> 
>> [[[
>> 11.
>> ...
>> otherwise, if @typeof is present and @about is not and the  incomplete triples within the current context is empty, the value of typed resource.
>> ]]]
>> 
>> This also applies to test 0078, 0081, and 0082.
>> 
>> Gregg
>> 
>> 
> 
> 


----
Ivan Herman, W3C Semantic Web Activity Lead
Home: http://www.w3.org/People/Ivan/
mobile: +31-641044153
FOAF: http://www.ivan-herman.net/foaf.rdf
Received on Saturday, 12 November 2011 08:26:09 GMT

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