W3C home > Mailing lists > Public > public-rdf-in-xhtml-tf@w3.org > October 2004

Various comments from implementation

From: Jeremy Carroll <jjc@hplb.hpl.hp.com>
Date: Thu, 28 Oct 2004 20:09:00 +0100
Message-ID: <418143CC.7020403@hplb.hpl.hp.com>
To: public-rdf-in-xhtml-tf <public-rdf-in-xhtml-tf@w3.org>


Hard to fully distinguish editorial from substantive, because it is 
occasional unclear what is correct behaviour, so the editors may respond 
to the comments by making it clear in a way that differs from my 
implementation.

1) link and meta special?

In para 3.1
http://www.formsplayer.com/notes/rdf-a.html#div265564904
[[
  However, RDF/A provides another mechanism, which is that if a link or 
meta element is used, and no [subject] is present, then the [triple] 
concerns the parent of the element.
]]

and

[[
  This syntax only applies to the elements link and meta,
]]

however section 4, para 4.2.4
http://www.formsplayer.com/notes/rdf-a.html#div359640288
does not restrict this feature to link and meta elements.

FWIW My implementation follows 4.2.4, but don't see that as an opinion.

2) [editorial] suggested reordering of material

As is clear in my discussion, a crucial insight into implementing is 
that some of the object rules apply to some of the predicate rules, and 
some don't.

I think this can be made clearer by restructuring sections 4 and 5 as 
follows:

4
4.1 Processing
4.2 Subjects
4.3 Resource Objects (was 4.4 without 4.4.1)
4.4 Literal Objects (4.4.1 and 5.1)
4.5 Predicates
4.5.1 Predicates for resource objects
4.5.2 Predicates for property objects


3) all-matches principle rather than procedural reading
In section 3 there is a clear declarative all and any matches intent:

See discussion concerning:
<link
  about="http://internet-apps.blogspot.com/"
     rel="dc:creator" rev="foaf:homepage" 
href="http://www.blogger.com/profile/1109404"
     property="dc:title" content="Internet Applications"
/>

However, the rules concerning the subject partially suggests a 
procedural processing of try one, if no luck, try the next etc.
The specific text is in para 4.2.3
[[
  If an [RDF/A element] does not contain an about attribute, but does 
contain an attribute of type xml:id  then this is used for the subject.
]]
I think this should be:
"does not contain an about or a nodeID attribute"
and that the previous subsection 4.2.2 on nodeID should clarify that it 
applies in addition to 4.2.1 on about so that

<link
  nodeID="foo"
  about="http://internet-apps.blogspot.com/"
     rel="dc:creator" rev="foaf:homepage" 
href="http://www.blogger.com/profile/1109404"
     property="dc:title" content="Internet Applications"
/>
would generate six triples (I think)

4) paras  4.3.4 versus para 4.4.3
Para 4.3.4 and para 4.4.3 overlap but with differnet processing:

http://www.formsplayer.com/notes/rdf-a.html#div358189224
http://www.formsplayer.com/notes/rdf-a.html#div392784408

  <p nodeID="foo" rel="eg:prop">
       <link nodeID="bar" href="http://example.org"/>
  </p>

By 4.4.3 we get
_:foo eg:prop _:bar .

By 4.3.4 we get
_:bar eg:prop <http://example.org> .

That doesn't seem right.
I suggest deleting 4.3.4 and 4.3.4.1 and replacing with simplified 
version of 4.3.4.2 using hasReferenceTo as default predicate if none 
specified.

This would give

_:foo eg:prop _:bar .
_:bar xhtml2:hasReferenceTo <http://example.org> .


5) para 4.4.3 and children with no explicit subject

I think para 4.4.3 should be clear that it applies to all child elements 
of an element with a @rel or @rev attribute with no @href.
If the child element has a @nodeID or @about attribute (or both) then 
they are used to give the *object* of the triple for the parent element.
If the child element has neither a @nodeID or @about attribute but an 
xml:id attribute then the xml:id attribute is used.
If the child has none of @about @nodeID or @xml:id then a gensym 
(corresponding to the child) is used (this behaviour is not in RDF/A at 
the moment, hmmm but I have implemented it).

It allows
   <link about="#foo" rel="eg:prop1">
      <p>
        <meta property="dc:creator" content="Jeremy Carroll"/>
      </p>
   </link>

to generate two triples
<#foo> eg:prop1 _:a .
_:a dc:creator "Jeremy Carroll" .

Jeremy
Received on Thursday, 28 October 2004 19:09:13 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:14:59 GMT