W3C home > Mailing lists > Public > www-rdf-logic@w3.org > May 2001

RE: RDF Abstract Syntax: a strawman

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>
Message-ID: <000401c0e5f6$24ace500$0201a8c0@ne.mediaone.net>
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

This archive was generated by hypermail 2.3.1 : Wednesday, 2 March 2016 11:10:35 UTC