What's a POS??

Martin Cracauer cracauer@wavehh.hanse.de
Fri, 9 May 97 12:03:43 +0200


Kelly Murray writes:

> The way to learn how they work is to go read the research literature,
> read the OODB companies product descriptions and white papers.

I think it was exactly Mike's point that the literature has too many
ways to form an API for persistence.
 
> I can point to AllegroStore as an existing, working
> commercial product which is an instance of a persistent CLOS that
> represents certain properties and implementation decision.
> There are many others too.
> 
> My own persistent CLOS implementation is still in progress so some
> design decisions have not yet been made.
> It is a very different implementation than AllegroStore,
> but will likely have a similiar kind of API as AllegroStore
> which was actually mostly copied from Symbolics' Statice
> (customers wanted this same API)

So Statice, AllegroStore (which is implemented on top of ODI's
Objectstore, AFAIK) and what you plan for LispOS all share the same or
a similar API.

The only information I have about Statice's API is what I heared on
LUGM '97 by Thomas Neumann. I don't have anything on paper. I think it
is important that we all can have a better idea of the API. Maybe it
is possible to convince Franz to make AllegroStore's Documentation
available on the net or at least printed manuals for a small fee?

As I remember it, the approach taken by Statice is a very elegant one
when it comes to work with a more elegant form of what a classical
tabular driven relational database is. 

But I wonder how suitable it is for persistence of fine-graded
work. Let me give you an example.

In Unix, I often do something like this:

  ls -lg foo*.dat | somecommand   

where somecommand takes the ASCII table, reparses it into strings and
numbers and does sometjing with it.

The Lisp equivalent could look something like this

  (somecommand (file-information (glob "foo*.dat")))

where file-information puts out a struct that somecommand uses to do
its work.

No, if `ls -l` were a long-running program, or if I would like to
capture the state of the directory before I change somethings, I could
do it like this

  ls -lg foo*.dat > somefile

and later, maybe weeks and reboot later

  somecommand < somefile

What would the Lisp POS equivalent look like? How would it be
different from plain print/reading the struct?

Martin
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer@wavehh.hanse.de>
http://cracauer.cons.org
Fax +49 40 522 85 36