- From: Manos M. Batsis <manosb@profile.gr>
- Date: Tue, 28 Nov 2000 13:26:21 +0200
- To: "Gabe Beged-Dov" <begeddov@jfinity.com>
- Cc: <www-rdf-interest@w3.org>
Hey Gabe, I think what Jonas means is, why use the bag as the shell since it doesn't provide any structure for it's insides? Nice question if you need more direct access to the inside data. But if you don't, then the bag will do fine. Kindest regards, Manos Batsis Interactive Media Director BeCom : A Profile Company http://www.becom.gr http://www.profile.gr e-mail: manosb@profile.gr Tel: +301 3270500,+301 3270565 Fax: +3013221268 -----Original Message----- From: www-rdf-interest-request@w3.org [mailto:www-rdf-interest-request@w3.org]On Behalf Of Gabe Beged-Dov Sent: Tuesday, November 28, 2000 7:28 AM To: www-rdf-interest@w3.org Cc: www-rdf-interest@w3.org; Wraf development Subject: Re: tracing statement origin (was Re: I have a trouble with The RDF Model) Jonas Liljegren wrote: > But we can't use the outmost Description bag as the model. What do you mean by the outmost Description bag? My understanding is that reification of rdf:Descriptions will occur to all syntactic instances irrespective of whether they are top-level in the syntax or nested. Below is an explicitly labelled example and the resulting statements that are obtained by applying the StatementBag and Statement reification algorithm. I've included a typedNode shorthand on the first top-level resource for variety. ============================================== http://somedoc.rdf: <typedNode rdf:ID="res1" rdf:bagID="stat_bag1"> <prop1 rdf:ID="stat1"> <rdf:Description rdf:ID="res2" rdf:bagID="stat_bag2"> <prop2 rdf:ID="stat2">a value</prop2> </rdf:Description> </prop1> </typedNode> <rdf:Description rdf:ID="res3"> <prop2 rdf:ID="stat3">another value</prop3> </rdf:Description> ============================================== Ground statements: [http://somedoc.rdf#res1, prop1, http://somedoc.rdf#res2] [http://somedoc.rdf#res1, rdf:type, typedNodeURI] [http://somedoc.rdf#res2, prop2, "a value"] [http://somedoc.rdf#res3, prop2, "another value"] Reified Statement resources: [http://somedoc.rdf#stat1, rdf:type, rdf:Statement] [http://somedoc.rdf#stat1, rdf:subject, http://somedoc.rdf#res1] [http://somedoc.rdf#stat1, rdf:predicate, prop1] [http://somedoc.rdf#stat1, rdf:object, http://somedoc.rdf#res2] I couldn't explicitly label the next statement with a statement ID since it occurred indirectly in the source document. The processor has generated an ID for it, in this case "genid1". [http://somedoc.rdf#genid1, rdf:type, rdf:Statement] [http://somedoc.rdf#genid1, rdf:subject, http://somedoc.rdf#res1] [http://somedoc.rdf#genid1, rdf:predicate, rdf:type] [http://somedoc.rdf#genid1, rdf:object, uriForTypeNode] [ reification for stat2 ] [ reification for stat3 ] Bags representing the Descriptions in the source: [http://somedoc.rdf#stat_bag1, rdf:type, rdf:Bag] [http://somedoc.rdf#stat_bag1, rdf:_1, http://somedoc.rdf#genid1] [http://somedoc.rdf#stat_bag1, rdf:_2, http://somedoc.rdf#stat1 ] [http://somedoc.rdf#stat_bag2, rdf:type, rdf:Bag] [http://somedoc.rdf#stat_bag2, rdf:_1, http://somedoc.rdf#stat2 ] [http://somedoc.rdf#stat_bag3, rdf:type, rdf:Bag] [http://somedoc.rdf#stat_bag3, rdf:_1, http://somedoc.rdf#stat3 ] ======================================================= > The uri of > the model will be the uri of the document. It will have metadata > stating things about it's encoding, namespaces used, time of > retrieval, authority, and more. I've been thinking about this a little. I'm wondering whether we might want another level of indirection between the base URI of the document and the resource from which we hang both metadata (like that which you've described) and the document contents themselves. This indirection allows multiple versions of the document to exist and indicate that we have a representation of the source document that is based on a particular access pattern (kind of like the info that an HTTP proxy maintains). Below is an attempt to capture this in rdf syntax for the example above. The statementBags property would chain the statement Bags to the Model instance. The Bags in turn chain the reified statement resources. We then have a complete tracing from a particular access to a source document down to the statements that occurred in that document. If we didn't have this complete tracing then we wouldn't be able to trace statements and statement bags contained in a document varying over time since the statements and statement bags have the document URI as thier identifer and different versions can't be distinguished without the chaining from the unique resource that represents the particular access to the document. <ModelAccess> <uri rdf:resource="http://somedoc.rdf"> <last_mod>timestamp</last_mode> <last_access>timestamp</last_access> <cache_until>timestamp</cache_until> <authority>...</authority> ... <statementBags> <rdf:Bag> <rdf:li rdf:resource="http://somedoc.rdf#stat_bag1"/> <rdf:li rdf:resource="http://somedoc.rdf#stat_bag2"/> <rdf:li rdf:resource="http://somedoc.rdf#stat_bag3"/> </rdf:Bag> </statementBags> <ModelAccess> ModelAccess is outside of anything that the M&S has touched on but I think it is very important for getting the next level of context needed for manipulating RDF on the web where context is everything. We seem to be converging on an interpretation of the spec that provides for statement and description tracing. This is the next level that threads the statements and descriptions to a specific document access. Gabe -- --------------------------- http://www.jfinity.com/gabe
Received on Tuesday, 28 November 2000 06:26:19 UTC