Re: RM and abstract syntax trees
Date: Mon, 12 Nov 2007 20:10:59 -0000
On Nov 12, 11:51 am, Ed Prochak <edproc..._at_gmail.com> wrote:
> On Nov 9, 10:14 pm, Marshall <marshall.spi..._at_gmail.com> wrote:
> > On Nov 9, 4:34 pm, David BL <davi..._at_iinet.net.au> wrote:
> > > On Nov 10, 5:29 am, Marshall <marshall.spi..._at_gmail.com> wrote:
> > > > The issue is that pointers need referencing and dereferencing
> > > > operators which are not part of the relational algebra. Pointers
> > > > have an associated address space. Pointers are volatile and
> > > > anchored to a specific run of a specific program on a specific
> > > > machine, whereas relational ids are durable. Pointers are
> > > > physical and ids are logical.
> > > You appear to draw conclusions from your assumption that the RDB is
> > > durable whereas the machine process is not. What happens if you
> > > delete the RDB? To what extent is a bank account identifier
> > > meaningful without the associated DB?
> > > What about pointers between objects in a POS (Persistent Object
> > > Store)? Are you saying they aren't really pointers because the
> > > address space is durable?
> > > I would rather say that the pointer concept is orthogonal to volatile
> > > versus durable concerns.
> > You misunderstand me.
> > I'll take you up on the object graph example. Suppose you
> > have an object graph on one machine, with edges encoded
> > as pointers. Suppose you serialize that object graph, send it
> > to another machine and deserialize it there. The pointer values
> > will all necessarily be different.
> > Suppose you take the same graph as a pair of relations for
> > nodes and edges, with node ids. Now consider the
> > serialize/deserialize scenario again. The key values
> > are all the same.
> > The point is, pointer values are transient, ephemeral,
> > temporary, living only as long as the *process* they
> > are embedded in. Whereas the key values in the
> > relations are a first class part of the data, and so
> > live as long as the data does.
> > The point is not the lifespan of the data; the point
> > is the lifespan of the pointer values relative to the
> > lifespan of the data. With keys, it's the same; with
> > pointers, it's not.
> > And this was only one of a number of differences
> > I cited. The two aren't the same.
> > Marshall
> I see your point about persistence. I still contend there are more
> similarities than differences.
Sure. I have never said otherwise. I have said that similarities exist, and that differences exist; I haven't characterized their relative numbers.
> I already gave an example of a dereference operation. Syntactically is
> is just a SQL SELECT statement, but semantically I claim it opereates
> just like a wordy dereference. The point is not whether Relational
> algebra has an explicit dereference operator. The point is can
> something be set up to operate like a pointer.
If one is trying to establish that differences exist, then the fact that the relational algebra doesn't have an explicit dereference operator is relevant.
If one is trying to establish that similarities exist, then the fact that something can be set up to operate like a pointer is relevant.
A number of posts have apparently been imputing to me the position that there are no similarities. I expressly deny this position. There are similarities.
Marshall Received on Mon Nov 12 2007 - 21:10:59 CET