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