Let's say we are using the observation pattern from the previous post to track properties (observations) of a large number of different objects (subjects). Each object can have many properties and different objects have different properties. The catch is that not all people (users) are interested in all properties. Using a computer for example; geeks are interested in processor, memory and screen resolution; managers in pricing, warranty and preferred supplier; material handlers in packaging and weight. So, there is no sense in displaying all possible properties of an objects to all the people.
The model allows for tagging of property (observation) types, similar to labelling messages in Gmail, including tag hierarchies. For example height, weight and width would be tagged with: all, dimensions, physical; some other tags would be: accounting_interest, tracking_specific, and so on. This way a user can subscribe to a set of tags she may be interested in.
- One observation type (height, weight, color) can have many tags, one tag may be applied to many observation types.
- Each tag may have a parent tag forming a hierarchy.
- A user stores preferences for a set of tags that she usually monitors.