01. Metadata Concepts Technical Overview
Concepts
PME uses the term "concept." A concept is a collection of properties. A "property" has an identifier (a key into a map actually) and a value. In the diagram below, a concept is depicted as a box containing simple, colored shapes. Each shape depicts an identifier and its color depicts a value. A green square in one concept and a purple square in another concept represent the same identifier but with different values.
Inheritance
PME uses object inheritance to maximize re-use of metadata definitions. As you will see, inheritance is used in multiple ways within the PME allowing for powerful re-use. However that re-use comes at the cost of complexity. For example, if one concept has an ancestor, it can be difficult to identify where a property in the descendant concept came from, since the property could have come from the descendant concept, its parent, the parent concept's parent, etc.
In the diagram below, the parent-child concept relationship is shown. A child concept inherits the properties of its parent while still being able to either override the value of the parent properties or add additional properties of its own.
The next diagram is the same as above but with each property further classified.
PME defines "subjects." Subjects are objects that have exactly one associated concept. Examples are physical tables and business columns. In the diagram below, new objects are introduced. Every concept can have a security parent object. A security parent only contributes a security property--nothing else. Note also the default properties. Default properties are coded into PME and are not true concepts. Finally, a subject is introduced. Notice how the subject wraps the concept, and the concept wraps the properties. You can always ask a subject for its concept and ask the returned concept what its ancestors are.
The final diagram shows a complete relationship--one where a concept gets its properties from (1) a parent concept, (2) an inherited concept, (3) default properties, and (4) child properties. Let's look at each:
- The parent of the concept within Subject N is Concept C.
- The inherited concept of the concept within Subject N is the concept with Subject M.
- The default property of subjects of type Y is a circle (with a default value of orange).
- The security parent concept of the concept with Subject N is Security Concept G.
The list below is the precedence
- Child (overrides all)
- Security (overrides parent and inherited)
- Parent (overrides inherited)
- Inherited
Inheritance