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:
<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#_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>
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?
<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/>
<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>
<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/>