Non-SQL Persistence for PL
Hans Chalupsky <[email protected]> Wed, 29 Aug 2007 15:00:03 -0700
| Newsgroups | gmane.comp.ai.powerloom |
|---|---|
| Message-ID | <[email protected]> |
Kambiz, we do have an experimental version of persistence that doesn't require you to have a DB schema, but that basically persists PowerLoom definitions and propositions in a special-purpose "schema-less" RDBMS database. The system then pages those objects in on demand and uses extensive caching to make things fast. In a sense this is implementing a type of persistent object system by serializing the objects to an RDBMS. The problem with this is that it isn't quite complete. We've loaded, persisted and queried large ontologies with that, but there are a variety of loose ends that would make this difficult for you to use at this point. Several years ago we've played with some persistent object systems (such as Versant and PLOB - a free version of persistent Lisp objects), but the performance was never very satisfying. That might have changed by now with Allegro Cache, but I don't have any real data on that. The other issue is that a loaded PowerLoom module has a host of PowerLoom and STELLA data structures associated with it that all would need to be persisted, which means that you basically have to make all object classes of STELLA and PowerLoom persistent to make things work (without some major re-architecting). I don't know how difficult that would be with Allegro Cache, and I'd be interested to hear some experiences from you if you venture to go that route. Hans >>>>> darabi <[email protected]> writes: > Hi, I sent the below message using the wrong mail address. > I hope, it doesn't show up twice in the list.: > ---- > Hello, > I have a need for persistent knowledge bases and thus > have been experimenting with the rdbms (and sdbc) system > which you kindly released some time ago. > My (maybe short-sighted) conclusion is that rdbms is very > well suited for accessing large amount of data which > is already stored in an SQL DB and for making that data > available to PL's reasoning mechanisms. > But, if one has no existing SQL data and wants to persist > a KB of concepts and relations which are subject to frequent > change, then the limitations of the DB in terms of 'high > cost' of schema evolution also limit the possibilities > of rdbms/sdbc. > Have you or others taken another path: to use object level > persistence as provided by Franz' AllegroCache or other > 'object databases' to store the relevant parts of the > knowledge base? > Of course, this would only work in the lisp version of PL, > so it might be out of scope. OTOH, there is also db4o for > Java and C++, so maybe it wouldn't be impossible to implement > it in a cross-platform way. > But, I would be interested in any thoughts you might have > on this topic. Would it be possible to use the CLOS version > and identify some classes (e.g. named-description, > native-relation, context, module) which make up a PL module, > and persist them to an object database? > If yes, could you give me some hints as where to look into > the code? > Thank you very much. > Kambiz > _______________________________________________ > powerloom-forum mailing list > [email protected] > http://mailman.isi.edu/mailman/listinfo/powerloom-forum