The Relationship Type

Relationships are the links between entities, which together with the entities form a graph.

Relationship can be posted independently to link two entities together, or a relationship can be mentioned in a complex JSON which posts the relationship and the two entities all at once. A relationship, just like an entity, can have attributes, can be matched and merged, and will have crosswalks that represent the sources of the relationship.

A relationship covers both the forward and reverse relations. For example, the relationship "parent" can specify that John is the parent of Sandra and that Sandra is the child of John. In addition, rules may be added to the directional context based on the value of an entity attribute such as gender. For example, Sandra (female) remains the child of John and also becomes the "daughter", while John remains the parent and becomes the "father".

Relationships may have properties and attributes, such as:

  • Name
  • Description
  • Direction-undirected, directed, bi-directional
  • Start and End entities for the relationship
  • Directional context
  • Base attributes
  • Simple
  • Complex

Relationships can be organized into hierarchies by defining subtypes that are a more specific version of the parent supertype. For example, a "family" relationship can be a supertype of "father", "mother", "sister", "brother" relationships. If a relationship type has a supertype, it will inherit the properties and attributes from the supertype. A relation can also have its own custom attributes. Relationships are directional, meaning that they have a start object and an end object.