A Relation denotes a logical connection that can exist between a pair of Type. Each relation has an associated multiplicity. A Relation in Appacitive is always bidirectional.


Structural constraints are defined through Properties. Constraints on content are enforced through rules associated with Properties. However it is not mandatory for a Type to have any Properties. Such a Type will behave as a named collection of unstructured data. Additional data can be stored in Attributes and Tags.

For example, a Company Type can be linked to a Person Type with the Relation Employee. The Employee Relation can have associated properties such as Employee Id and Date of Joining. You can also define constraints such as Employee Id must match a regular expression or Date of Joining must be a valid Date greater than 1st January, 2005.


Since Appacitive uses a graph paradigm, a Relation can be considered to represent the different edges that can exist between two nodes. In a UML paradigm, a relation is like an Association between two classes.


NOTE: The presence of a Relation does not imply that two Objects are linked. To do so, a Connection must be explicitly created.