- From: Jonathan Borden <jborden@mediaone.net>
- Date: Sat, 26 May 2001 11:11:30 -0400
- To: <connolly@w3.org>
- Cc: "Drew McDermott" <drew.mcdermott@yale.edu>, <www-rdf-logic@w3.org>
Dan Connolly wrote: > > > Jonathan Borden wrote: > > > > > RDF. (http://www.openhealth.org/RDF/RDFAbstractSyntax.html#RDF-MS) > > I applied the idea of abstract syntax to RDF > and found that it matched quite straightforwardly; > triples stayed triples: > > http://www.w3.org/XML/9711theory/RDFAbSyn.lsl > $Id: RDFAbSyn.lsl,v 1.5 2001/03/30 18:42:44 connolly Exp $ No doubt. I also have absolutely no doubt that anything I can represent in 7-tuples you can represent in triples, and any of this can be represented in XML. The decision regarding which abstract syntax we select might be directed toward simplicity of representation, i.e. least number of "slots" on the other hand, I could represent any of this using strings of "0"s and "1"s, but we've moved way beyond that. Alternatively the decision regarding abstract syntax might be directed at _efficiency_ of representation and implementation, and this is specifically what I have proposed may have a benefit (really after looking at lots of _other_ proposals suggesting similar features) Lets look at the implications of triple representation: First, in order to represent the simple expression: (not (color sky blue)) we need to agree that the presence of a triple in the model _cannot_ be equated with _assertion_ of the triple, otherwise expressions such as this cannot be represented. Rather we can create a container which contains _every_ asserted triple. [rdf:type #ASSERTED rdf:Bag] [rdf:_1 #ASSERTED #S1] [:not #S1 ""] [rdf:type #S1 rdf:Statement] [rdf:predicate #S1 :not] [rdf:subject #S1 #S2] [rdf:object #S1 ""] [rdf:type #S2 rdf:Statement] [rdf:predicate #S2 :color] [rdf:subject #S2 :sky] [rdf:object #S2 :blue] so, the expression that is represented by the 7-tuple construct in 2 statements requires _11_ as triples. Every asserted triples requires _6_ triples for representation. 1 for the triple, 1 for the container arc and 4 for the reification quad. not very efficient. if you add contexts, and similarly implement contexts as containers then add yet another triple for each triple, now _7_ triples for each asserted base triple. this gets back to relational database design. sometimes a tad of denormalization is recommended for performance. e.g.: <:not, /2,,,,1,true> <:color, :sky, :blue,,,2,false> and still the model fits into a single table. my impression is that this would be more efficient, especially for agents like Palm's etc. The key is to pick the sweet spot on the continuum between triples and full blown XML. -Jonathan -- off to the garden shop
Received on Saturday, 26 May 2001 11:12:38 UTC