W3C home > Mailing lists > Public > public-rdf-wg@w3.org > February 2013

Re: Using bnode identifiers for predicates, graph names

From: Manu Sporny <msporny@digitalbazaar.com>
Date: Sat, 02 Feb 2013 13:31:01 -0500
Message-ID: <510D5B65.4000604@digitalbazaar.com>
To: public-rdf-wg@w3.org
On 01/31/2013 06:41 AM, Sandro Hawke wrote:
> How is using bnodes to identify graphs any more absurd than using 
> them to identify people (the canonical example)?    Blank nodes make 
> prefect logical sense as local (file scope) identifiers.   They are 
> clearly useful.
> I'll agree with Andy's point, however, that this ship has already 
> sailed.   While blank nodes are fine in any position in generalized 
> rdf, they are not okay for predicates or graph names in standard 
> rdf.

Alright, so the direction from the group is clear.

That creates a problem with normalization of JSON-LD (and really, any
normalization of any RDF graph that doesn't specify an IRI as a name).

Assume that we have the following JSON-LD document, containing two
"anonymous" graphs:

    "@context": "http://example.org/mycontext.jsonld",
    "@graph": {
       "name": "Sandro"
    "@context": "http://example.org/mycontext.jsonld",
    "@graph": {
       "name": "Pat"

We need to digitally sign the document via the RDF Graph Normalization
algorithm and generate something like this to digitally sign:

_:bnode1 <http://schema.org/name> "Pat" _:graph1 .
_:bnode2 <http://schema.org/name> "Sandro" _:graph2 .

However, now we can't name it _:graph1, or anything else like that,
right? So we need to come up with another naming scheme that is
deterministic and it needs to match an IRI. It seems kind of strange to
introduce a mechanism for something that is already basically there.

Even stranger, the IRI that will be generated will inevitably conflict
with some other normalized graph IRI because it isn't scoped to the
document. These identifiers need to be scoped to the document if the RDF
graph normalization algorithm is going to work fairly cleanly.

Could we introduce the concept of a 'blank graph identifier'?

This is time critical for us. We are in the process of launching a
financial product that uses 'blank graph identifier's for graph IDs when
normalizing to perform a digital signature. This has the potential for
delaying that launch. We really need to iron out this issue pretty soon.

-- manu

Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
Founder/CEO - Digital Bazaar, Inc.
blog: Aaron Swartz, PaySwarm, and Academic Journals
Received on Saturday, 2 February 2013 18:31:32 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:04:25 UTC