|04. Enriching Your Data - Understanding Metadata Concepts and Properties||02. Metadata Properties Reference|
As explained previously, there are three levels of concepts for the business objects in the business model, which provides great power and flexibility in how you define your metadata. Since one of the levels is an inherited level, there are really only two concept application processes you need to learn to work with - applying self concepts, and applying parent concepts.
You may have noticed when you were creating your tables and columns, that the properties dialog for every business object had two additional lists to the right of the Subject list. I intentionally skipped these earlier, as they are related to concept editing, which we are just now broaching. The two additional lists are the Properties list, and the Property Editor application, and they operate the same no matter what object you are applying metadata to.
The properties shown in the screenshot above are for a business table, and we will use the business table as a reference here.
The middle panel in the properties dialog is the Properties List. This is the list of currently applied metadata properties for the object that is selected in the Subject list. The properties are sorted into their appropriate categories for organization.
At the top of the Properties List, you will notice two icons. The icon with the plus sign is for adding new metadata properties to this business table's self concept, and the icon with the red stop sign is for removing properties from the self concept. Note that the remove button is disabled until a property is selected in the Property List.
Helpful Icon Color Coding
There are four ways a property can show up in the Property List:
- The property is a default property for the associated business object, and thus cannot be removed.
- The property was inherited from the business object's physical ancestor.
- The property has been set as part of the self concept.
- The proeprty has been set as part of the object's parent concept.
It is difficult/confusing to set properties without understanding the override hierarchy, so to help make the hierarchy a bit more apparent in the Properties List, we color code the properties to alert you to what concept level is in play.
- Yellow Icon = This property is inherited from the object's physical ancestor.
- Blue Icon = We have set the property on the object's own concept. This could be overriding an inherited property.
- Orange Icon = This property is set as a result of the parent concept applied to the object.
- Purple Icon = This is a special icon resserved for security properties.
The Properties Editor shows the property name, and the associated value for that property in a scrolling list. The properties show up in the Properties Editor in the same order they appear in the Properties list. If you click on a property in the Property List, the Property Editor will scroll to find it in the editor.
In the Properties Editor, you can set or modify the values of the properties applied to the business object.
Note that the properties dialogs today work as a single transaction - you either accept all changes when you click OK, or roll back all changes if you click Cancel. Therefore, there is no reset or undo that will take you partially out of a set of changes. We have plans to make this dialog a bit friendlier than that in the future.
There are also icons in the upper right corner next to any property that is override-able. If you want to modify a property by overriding its inherited value, you must first click the override button. And to stop overriding, you click the override button once again.
To add a new property to a business object, first make sure that the object you want to apply the new property to is selected in the Subject list.
- Click the plus sign above the Properties List.
- You will be prompted with the list of property choices to apply.
- Select one property, click OK, and the property is now available for you to modify in the Property Editor.
To remove a property from the Property List:
- Select the property you wish to remove.
- Click the red stop sign above the Properties List.
Note that you can only remove overrides and self concept properties for the selected object. If you want to remove inherited or parent concept properties, you need to edit the inherited business object, or the parent concept.
Parent concepts are independent hierarchies of concpets that can be assigned to one or more business objects via the Tree Navigator. Before we can assign a parent concept we must first learn how to create one.
Introducing the Concept Editor
The Concept Editor is an editor in the Pentaho Metadata Editor that facilitates building concepts to be used as parent concepts. The ability to isolate the concepts, name them, then associate the named concept with one or more business objects gives us flexibility and very good concept management.
Another feature of the Concept Editor is that we can define concepts that build upon other concepts. By nesting concepts this way, we have minimized the number of properties you repeatly define, and create a nice inheritance hierarchy.
Every model includes a default concept called Base. This concept is applied as the parent concept to all physical columns created under a connection. The default concept includes metadata properties that are commonly defined, and sets a base line set of metadata for all physical columns in the metadata model. The purpose of the default concept is to provide legitimate values for common metadata properties that may not be set in other places in your hierarchy.
You can update, add and delete metadata properties on the default concept, just like you can in any other concept. You can also remove the default concept as the parent concept for any and all physical columns. You can not, however, delete the default concept from the list of concepts in the Concept Editor.
Here's what the default concept Base looks like today:
Building nested concept trees may take a bit more explanation, best done with an example walkthrough of the Concept Editor.
- From the main menu's Tools menu, select the Concept Editor.
- With the Base concept selected in the Concepts List*, click the plus sign to add a new, nested concept. Name this concept Number.
- Make sure Number is selected in the Concepts List. Note that the properties from Base has been inherited by Number.
- Add a Mask property to Number, with a value of $###,##0.00.
- With Number selected in the Concept List, add another nested concept named ID.
- Select ID in the Concepts List, find the inherited Mask property and click the Override button. Enter an override value of 0 for the mask.
Notice how we now have three defined concepts that can be used anywhere in our business model. Each concept serves a different type of business object - Base for default, generic columns, Number for those columns we know contain numeric financial data, and ID for ID columns.
Click OK to save your new concepts.
Now that you have some defined concepts, let's set a few as parent concepts in our business model.
- Select any physical table in the Tree Navigator. I will use the Customers physical table as an example.
- Expand the columns under the table in Tree Navigator. Select the column you want to apply the concept to. I am going to apply our ID concept to the column Customernumber.
- Right-click (or CTRL-click) on the column, and select the Set Parent Concept option from the popup menu.
- A list of concepts will display. I am going to choose the ID concept and click OK.
- You should see the concept in the right hand column of the Tree Navigator on all objects that it is applied to (remember, inherited concepts will show up on all of the inherit-ees ).
Now, when the column Customernumber is used in a metadata-aware application, it will provide a font of Verdana, and default numeric format of 0 - no decimals, no commas.
To remove a parent concept from an object in the business model, you clear the parent concept.
- Select any physical table in the Tree Navigator.
- Expand the columns under the table in Tree Navigator. Select the column you want to remove the concept from.
- Right-click (or CTRL-click) on the column, and select the Clear Parent Concept option from the popup menu.
This removes the parent concept and its metadata properties from the object.