Linking Relationships
What are Linking Relationships?โ
A linking relationship is a way of connecting nodes in one dataset to corresponding nodes in another dataset.
In a linking relationship a dataset can function as a source, linking, or target dataset.
Within a linking relationship a node may be linked on a one to one basis e.g. people linked the position they hold, a one to many basis e.g. people linked to the activities they conduct, or even a many to one relationship e.g. activities linked to the people that conduct them
You can think of this as:
- A source dataset will point to a "link" and a "target".
- A linking dataset will point to a "source" and a "target".
- A target dataset will point to a "source" and a "link".
Types of datasets in a linking relationship:
- Source Dataset: The base dataset.
- Linking Dataset: A dataset that links two datasets together by their id properties. It contains a list of nodes which contain a
from_id
and ato_id
. Thefrom_id
contains all of the unique ids of the source dataset. Theto_id
, contains a unique id from the target dataset that corresponds to a node in the source dataset. - Target Dataset: The dataset that is being joined to the source dataset.
Concept of Multiple Linking Relationships on a different datasetโ
A linking dataset will only ever contain objects to the Source and Target Datasets. However, source and target datasets can belong in multiple linking relationships, each with a unique linking dataset.
For Example:
- One common form of linking relationship is people to positions. This maps people in your organization to what jobs they currently hold, or may hold in the future.
- The same people dataset may also link people in your organization to a competencies dataset in order to understand what skills and knowledge members of your organization posses.
Example object:
"linkingRelationships":[
"source": {
"datasetId": "FC6408E5-601A-7E75-2AE8-EB6052BDAF9B",
"name": "...",
"type": "PEOPLE"
},
"target": {
"datasetId": "8F88296A-DE1D-FABD-9120-507304A972B1",
"name": "...",
"type": "POSITIONS"
},
]
How to handle linking relationships within the APIโ
If a dataset has one or more linking relationships, objects representing the linked datasets will be present in a list corresponding to the linkingRelationships
key within the HATEOAS response. These dataset objects contain all the information you should need to make your next request.