rkm1000 wrote:
I've spent more time with this. I believe it is worse than I first imagined. Allegrocache helps ensure "in memory" object uniqueness for classes of persistent-class. But not for (at least some) non persistent objects reachable from persistent objects (does that make sense?).
If you mean because not all slots of persistent-objects are persistent, sure.
What Allegrocache does for graphs of CLOS objects, it does not do for graphs of structs; there is more to it than just serialization. If you naively encode and decode a cell struct when called upon by Allegrocache, you will wind up with several copies of the cell. To add the logic to track the loading of cell structs, and load the model objects that own the cell structs would require reinventing some (much?) of what Allegrocache already does for CLOS. BTW, I hope I'm wrong about this... I can provide more details if anyone is interested.
This sounds OK. You /will/ have to create a solid layer of glue to make this work, and this just sounds like some of that. Of course I came to the task (with AStore) already sold on the enormous benefits that would follow from the effort, so I never worried about how much glue I was creating, I just worried about it being solid, ie, not going out of bounds of supported Astore.
This is pretty scary, two hours earlier I got invited to talk at ILC
2008 and thought I would do RDFCells. Cool. I'd like to see RDFCells.
I can't quite see the big picture yet; meaning I'm not sure what I will miss from CLOS by embracing RDF, but it looks intriguing. How far down the road can you see at this point?
I want to present triple-cells (new name) at ECLM 2008 and I am taking a couple of days now to do a simple feasibility check before committing to that topic for the announcment, try me in a few.
I did a little work with AG and felt quite liberated in A Lisp Way compared with ACache, and my next conclusion was that maybe CLOS (and conventional OO) is not True Lisp. I am catching up with Graham and Gabriel on this, I think. Even before my AG work I had noticed that with Cells I do not need to subclass, and I have also noticed I do not use multiple dispatch all that much -- are types really at the heart of my design? I find myself thinking I should look at prototyping OO models, such as in Garnet.
It is all fuzzy now and there is a good chance I will not have done any serious application work with triple-cells by April when I go to ECLM, cuz I need to get my commercial app out the door and this is no time for a massive rewrite. So it might be a while before I know if I am nuts.
Does RDFCells look more or less complex than Cells?
Not sure what you mean. triple-cells will sit on top of cells and AG to give AG triples the functionality of Cells. It is the same glue you are trying with AC. So it is really a different kind of project. Oh, wait. Do you mean from the user perspective? Well, of course we want these things to be as painless as possible at the user level, and macros god bless them usually let us do that. I may well end up with the same problem you are confronting, but I'll just hack through it, as you say doing my own cache management to deal with surprises. But on the user side I just see different API entry points for triples, so C? might become 3C?. Stuff like that.
cheers, ken