Relationships
Introduction
It is often useful to have direct relationships between entities, such as objects that have some (unstated) relationship to each other, inter-personal relationships that are too convoluted to express semantically, or just an arbitrary set of recommendations for other entities that might be of interest to a consuming application and its users. In order to manage such arbitrary, non-semantic relationships, the AttributeAssignment activity is used to convey this relationship, with the optional assigned_property
to give the relationship type if known.
Property Definitions
The relationship assignment data structure has the following properties.
Properties of Assignments
Property Name | Datatype | Requirement | Description |
---|---|---|---|
id |
string | Optional | If present, the value MUST be a URI identifying the assignment, from which a representation of the assignment can be retrieved |
type |
string | Required | The class for the assignment, which MUST be the value "AttributeAssignment" |
_label |
string | Recommended | A human readable label for the assignment, intended for developers |
_complete |
boolean | Optional | Non-Semantic. If there is an id property with a URI, and there is more information about the attribute assignment available from the representation at that URI, then _complete MUST be present with a value of false to inform the consuming application that it might want to retrieve it |
identified_by |
array | Recommended | An array of json objects, each of which is a name of the assignment and MUST follow the requirements for Name, or an identifier for the assignment and MUST follow the requirements for Identifier |
classified_as |
array | Recommended | An array of json objects, each of which is a further classification of the assignment and MUST follow the requirements for Type |
referred_to_by |
array | Optional | An array of json objects, each of which is an embedded statement about the assignment |
carried_out_by |
array | Optional | An array of json objects, each of which is a reference to a Person or Group which made the assignment |
timespan |
json object | Optional | A json object which describes when the relationship was assigned, and MUST follow the requirements for timespans |
during |
array | Optional | An array of json objects, each of which is a reference to a Period during which the Assignment occured |
before |
array | Optional | An array of json objects, each of which is a reference to a Period, Event or Activity before which this Assignment occured |
after |
array | Optional | An array of json objects, each of which is a reference to a Period, Event or Activity after which this Assignment occured |
influenced_by |
array | Optional | An array of json objects, each of which is a reference to another entity which influenced or motivated the assignment |
caused_by |
array | Optional | An array of json objects, each of which is a reference to an Event that caused the assignment to occur |
used_specific_object |
array | Optional | An array of json objects, each of which is a reference to another endpoint that was instrumental in the assignment |
technique |
array | Optional | An array of json objects, each of which is a technique used in the assignment and MUST follow the requirements for Type |
assigned |
array | Required | An array of json objects, each of which is a reference to another entity that is related to the current one (SHOULD NOT be used with Dimension or Identifier assignments) |
assigned_property |
string | Optional | A string which is either a URI, or resolves to a URI via a context document, for the specific relationship between the main entity and the entity referenced in assigned |
Property Diagram
Incoming Properties
Relationship Assignment instances are typically found as the object of the following properties. This list is not exhaustive, but is intended to cover the likely cases.
Property Name | Source Endpoint | Description |
---|---|---|
attributed_by |
All Endpoints | A list of Relationship Assignments for the entity |
assigned_by |
Dimension, Identifer | The activity of assigning the dimension or identifier to the entity |
Example
A Human-Made Object instance:
{
"@context": "https://linked.art/ns/v1/linked-art.json",
"id": "https://linked.art/example/object/5",
"type": "HumanMadeObject",
"_label": "Painting of a Fish",
"attributed_by": [
{
"type": "AttributeAssignment",
"classified_as": [
{
"id": "http://example.org/types/recommending",
"type": "Type",
"_label": "Recommendation"
}
],
"identified_by": [
{
"type": "Name",
"classified_as": [
{
"id": "http://vocab.getty.edu/aat/300404669",
"type": "Type",
"_label": "Display Title"
}
],
"content": "Related Object: Another Painting of a Fish"
}
],
"carried_out_by": [
{
"id": "https://linked.art/example/person/1",
"type": "Person",
"_label": "Curator"
}
],
"assigned": [
{
"id": "https://linked.art/example/object/6",
"type": "HumanMadeObject",
"_label": "Another Painting of a Fish"
}
]
}
]
}