Re: Using bnode identifiers for predicates, graph names

On 02/05/2013 04:32 PM, Gavin Carothers wrote:
> On Tue, Feb 5, 2013 at 11:48 AM, Manu Sporny <msporny@digitalbazaar.com
> <mailto:msporny@digitalbazaar.com>> wrote:
> 
>     Just because a serialized array of bytes are the same DOES NOT mean that
>     they describe the same graph.
> 
> The only issue raised with the hash of byte stream to name graphs in
> your case is that it will always name "anonymous" graphs that are
> semantically equivalent the same. 

Yes, and that's completely wrong. See this:

http://lists.w3.org/Archives/Public/public-rdf-wg/2013Feb/0017.html

You are assuming that just because the contents of a graph are the same
(semantic equivalence) that they are the same graph (address equivalence).

> That's not a bug, they are the same graph. 

That's not a safe assumption to make at all. Two things with no IDs can
be compared for semantic equality (value equivalence), but that's it.
You can't give them the same ID because they may not be the same graph
(address equivalence)

> If there is a meaningful semantic difference between two graphs
> then that should be recorded somewhere.

By giving them an IRI? Why are you forcing the developer to create an
IRI to label each of those two graphs when they've never had to do that
in JSON-LD? It's a flaw in the RDF data model that doesn't allow you to
do that, not the JSON-LD data model.

> Your example:
> 
> [
>   {
>     "@context": "http://example.org/mycontext.jsonld",
>     "@graph": {
>        "name": "Gavin"
>     }
>   },
>   {
>     "@context": "http://example.org/mycontext.jsonld",
>     "@graph": {
>        "name": "Gavin"
>     }
>   }
> ]
> 
> has only one graph in it. 

No, it expresses two graphs, each of them containing the same data.

> In fact it only has one triple being asserted.

It has two graphs being asserted.

> There is a thing, and it's name is Gavin. I don't see any other
> reasonable semantic interpretation of the above. Stating it twice
> doesn't mean anything.

There exist two graphs. Each of those graphs contain a thing and its
name is Gavin.

You don't know if both of those things are the same Gavin, and you
shouldn't assume that from the limited data available to you.

-- manu

-- 
Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
Founder/CEO - Digital Bazaar, Inc.
blog: Aaron Swartz, PaySwarm, and Academic Journals
http://manu.sporny.org/2013/payswarm-journals/

Received on Wednesday, 6 February 2013 02:00:52 UTC