[sc34wg3] Possible TMRM issue
Robert Barta
rho at bigpond.net.au
Tue Mar 21 04:41:03 EST 2006
On Mon, Mar 20, 2006 at 01:51:47PM +0100, Lars Marius Garshol wrote:
> The problem is that it's far from obvious how this can be done
> without having to traverse the entire model every time a change is
> made, or, alternatively, every time you want to compare two proxies.
> What we need is some kind of reassurance that it is *possible* to
> implement this efficiently. If it's not possible to do this
> efficiently I don't think the current model is acceptable at all, and
> if only Robert knows how to do it I'm afraid we'll only ever see one
> implementation of this (Robert's).
Well, it would certainly help me with my hidden agenda to rule this
planet (actually I forgot why I would actually want that).
But, to bring this highly academic discussion more back-to-earth, here
is an excerpt out of
http://cvs.sourceforge.net/viewcvs.py/perlxtm/base/lib/TM.pm?rev=1.21&view=markup
struct 'Assertion' => [
lid => '$',
scope => '$',
type => '$',
kind => '$', # argh
roles => '$',
players => '$',
canon => '$',
];
This is the low-level structure I currently use for a proxy (named
'assertion' for historical reasons). 'lid' is the label for this
proxy, computed from the 'roles' (=keys) and the 'players' (=values).
'Roles' is a list of labels, 'players' is a list of things, either
labels or literals (integer and other primitive stuff).
EVERY information (topic names, occurrences, blah, associations) are
mapped into such structure. I would DEFINITELY claim that this is
implementable, traversable, queryable, serializable, indexable and
amenable to various persistent storage techniques (not only relational
databases).
Otherwise, I would really wonder how my TM-server would have been able
to ship > 2 GB on TM content last month.
\rho
More information about the sc34wg3
mailing list