How do I choose between inclusion, referencing, and relationships?
Inclusion is recommended as the "default" choice and should be used in all cases where the information is hierarchical (e.g. if there is a containment relationship and the information is not represented somewhere else).
References are useful when the object of an association has a unique identity and appears in multiple places. However, schema designers should ensure that the object truly has identity, and not use references because the information happens to be the same. Using a reference conveys semantics about two subjects referencing the same object and should not be used as a tool to reduce the size of instances.
Relationships can be used under similar circumstances as references, but are particularly useful when the association is not already defined in the GJXDM. Relationships result in simpler extensions and more flexibility than extending GJXDM types to include new elements. However, using relationships requires the schema designer to choose names for the relationship (in cases where the association is not represented by an existing GJXDM property). As of this moment, there is no agreed upon standard for these names.
References or relationships potentially add complexity and memory consumption of software built to process instances, because the software must maintain a list of objects and their identifiers to re-establish association links as the instance is parsed.