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

Re: RDF-ISSUE-140 (dataset-comparison): RDF Dataset Comparison (Ivan Herman) [RDF Concepts]

From: Pat Hayes <phayes@ihmc.us>
Date: Wed, 7 Aug 2013 21:46:51 -0700
Message-Id: <773DC8AA-BEFE-47E2-87E8-0A0F3F91442D@ihmc.us>
To: RDF Working Group <public-rdf-wg@w3.org>, "RDF Working Group Issue Tracker" <sysbot+tracker@w3.org>

On Aug 7, 2013, at 12:54 PM, RDF Working Group Issue Tracker wrote:

> RDF-ISSUE-140 (dataset-comparison): RDF Dataset Comparison (Ivan Herman) [RDF Concepts]
> 
> http://www.w3.org/2011/rdf-wg/track/issues/140
> 
> Raised by: Ivan Herman
> On product: RDF Concepts
> 
> I have a question/comment on this:
> 
> [[
> 4.1 RDF Dataset Comparison
> 
> Two RDF datasets (the RDF dataset D1 with default graph DG1 and named graph NG1 and the RDF dataset D2 with default graph DG2 and named graph NG2) are dataset-isomorphic if and only if:
> 
> 	 DG1 and DG2 are graph-isomorphic;
> 	 For each (n1,g1) in NG1, there exists (n2,g2) in NG2 such that n1=n2 and g1 and g2 are graph-isomorphic;
> 	 For each (n2,g2) in NG2, there exists (n1,g1) in NG1 such that n1=n2 and g1 and g2 are graph-isomorphic.
> 
> ]]
> 
> A graph name can now be a blank node. Wouldn't it be appropriate to use the 'M' mapping of section 3.6 for the graph names, too? Or are we deliberately silent on this?

We need to do *something*, as the above definition is now wrong. For example, it says that these are isomorphic:

{ {_:x rdf:type ex:graphsIlike .}
_:x {ex:a ex:b ex:c} }

{ {_:y rdf:type ex:graphsIlike .}
_:x {ex:a ex:b ex:c} }

which is incorrect. 

Yes, the best way to fix this would be to describe it in terms of the M mapping, IMO. Here is a stab:

Two RDF datasets D1 (with default graph DG1 and named graph set NG1) and D2 (with default graph DG2 and named graph set NG2) are dataset-isomorphic if and only if there is a bijection M between the nodes, triples and graphs in D1 and those in D2 such that:

1. M maps blank nodes to blank nodes
2. M is the identity map on literals and URIs
3. For every triple <s p o>, M(<s, p, o>)=<M(s), M(p), M(o)>
4. For every graph G= {t1, ...1n}, M(G)={M(t1), ..., M(Tn)}
5. DG2 = M(DG1)
6. <n, G> is in NG1 if and only if <M(n), M(G)> is in NG2.

I think this is correct and states the conditions about as neatly as possible. 

Pat


> 
> Ivan
> 
> [http://lists.w3.org/Archives/Public/public-rdf-wg/2013Aug/0008.html]
> 
> 
> 
> 

------------------------------------------------------------
IHMC                                     (850)434 8903 or (650)494 3973   
40 South Alcaniz St.           (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes
Received on Thursday, 8 August 2013 04:47:19 UTC

This archive was generated by hypermail 2.3.1 : Thursday, 8 August 2013 04:47:19 UTC