Universal Design Pattern

Monday 3rd of September 2012 06:12:52 PM

  Toggle Advanced Options

A topic maps-based Universal Design Pattern

Inspired by Steve Yegge's blog post on The Universal Design Pattern I am going to try to build an implementation of a topic map-based Universal Design Pattern.

I could just go for a "straight" implementation of the pattern. Nevertheless, I've decided to implement the pattern using a topic maps-based approach. With the risk of being a one trick pony and resorting to topic maps for the implementation of this pattern, it makes sense (from my point of view) for several reasons:

  1. The concept of topic maps is one of metamodeling (a model to model other models) allowing me to easily model the bulk of the pattern.
  2. I already have a topic maps engine which will take care of the whole issue of persistence.

Initial thoughts

  • Topics represent objects.
  • Associations will be used to model an object's properties; each association's "pointed to" topic will be the actual property.
    • The topic's (base) name will be the name of the property.
    • Each property topic will have an occurrence which will be the value of the property. The occurrence's instanceOf field will denote the type of property making it possible to distinguish between the different type of data properties and code properties (that is, methods).
    • The association's instanceOf field will be used to denote the property nature of the association (e.g., "property").
  • An association will be used to point to the object's parent / prototype object. Just like with the property associations, the instanceOf field of the association will denote the nature of this specific association (e.g., "parent" or "prototype").