Skip to main content

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 a to_id. The from_id contains all of the unique ids of the source dataset. The to_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:

flowchart image

info
  • 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.