N3 bnode question

It seems that in N3, I have two choices for expressing a blank node:

     :mydoc1 dc:creator [ foaf:name "Toby Inkster" ] .

or

     :mydoc1 dc:creator _:a .
     _:a foaf:name "Toby Inkster" .

My problem is that although the first syntax is more readable (when  
dealing with a graph with dozens or more bnodes), it doesn't offer a  
way of referring to the same bnode multiple times. That is, if I have:

     :mydoc1 dc:creator [ foaf:name "Toby Inkster" ] .
     :mydoc2 dc:creator [ foaf:name "Toby Inkster" ] .

It cannot be legitimately concluded that mydoc1 and mydoc2 share an  
author. (Though I can't imagine there are too many other Toby  
Inksters in the world.)

So I've been trying to find some sort of compromise, such that the  
first bnode can be given an ID and the others made into references  
back to that ID. rdf:nodeID makes this very easy for RDF/XML, but  
unless I'm mistaken this solution cannot be leveraged in N3. So my  
proposed solution is:

     :mydoc1 dc:creator [ owl:sameAs _:a ;
             foaf:name "Toby Inkster"
             ] .
     :mydoc2 dc:creator _:a .

Or is rdf:nodeID allowed in N3? i.e.

     :mydoc1 dc:creator [ rdf:nodeID _:a ;
             foaf:name "Toby Inkster"
             ] .
     :mydoc2 dc:creator _:a .

Is rdf:nodeID allowed to be used like this? If not, is owl:sameAs a  
good solution to my quandary?

Thanks for reading, and thanks even more if you can answer my questions!

-- 
Toby A Inkster
<mailto:mail@tobyinkster.co.uk>
<http://tobyinkster.co.uk>

Received on Friday, 15 August 2008 10:10:02 UTC