Re: better support for bnodes

A followup on Mark's proposed solution to make it easier to have bnodes.
Short version: I really like it.

Let's see if I can summarize the proposal: if @rel is present on an
element without @href, then the element itself becomes the object of the
triple. Thus, if the element has an @id, then the object is this named
ID, but, if it doesn't, a bnode id gets generated and that's the object.

I don't mind the wrinkle Mark brought up about possibly orphaned bnodes
if an @href is later added.

I now wonder if this can be extended to @rev. In other words, if @rev is
present without an @href, then the *subject* of the triple is the
current element, and the object is resolved using the normal upwards
traversal to find an about. Are there wrinkles here that I'm not seeing?

Next, let's look at RDF containers. What if we wanted to have a list of
authors for a page? I like the following syntax:

<ul rel="dc:creator">
<li>Mark Birbeck</li>
<li>Ivan Herman</li>
</ul>

and this would exactly parse as expected using Mark's proposal and the
existing RDFa Containers proposal [1]:

_:ul0 rdf:type rdf:Bag .
_:ul_0 rdf:_1 "Mark Birbeck" .
_:ul_0 rdf:_2 "Ivan Herman" .

"" dc:creator _:ul0 .

This is looking promising!

Now, let's take a look at the entire Turtle example provided by Ivan and
try to write it up using Mark's proposal:

===================

<div about="[:DJDKWBDADIH05]" class="bibtex:Article">
<span property="bibtex:title">Do you see what I mean?</span>

<ol rel="bibtex:author">
  <li><span property="foaf:name">David J Duke</span></li>
  <li><span property="foaf:name">Ken W Brodlie</span></li>
  <li><span property="foaf:name">David J Duce</span></li>
  <li><span property="foaf:name">Ivan Herman</span></li>
</ol>

<p rel="bibtex:journal">
  <span property="bibtex:name">IEEE Computer Graphics &amp;
Application</span>
</p>

<span property="bibtex:volume">25</span>
<span property="bibtex:number">3</span>

<p rel="bibtex:date">
  <span property="bibtex:month" content="3">March</span>
  <span property="bibtex:year">2005</span>
</p>

<p rel="bibtex:page">
  <span property="bibtex:startPage">6</span>
  --
  <span property="bibtex:endPage">9</span>
</p>

</div>

====================


I'd say that's starting to look quite nice!


-Ben


[1] http://www.w3.org/2001/sw/BestPractices/HTML/2006-rdfa-containers

Received on Sunday, 8 October 2006 21:20:21 UTC