Disclosure of a mechanism for defining named relationships between metadata objects with relationship dependent behavior under modification, and grouping metadata relationship types into categories which define the desired behavior of the relationships.
Original Publication Date: 2004-Feb-20
Included in the Prior Art Database: 2004-Feb-20
A metadata store is required to support multiple applications with differing requirements for relationships between metadata objects, and differing behavior of the metadata store during modification or deletion of metadata objects and the relationships between them. This mechanism allows an application to define relationship types and create instances of the types, with constraints defined on the type which implement behavior of the instances during modification.
Disclosure of a mechanism for defining named relationships between metadata objects with relationship dependent behavior under modification, and grouping metadata relationship types into categories which define the desired behavior of the relationships .
In defining an extensible metadata catalog, it is necessary to allow the designer instant access of the metadata catalog to define the allowed relationships between metadata objects and the behavior of those relationships under metadata store modification such as defining new objects, relating the new objects to existing objects and deleting objects. A mechanism is required which allows the relationships to be constrained such that only the designer defined behavior is possible, and which allows the designer to easily define new types of relationships and their desired behavior. This invention provides a mechanism for creating behavior constraint modules for relationship types to implement the desired behavior, and for grouping relationship types into categories such that all relationship types within a category exhibit the same behavior allowing the designer to easily associate a behavior with a new relationship type by assigning it to a category.
This invention is a mechanism which defines relationship types and associated relationship constraints, implemented as code modules. The behavior of a relationship type is defined by associating a set of constraint code modules with the relationship type. The constraint code modules are saved with the relationship definition in a persistent manner. Whenever a change is made to the relationship (objects added, objects removed, deleted, created) the constraint modules are invoked to validate the change before it is made permanent. The constraint module can then permit the change, reject the change, or permit the change and perform implied operations, such as deleting objects or deleting the relationship. To simplify the creation of new relationship types with the same behavior as already defined relationship types, relationship types can be grouped into categories with similar behavior, and the behavior modules associated with the category, allowing the possibly complex behavior of a new relationship type to be defined simply by associating it with the category.
In an example impl...