From: Tom Cloyd Date: 2008-12-24T04:21:13+09:00 Subject: Re: Name that data structure! Ian Hobson wrote: > Tom Cloyd wrote: >> >> >> I now can specify node relationships. Some examples: >> >> .n Tom .r is a .n poor programmer >> .n apple r. is not .n bridge building material >> .n e=mc**2 .r could be .n true >> >> Obviously, these aren't sentences, so we do not use articles, >> conjunctions, and the like. >> > Hi Tom, > > What you have described is the associative model of data (storage). > > Each association is three things > A subject > The association (almost verb, but more accurately copula) such as > "is a", "sells", "knows programming language" etc > An Object > The subject and object can be either entities (real things) or an > association. Thus > > ((Ian, isa Person), Drives, (Vehicle, RegNo, AB54CDE)) > > The great strength is the distinction between entity (e.g. people, > legal entities, cars), and their relationships (supplier, customer, > drives etc). > An entity has a life span and could be destroyed. When it ceases to > exist all relationships into which it entered, become void. > Relationships usually have start and end times. > > Another feature is the implied inverse of the relationship. If I drive > a car, that car is driven by me. > > So instead of a computer system having a suppliers database, a > customers database and an employees database, it has a database > containing "legal entities" and "people" who may have "supplier", > "employee" or "customer" relationship with the company. (There should > be no legal entities as employees - that is a data error). Clearly a > supplier or employee could also be a customer, and it is not unknown > for an employee to be an occasional supplier for one-off items. > > Most accounts departments spend a lot of time sorting out problems > with customers who are also suppliers. Now they are easy to handle. > > Note the unusual nature of an address change. I and where I live are > entities, with a "lives at" relationship between them. To alter where > I live, the system must creates a new address and alters my "live at" > relationship (dated when I move). > > See if you can get hold of a copy of "The associative model of data" > by Simon Williams (ISBN 1-903453-00-3). Lazy Software (William's > company) are the publishers and gave away copies many years ago for > marketing purposes. They may still have copies. It contains a very > clear explanation of the what and how, and describes a general purpose > user interface for editing such structures. > > I have long felt a PIM based on these principles (with some form of > schema definition language on top), would be a very powerful and > flexible tool. > > Regards > > Ian > > > > > Wow. Ian, this is my holiday gift - from you. I got to this model from several diverse sources, but a major one was simply me- working things out with sketches made on sheet after sheet of blank paper. It's been a lot of run, and considerably exciting. I really did think I was on to something, if only because I recognized strong similarities to how organic data processing works. Your orienting me to previous work done with these concepts is simply terrific. I strongly suspected there were other people I should be reading. You given me a real lead in that direction. I absolutely will continue working on this - I'm learning too much Ruby not to. But I also want to USE the darned thing, and in fact already am. Thanks again for taking time to share your knowledge! Tom -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist Bellingham, Washington, U.S.A: (360) 920-1226 << tc@tomcloyd.com >> (email) << TomCloyd.com >> (website) << sleightmind.wordpress.com >> (mental health weblog) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~