Skip to main content Skip to complementary content

Edit Metamodel Object Types

After defining the pool of Attribute Types, we will need, we then create Object Types based on these reusable attribute types, along with and custom associations between these Object Types, including regular reference relationships, composition links (UML aggregations), and UML generalization allowing you to define abstract business objects.

Information note

Whenever a metamodel relationship has been used in an instance, its cardinalities cannot be changed anymore.

Information note

When creating custom attributes for imported model object, they are still attribute types in the pool and may be then used by both custom object types and imported object types. As imported object type attribute extensions, they are referred to as custom attributes.

Information note

Once you include attributes in an object type, you may specify mandatory attributes (required by the user interface) by including them in the MANDATORY ATTRIBUTES list. In this way, the user interface will require a value is entered in those attributes when they are a part of that object type. Also, these attributes are required to be entered as soon as an instance of the object is created, so they are included in the New Object dialog.

So, if Policy Number is an attribute of Business Policy and Business Rule, you may make it mandatory for a Business Policy but not for a Business Rule.

Mandatory attribute settings only apply to custom object types, not imported object types, thus one cannot specify mandatory attributes for imported objects.

Steps

  1. Begin editing a metamodel.
  2. Go to the Object Types panel in the middle.
  3. Here you may:
    • Click on an Object Type and then edit its properties in the panel at the bottom, including:
      • TYPE– Type of the object
        • Custom– Custom object type to be part of a custom model
        • Imported– Imported object type. Has a scope defined as a collection of profile categories of types of objects in imported models (e.g., tables or dimensions).
        • Binary Relationship– Relationships between source and destination object types that exist as an object in their own right.
      • NAME – Name of the object type
Information note

The name of any Object Type must be unique in the entire repository. Thus, it behooves you to consider the naming carefully

  • DEFINITION – Description of the object type
  • PARENT OBJECT TYPE – Object types inherit attribute types and relationships from their parent.
Information note

Multiple inheritance is not permitted. There may only be one parent object type. The root of this tree is the Entity object type.

  • ABSTRACT OBJECT TYPE– Abstract object types are never instantiated and are only defined to have common attributes types and relationships which are to be inherited by multiple child object types.
  • MANDATORY ATTRIBUTES – A list of attribute types already assigned to the object type that are to be made mandatory (required) data entry in the user interface.
  • PACKAGEMetamodel package that the object type is a member of.
  • (Contained) Attributes and Relationships – Widget for adding attribute types and relationships to an object type. Click the tab (either Attributes or Relationships) you wish to edit and:
    • Click Add to include a new attribute type or relationship to the object type
    • Click Delete to remove the selected attribute type or relationship from the object type.
  • Click UPDATE ICON to provide an icon that will be displayed for every instantiated object of this type.
    • Click Add in the header of the Object Types panel to create a new object type
    • Click Delete in the header of the Object Types panel to remove the selected object type.
Information note

Clicking SAVE after deleting an Object Type removes it entirely from the repository including all instances in custom models. However, this is only possible if all depended objects are first removed or edited to not depend upon the object to be deleted.

  • Right-click and select Show usage diagram to see the dependent objects.

Example

Custom Object Types

Again, we are creating a business organization metamodel where we can define a particular company’s areas of business in a hierarchical fashion (business unit organization chart) and then organize harvested metadata within that structure.

Object types required for this are:

Object Type Name

Definition

Attribute Types Contained

Business Policy

Business oriented guidelines used to define the scope in which decisions are made, how resources are targeted to the organizational goals, and an organization’s actions.

  • Name
  • Policy Number

Business Rule

Formalized constraints placed upon various activities of an organization with the purposed of enforce business structure, control the behavior of business units, influence the business overall.

  • Name

As we were editing earlier, we should already be signed in as Administrator, and at MANAGE > Metamodel, and have already clicked START EDITING.

In the Object Types panel (in the middle), click Add.

Enter “Business Policy” in the NAME and “Business oriented guidelines used to define the scope in which decisions are made, how resources are targeted to the organizational goals, and an organization’s actions.” in the DESCRIPTION. Then click OK.

Information note

The Term Behavior checkbox allows you to create an object type which when instantiated will behave like a glossary term in that the Semantic Flow tab will appear in the object page when there is semantic lineage (relationships defined which have PARTICIPATES IN SEMANTIC FLOW is set to Yes.

You may only set the Term Behavior checkbox when creating a new object type. This is because, once set, all instantiated objects will be system objects which behave “like a Term”.

To add an Icon use the UPDATE ICONfeature.

Specify Demo Business Rules and Policies as the PACKAGE.

Also, add the Policy Properties attribute type.

Right-click and select Show usage diagram.

Information note

Now you see what must be updated in order to delete the Business Policy object type.

Now, do the same for Business Rule:

After we have done so, those object types will be included in the USAGE list on attribute types, like Policy Number.

Imported Object Types

In the case of imported objects, the possible types are defined as a part of profiles which are associated with the different metadata sources (e.g., RDBMS, Tableau, Talend DI, etc.). The purpose of defining an imported object type is to group these different profile objects into collections of imported object types which may be extended (with custom attribute types or relationships) all at the same time. E.g., one may wish to define an “Imported Feature” imported object type which includes Fields in Files, Columns in Tables, View Columns in Views, Attributes in Entities, Measures in BI design models, etc.

Information note

These attribute types which are associated with and extend the imported object types (collections of imported profile objects) are then referred to as custom attributes.

Sign in as Administrator, go to MANAGE > Metamodel, and click START EDITING.

In the Object Types panel (in the middle), click Add.

Select Imported. Enter “Imported Feature” in the NAME and “All feature level imported object types.” in the DEFINITION. Then click OK.

Click CHOOSE to select all the feature level type imported categories in the IMPORTED MODEL OBJECT SCOPE by selecting Data Attribute in Dataset.

Click OK.

Add an Icon.

From here you may:

Custom Attributes for Imported Object Types

In the case of imported objects, the possible types are defined as a part of profiles which are associated with the different metadata sources (e.g., RDBMS, Tableau, Talend DI, etc.). The purpose of defining an imported object type is to group these different profile objects into collections of imported object types which may be extended (with custom attribute types) all at the same time. E.g., one may wish to define an “Imported Feature” imported object type which includes Fields in Files, Columns in Tables, View Columns in Views, Attributes in Entities, Measures in BI design models, etc.

These attribute types which are associated with and extend the imported object types (collections of imported profile objects) are then referred to as custom attributes.

Information note

You cannot simply add a custom attribute (Attribute Type) to the Imported Object (Object Type). Instead, you must follow the below example an ensure that you have specified a scope within the set of imported objects to which the custom attribute will apply.

Sign in as Administrator, go to MANAGE > Metamodel, and click START EDITING.

In the Object Types panel (in the middle), click Add.

Select Imported. Enter “Imported Feature” in the NAME and “All feature level imported object types.” in the DESCRIPTION. Then click OK.

Add an Icon.

Click CHOOSE to select all the feature level type imported categories in the IMPORTED MODEL OBJECT SCOPE.

Click Add next to Attributes to specify the attribute types which are already defined and will be included as custom attribute choices for all of the feature level imported objects.

Click SAVE.

To check that this is now a valid custom attribute, search for a feature and try setting a custom attribute on an object.

Associate Attribute Types with Object Types

We are editing the metamodel and specifically an object type. Object types may have any number of attribute types which are drawn from the pool of available attribute types.

Information note

Object types associated with custom models can have any number of attribute (types) associated with them. However, these function differently from custom attributes on imported models. Unlike custom attributes, attributes on custom model objects are always considered available to edit. Thus, you do not have to “attach” them to each instantiated object.

For these objects, what this means is that the ALL of the attributes available will show in the object page for every instantiated object, not just the ones you attached a custom attribute to.

Now, add the Policy Number attribute type. Go to the Attributes tab above the widget and click Add.

Information note

You may multi-select the Attributes to include using SHIFT-Click or CTRL-Click.

Click OK.

Information note

In the Object Types panel, there are seven attribute types associated with Business Unit. NAME and DEFINITION are inherited from the Entity object type.

Information note

You may reorder the attribute types using the Move Down (and Up).

Information note

Once you include attributes in an object type, you may specify mandatory attributes (required by the user interface) by including them in the MANDATORY ATTRIBUTES list. In this way, the user interface will require a value is entered in those attributes when they are a part of that object type. So, if Policy Number is an attribute of Business Policy and Business Rule, you may make it mandatory for a Business Policy but not for a Business Rule

Include Policy Number in the MANDATORY ATTRIBUTES list:

In the Object Types panel (in the middle), click Add.

Enter “Business Rule” in the NAME and “Formalized constraints placed upon various activities of an organization with the purposed of enforce business structure, control the behavior of business units, influence the business overall.” in the DEFINITION. Then click OK.

Add an Icon.

Click SAVE, so we do not lose our work.

We are now ready to define relationships to other object types.

Include Relationships to Other Object Types

Now we can add relationships.

In this case, we will add relationships directly to the object types we have already defined, e.g., Business Policy. We will want to include two relationships for a Business Policy. First is a one-to-many association between policies. This represents a hierarchical structure but is not defining.

Information note

These types of relationships which are simply specified as part of the definition of an object type are implemented as simple links between two instantiated objects. They do not exist separately from those objects, so that when you delete one end of the link (one of the object), there is no link remaining.

You may also define relationships as object types themselves, which are instantiated as their own objects and thus may be managed separately from the end points of any links.

Go back to Business Rule and go to the Relationships tab above the widget and click Add.

Information note

We select an association relationship as there is no composition between two policies.

Specify the same object type (Business Policy) as the END2 OBJCET TYPE and enter “Includes” as the NAME. Specify a CARDINALITY of Many.

Then, check the Bi-Directional box and enter “Is Included by” in the NAME. Specify a CARDINALITY of Many. Click OK.

Check the PARTICIPATES IN SEMANTIC FLOW to include this relationship in usage and definition semantic flow lineage.

Information note

If editing and existing association, when you set the PARTICIPATES IN SEMANTIC FLOW, the setting only applies to associations instantiated after this setting is saved. Any already existing associations already instantiated associations (relationships) will NOT be included in the semantic lineage. To do so, you much delete each of the existing relationships and then recreate them.

Information note

The NAME will be use as a tab in the object page and may be specified in MQL queries and worksheet filters.

Click SAVE.

Now, we will relate policies to rules.

In the Relationships tab click Add.

Information note

We select an association relationship neither policies nor rules are composed of each other.

Specify the other object type (Business Rule) as the END2 OBJCET TYPE and enter “Is Enforced By” as the NAME. Specify a CARDINALITY of Many.

Then, check the Bi-Directional box and enter “Enforces” in the NAME. Specify a CARDINALITY of One.

Click UPDATE ICON and provide something nice and click OK.

Information note

The NAME will be use as a tab in the object page and may be specified in MQL queries and worksheet filters.

Click SAVE.

You may always review relationships with the dialog by clicking on the relationship in the Object Types section.

Define Relationships with Imported Objects

Just as you may define relationships among custom objects, you may also define relationships between custom objects and imported objects. In this way, the objects populating a custom model may reference objects in imported models.

In this case, we have one relationship, from Business Rules to Key Metrics in imported models. This is a many-to-many association.

Go back to Business Rule and go to the Relationships tab above the widget and click Add.

Information note

We select an association relationship as there is no composition between these two objects.

Specify the Imported Object object type as the END2 OBJCET TYPE and enter “Is Measured By” as the NAME. Specify a CARDINALITY of Many.

Then, check the Bi-Directional box and enter “Measures” in the NAME. Specify a CARDINALITY of Many.

Click OK.

We are now ready to place the object types in a model.

Abstract Object Types

In order to more easily facilitate the design of common features across similar object types, the metamodeling capability include the ability to define abstract object types.

Examples include:

  • Any Object which represents any standard, custom or imported object type (as used in the Defines/Is Defined By relationships on the Semantic Link object type).

  • Any Imported Object is a (virtual) subtype of Any Object representing only Imported Objects created by import bridges.

  • Glossary Object is an abstract object type for all objects that may be contained within a glossary.

Those other object types, Term and Acronym inherit the attributes of a Glossary Object.

Information note

See the notation showing inheritance.

Information note

These abstract object types are virtual (implemented as filters) and cannot be subtyped.

Base Object Types

It proves convenient when defining relationships to be able to easily identify the scope of object types one wishes to link to. E.g., to refer to any “column-like” object, such as a column in a table, attribute in a entity, field in a file, etc., there is the Any Feature base object type.

They are handled just like abstract object types.

The include:

  • Any Classifier – Any table-like object
  • Any Feature – Any column-like object
  • Any Imported Object – Any object contained within an imported model
  • Any Object – Any object type

Relationship Object Types

You may also define relationships as object types themselves. In this case, they are not simply listed in the Relationships tab when editing an object type, like Includes, Is Included In or Is Enforced By in the previous examples:

Instead, relationships object type are in fact their own object types. E.g., Semantic Link:

Information note

The Semantic Link is a first class citizen of the Object Types (middle) panel and contains two relationships (not object type relationships), Defines and Is Defined By.

In this way, when one creates a model with these relationship object types, they are instantiated as their own objects and thus may be managed separately from the end points of any links.

Relationship object types come in two types:

  • The Binary Relationshipabstract object type connects two objects at the instance level (e.g., like the Semantic Link object type above).
  • The N-ary Relationship abstract object type connects more than two objects at the instance level (e.g., like the Classifier Map object type below).

These new relationship objects types are directional (roles can be source or target) and can optionally carry semantic flow (on all roles in such case).

Information note

Note that these new abstract relationship object types cannot be subtyped.

You may click the DISPLAY OPTIONS button to define custom display options for an association diagram.

Example

For examples, please refer to the actual example section for the two relationship object types outlined above.

Semantic Links and Semantic Mappings

A Semantic Link is a binary object type between, e.g., a term and an imported column, that is collected up into Semantic Mapping models.

A Semantic Link contains two association type relationships, Defines and Is Defined by, which may link to any type of object.

Each of these association type relationships is directional and is included in the semantic flow.

Finally, Semantic Links are instantiated as part of a Semantic Mapping model type, and thus you must define such a model to contain them.

Use of semantic mappings and semantic links is detailed in the semantic mapping section.

Classifier Maps and Query Mappings in Data Mappings

A Classifier Map is an N-ary object type between, e.g., a source classifier (table), destination classifier (table), a control classifier (table) term and any number of feature maps (column maps). A Classifier Map is itself and abstract object type and an example includes the Query Mapping that is collected up into Data Mapping models.

A Query Mapping Link contains two association type relationships, Defines and Is Defined by, which may link to any type of object.

You may see the four association relationships are inherited from the abstract object types (Map Destination, Map Source, Map Control and Feature Maps) Two additional composition relationships are SQL Conditions and Aliases.

Map Destination, Map Source and Map Control are simply relationships from classifier to classifier (table to table), many sources and controls but only one destination.

Finally, Query Mappings are instantiated as part of a Data Mapping model type, and thus you must define such a model to contain them.

Use of query mappings and data mappings is detailed in the data mapping section.

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – please let us know!