Building a set by propagation
When we install a perimeter configuration, we need to know how it will be interpreted by the propagation processing which builds the set of objects and links.
Root objects list
The user inputs a set of "Root" objects of the source repository, and a method of creating the set by propagation: the perimeter.
Root objects are not necessarily in the two repositories to be compared. The result will differ depending on whether processing is applied on a set of root objects, or if processing is applied to each root object.
Set of objects
 
The set of objects is built from root objects by propagation. A perimeter groups behavior of all MetaAssociations, and enables addition or not of an object to the set of objects opposite the MetaAssociation.
The MetaAssociations are directional. Each MetaAssociation has a "Major" MetaClass and a "Minor" MetaClass. Behavior is specified for each perimeter on "MajorToMinor" and "MinorToMajor" MetaAttributes of a MetaAssociation. Behavior can also be specified on the MetaAssociationType connected to the MetaAssociation.
 
Taking MetaClassA as the root object, we browse the MetaAssociation in direction Major to Minor. The behavior taken into account will be that specified on the MajorToMinor MetaAttribute. Depending on the value of this behavior, the opposite object (ie. MetaClassB) will be added or not to the set with this behavior. If the opposite object is accessible via another MetaAssociation or set of MetaAssociations with different behavior, behavior of this object in the set of objects is updated with the least restrictive behavior (orders being "DEEP", "STANDARD" and "LINK"). Only objects of « DEEP » or « STANDARD » behavior are used in the « Comparison » MetaTool. Objects with "LINK" behavior are used in link processing only.
Root object: by default, this object is added to the set with "DEEP" behavior.
"DEEP" behavior: the opposite object is placed in the set with "DEEP" behavior and propagation continues on this object.
"STANDARD" or "LINK behavior: the opposite object is placed in the set with this behavior and propagation processing stops.
"ABORT" behavior: the opposite object is not placed in the set and propagation processing stops.
"COMPUTED" link:MetaAssociation behavior is not sufficient to define behavior on this particular link and behavior is computed by a macro which gives behavior related to the current object, which can be "DEEP", "STANDARD", "LINK" or "ABORT". The object is processed in the same way as other objects with the same behavior.
 
 
 
The next setting  with the next data
 
 
Gives us the following path with behavior of objects; we note that the "Object B" is browsed by "LINK" and by "STANDARD", finally taking "STANDARD" behavior.
 
 
 
 
 
 
Set of links
 
It is then important to see the repository as a chart rather than a tree, ie. that an object can be browsed by different links. The set of links is built from behavior of objects contained in the set of objects obtained in the previous paragraph.
We list all links contained in the perimeter, ie. all occurrences of links between two objects belonging to the set of objects. Depending on the nature of these two objects ("DEEP", "STANDARD" or "LINK"), the link is added or not to the set according to the following table:
 
 
 
Object
 
 
Deep
Standard
Link
Opposite object
Deep
IN
IN
IN
Standard
IN
IN
OUT
Link
IN
OUT
OUT
IN: the link is added to the set.
OUT: the link is not added to the set.
 
Example:
 
The (IN) link between the "DEEP" object and the "STANDARD" object is taken into account in building the set of links. The (IN) link between the "DEEP" object and the "LINK" object is taken into account in building the set of links. The (OUT) link between the "STANDARD" object and the "LINK" object is not taken into account in building the set of links.
In the "Compare" MetaTool, the "IN" links are taken into account, but not the "OUT" links.