From: Paul Fernhout <pdfernhout@kurtz-fernhout.com> To: python-list@python.org Subject: [ANN] Pointrel Data Repository System v20010915 released Date: Mon, 08 Oct 2001 18:50:22 -0400 Hello all, The latest version of the Pointrel Data Repository System is now available from SourceForge. The code is entirely in Python and supports a database model similar to the Entity-Relationship model. The project is hosted on SourceForge: http://sourceforge.net/project/?group_id=6010. The latest version for Python should be downloadable here (78k): http://prdownloads.sourceforge.net/pointrel/Pointrel20010915.zip This page has more details (and is essentially the readme file): http://www.kurtz-fernhout.com/pointrel/ You may have a vague recollection of a post on Pointrel in this newsgroup in May 2000: http://groups.google.com/groups?hl=en&th=925265d9c9b99c1a&rnum=1 The Pointrel architecture has been extensively revised from that version -- primarily in the direction of ease of use. This version includes a demo implementation of Vannevar Bush's Memex (which he proposed around 1945). More on Bush's Memex can be found at: http://www.theatlantic.com/unbound/flashbks/computer/bushf.htm This version includes several other GUI examples (mostly with TKinter, but a couple using wxPython). These simple demos include a to do list manager, a notebook (useful for developing snippets of Python), a drawing application, an email viewer, and an archive viewer. ========================================== From the readme file: * What is the Pointrel Data Repository System? The Pointrel Data Repository System is a variant of an Entity-Relationship model database. The Pointrel system provides a way to easily handle loosely structured data stored on disk, like for INI files, version control systems, bug tracking systems, or simple AI type applications. It takes an approach to data storage which emphasizes flexibility over speed. It also emphasizes storing new information for the long term over modifying or deleting old information. It hopefully makes it easier to build new layers of abstraction and indexing over old data. The Pointrel Data Repository System bears some resemblance to the ROSE/STAR system described by William Kent in his book "Data & Reality". In a nutshell, the Pointrel Data Repository System helps you build associations which define relationships between entities. These associations are essentially triadal links between things indicating one thing is linked to a second thing in a way defined by a third thing. The simplest way to use such links is to make the equivalent of object properties or a dictionary, such as "Fluffy weight 20kg" which if a dictionary would be Fluffy["weight] = "20kg". However, Pointrel differs from a dictionary in that is supports queries like one for all dictionaries which define a weight of 20kg or all relationships between "Fluffy" and "20kg". Triads are all defined within a specific context that gives meaning to the associations (making triads actually have four fields). The context allows triads to be handled within an archive in a somewhat more modular fashion using them as filters, since you can easily ignore triads not in the context of interest. All fields of a triad are indefinite length binary strings -- so they could be anything from "foo" to the contents of a binary file. * What is a simple example of the Pointrel API being used? See "fluffyExample.py" for an example of using the simplified global function interface. Here is an excerpt from that file: from pointrel20010915SimpleInterface import * Pointrel_initialize("myArchive") Pointrel_startTransaction() Pointrel_add("simpleexamplecontext", "Fluffy", "weight", "20kg") Pointrel_add("simpleexamplecontext", "Fluffy", "color", "beige") Pointrel_add("simpleexamplecontext", "Fluffy", "teeth", "pointy") Pointrel_add("simpleexamplecontext", "Fluffy", "teeth", "nasty") Pointrel_add("simpleexamplecontext", "Fluffy", "preferred food",\ "Knights who say 'Nie!'") Pointrel_finishTransaction() string = Pointrel_lastMatch("simplecontext", "*", "weight", "20kg") print string # string would be --> "Fluffy" string = Pointrel_lastMatch("simplecontext", "Fluffy", "weight", "*") print string # string would be --> "20kg" string = Pointrel_lastMatch("simplecontext", "Fluffy", "teeth", "*") print string #string would be --> "nasty" list = Pointrel_allMatches("simplecontext", "Fluffy", "teeth", "*") print list #list would be --> ["pointy", "nasty"] * What is the license? BSDish. See license.txt for details. * What versions of Python is it for? This code was developed primarily under Python 2.1 under Windows 2000. It has also been spot tested under WinNT 4.0 under Python 1.5.1. with changes made to run there, however, the primary focus is Python 2.1. * How reliable is the Pointrel System? The Pointrel system should not be relied on for mission critical systems yet. It has not undergone enough testing, especially in terms of multiple simultaneous users of the same archive. It may be adequate at this point for INI file handing or similar non-critical applications if you do some testing on your own for suitability in your particular circumstance -- however I cannot guarantee that. The software comes with NO WARRANTY. I do not yet use Pointrel for anything mission critical. One reason for this release is in hopes people will try it, provide feedback, and perhaps make suggestions for improving its reliability. I will say that ensuring the long term integrity of the data stored is a high priority. * Why are you working in this field of data and knowledge management? I am interested in archiving and structuring knowledge using a fine grained approach, especially knowledge on how to make things in a sustainable way as proposed by Buckminster Fuller's "Design Science" and many others, and making that knowledge freely available to all people of the world to help reduce ignorance and want and to increase humanity's chances of surviving with style on Earth and even someday in space habitats. See: http://www.kurtz-fernhout.com/oscomak/index.htm for more details. If you are interested in others doing work with knowledge about sustainability, look at: http://www.bfi.org/ and: http://www.humaninfo.org/ ========================================== If you try the Pointrel Data Repository System, please let me know if you have fun with it or if it proves useful in some endeavor. -Paul Fernhout Kurtz-Fernhout Software ========================================================= Developers of custom software and educational simulations Creators of the Garden with Insight(TM) garden simulator http://www.kurtz-fernhout.com -- http://mail.python.org/mailman/listinfo/python-list