W3C home > Mailing lists > Public > www-rdf-interest@w3.org > May 2004

Re: Schema-aware RDF aggregation

From: Adam Souzis <adam-l@souzis.com>
Date: Mon, 17 May 2004 09:49:15 -0700
Message-ID: <40A8ED0B.3060001@souzis.com>
To: "Benjamin D. Smedberg" <bsmedberg@covad.net>
Cc: www-rdf-interest@w3.org

It depends on the application -- what's meaning and purpose of the 
aggregation? You could merge the graphs as described in the RDF spec and 
then apply standard RDF semantics to the result. In that case, Graph 
1-aggregated wouldn't have its membership properties renumbered and 
therefore be in some sense malformed, and Graph 2-aggregated would refer 
to two distinct containers, _:mylist1 and _:mylist2. But this approach 
almost certainly is not appropriate for your application.

I recently implemented a merge algorithm for merging back changes made 
to a model for my RDF wiki application (rx4rdf.sf.net). I handle 
containers and lists (rdf:List) by only considering the relative order 
of the items, ignoring the specific ordinal or bnode identifier (for 
lists). The result of this algorithm is that Graph1-B would replace 
Graph1-A and Graph-2 would have 2 separate containers. But obviously 
these semantics wouldn't be appropriate for yours either.

-- adam

Benjamin D. Smedberg wrote:

> I've been working on RDF aggregation in the context of the Mozilla 
> platform, and had some questions about whether RDF aggregation is 
> standardized in any way, or should be:
>
> My primary question arises in regards to the standard rdf:Seq 
> resources. If you are aggregating several RDF graphs, should you 
> reorder the child arcs? For example, aggregate the following graphs:
>
>
>     Graph 1-A
>
><http://foo.com/URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://www.foo.com/child1>
><http://foo.com/URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://www.foo.com/child2>
>  
>
>
>     Graph 1-B
>
><http://foo.com/URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://www.bar.com/child1>
><http://foo.com/URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://www.bar.com/child2>
>  
>
>
>     Graph 1-aggregated
>
> In my opinion, the logical/semantically-correct aggregation would be 
> like so:
>
><http://foo.com/URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://www.foo.com/child1>
><http://foo.com/URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://www.foo.com/child2>
><http://foo.com/URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3> <http://www.bar.com/child1>
><http://foo.com/URI> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_4> <http://www.bar.com/child2>
>
>  
>
> Now, I take on a more complicated semantic scenario. Imagine an RDF 
> vocabulary that defines mirrors for a busy website using the property 
> *http://namespace.foo/mirrors *This resource points to a rdf:Bag which 
> contains a list of mirrors for the specified website. Assuming that 
> the aggregator knows about this RDF namespace, can it reasonably 
> combine the mirrors triples (and the Bag resource)? May it do so only 
> if the Bag resource is anonymous? May it "silently" infer a 
> rdfs:sameAs relationship between the "two" bags involved?
>
>
>     Graph 2-A
>
><http://foo.com/> <http://namespace.foo/mirrors> _:mylist
>_:mylist <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq>
>_:mylist <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://www.bar.com/mirror/foo.com/>
>_:mylist <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://www.baz.com/mirror-foo/>
>  
>
>
>     Graph 2-B
>
><http://foo.com/> <http://namespace.foo/mirrors> _:mylist2
>_:mylist2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq>
>_:mylist2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://www.personal.us/foo>
>_:mylist2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://www.backup.de/foo>
>
>
>     Graph 2-aggregated
>
><http://foo.com/> <http://namespace.foo/mirrors> _:node
>_:node <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq>
>_:node <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <http://www.bar.com/mirror/foo.com/>
>_:node <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <http://www.baz.com/mirror-foo/>
>_:node <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3> <http://www.personal.us/foo>
>_:node <http://www.w3.org/1999/02/22-rdf-syntax-ns#_4> <http://lists.w3.org/Archives/Public/www-rdf-interest/>
>  
>
Received on Monday, 17 May 2004 12:49:21 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:07 GMT