AtlasRelationshipDef is a TypeDef that defines a relationship.
As with other typeDefs the AtlasRelationshipDef has a name. Once created the
RelationshipDef has a guid.
The name and the guid are the 2 ways that the
RelationshipDef is identified.
RelationshipDefs have 2 ends, each of which
specify cardinality, an EntityDef type name and name and optionally
whether the
end is a container.
RelationshipDefs can have AttributeDefs - though only
primitive types are allowed.
RelationshipDefs have a relationshipCategory
specifying the UML type of relationship required
The way EntityDefs and
RelationshipDefs are intended to be used is that EntityDefs will define
AttributeDefs these AttributeDefs
will not specify an EntityDef type name as
their types.
RelationshipDefs introduce new attributes to the entity
instances. For example
EntityDef A might have attributes attr1,attr2,attr3
EntityDef B might have attributes attr4,attr5,attr6
RelationshipDef
AtoB might define 2 ends
end1: type A, name attr7
end2: type B, name attr8
When an instance of EntityDef A is created, it
will have attributes attr1,attr2,attr3,attr7
When an instance of EntityDef
B is created, it will have attributes attr4,attr5,attr6,attr8
In this way
relationshipDefs can be authored separately from entityDefs and can inject
relationship attributes into
the entity instances