From: Ian Hobson Date: 2008-12-23T21:19:24+09:00 Subject: Re: Name that data structure! 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