Relationship
Definition
A Relationship models the physical or conceptual association between two map elements as an edge, with the optional inclusion of an intermediary element that plays a contributing contextual role in the relationship. The semantic intent of a Relationship is determined by the nature of the referenced elements and their respective roles in the map itself.
Feature Structure
- Relationship objects are Feature objects and MAY be unlocated
- Relationship objects MUST have an
"id"
member with aFEATURE-ID
value - Relationship objects MUST have a
"feature_type"
member with the value"relationship"
- Relationship objects MUST have a
"geometry"
member with anull
orGEOMETRY
value
Property Keys
Property | Type | Description |
---|---|---|
category |
RELATIONSHIP-CATEGORY |
The category that best describes the Relationship. |
direction |
"directed" or "undirected" |
Directionality of declared Relationship from origin to destination |
origin |
null or FEATURE-REFERENCE |
Reference to Feature serving as the origin element in the Relationship |
intermediary |
null or JSON array of FEATURE-REFERENCE |
Reference to Feature(s) serving as the intermediary element(s) in the Relationship |
destination |
null or FEATURE-REFERENCE |
Reference to Feature serving as the destination element of the Relationship |
hours |
null or HOURS |
Hours of operation constraining temporal applicability of destination from origin (via intermediary ) |
Example
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "traversal",
"direction": "directed",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "unit"
},
"intermediary": [{
"id": "33333333-3333-3333-3333-333333333333",
"feature_type": "opening"
}],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "unit"
}
}
}
Guidance
- Associations modeled as Relationship features MAY be physical or conceptual in nature
- SHOULD be used to model the directed path through an
intermediary
Opening marked as"directed"
- SHOULD be used to model the directed path through Units that support a vertical traversal capability
- SHOULD be used to model the vertical traversal path of an elevator by associating
"elevator"
Units present on different Levels of a Building - MAY be used to model a curated route between two map elements by providing a
LINEAL
geometry
Property Capturing Rules
ORIGIN
- MUST be specified if destination is
null
DESTINATION
- MUST be specified if origin is
null
INTERMEDIARY
- Restrictions, access control and temporal constraints associated with a declared intermediary MUST be considered applicable to a traversal path, and are typically the motivating factor for Relationship definition (i.e. indicating direction of travel through a unidirectional Opening or along a Unit capturing the physical footprint of an escalator)
DIRECTION
-
MUST be declared as
"undirected"
if the declared association betweenorigin
anddestination
is bidirectional in nature, considered irrelevant or explicitly prohibited by the nature of the association or other contextually relevant restrictionsWhile an undirected relationship renders the ordering of
origin
anddestination
effectively irrelevant, map makers SHOULD NOT arbitrarily swap these values upon redelivery of the same Relationship feature to avoid spurious change detection.
HOURS
- MAY be captured to describe temporal variances in criteria, i.e. alternate curated routes with different
LINEAL
geometries based on time of day
Geometry Capturing Rules
- MAY be assigned a geometry value to associate a spatial aspect to the relationship being captured, but are unlocated by default
- SHOULD NOT be assumed to be or treated as a map element displayed by default in a mapping application, but rather as a special purpose aspect to be used for tailored use cases or task specific purposes
- SHOULD be
null
when no curated spatial representation of the declared association betweenorigin
anddestination
exists or is required
Use Cases
Below are the permissible combinations of feature references in a Relationship record and a description of the connectivity they represent or imply.
Convention | Description |
---|---|
O - ∅ ⟶ D |
Directed association or traversal from Origin to Destination |
O - ∅ - D |
Undirected association or traversal between Origin and Destination |
O - I ⟶ D |
Directed association or traversal from Origin to Destination via Intermediary |
O - I - D |
Undirected association or traversal between Origin and Destination via Intermediary |
∅ - I ⟶ D |
Directed association or traversal from conceptual location outside of the scope of the map to Destination via Intermediary |
O - I ⟶ ∅ |
Directed association or traversal from Origin to location outside of the scope of the map via Intermediary |
Unidirectional Door
Convention O - I ⟶ D
-
Unidirectional travel though an Opening MUST be captured with the following elements:
- MUST have
category
"traversal"
- MUST be declared as
"directed"
- MUST reference an Opening as the intermediary
- MUST reference the Units on either side of the Opening as origin and destination
- SHOULD have a
"geometry"
value ofnull
- MUST have
Scenario One
A pedestrian is only permitted to traverse from the origin (Unit) to the destination (Unit), via an intermediary (Opening).
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "traversal",
"direction": "directed",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "unit"
},
"intermediary": [{
"id": "33333333-3333-3333-3333-333333333333",
"feature_type": "opening"
}],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "unit"
}
}
}
Scenario Two
A pedestrian is only permitted to traverse from the origin (Unit) to a destination (Unit) via two (2) intermediaries (Openings). Each Relationship is captured separately.
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "traversal",
"direction": "directed",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "unit"
},
"intermediary": [{
"id": "33333333-3333-3333-3333-333333333333",
"feature_type": "opening"
}],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "unit"
}
}
}
{
"id": "99999999-9999-9999-9999-999999999999",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "traversal",
"direction": "directed",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "unit"
},
"intermediary": [{
"id": "55555555-5555-5555-5555-555555555555",
"feature_type": "opening"
}],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "unit"
}
}
}
Convention ∅ - I ⟶ D
-
Unidirectional travel though an Opening MUST be captured with the following elements:
- MUST have
category
"traversal"
- MUST be declared as
"directed"
- MUST reference an Opening as the intermediary
- MUST reference the destination Unit adjacent to the Opening
- SHOULD have a
"geometry"
value ofnull
- MUST have
Scenario Three
A pedestrian is only permitted to traverse from "...outside the scope of the map..." to the destination (Unit), via an intermediary (Opening).
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "traversal",
"direction": "directed",
"hours": null,
"origin": null,
"intermediary": [{
"id": "33333333-3333-3333-3333-333333333333",
"feature_type": "opening"
}],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "unit"
}
}
}
-
Bi-directional travel though an Opening MUST be captured with the following elements:
- MUST have
category
"traversal"
- MUST be declared as
"undirected"
- MUST reference an Opening as the intermediary
- MUST reference the destination Unit adjacent to the Opening
- SHOULD have a
"geometry"
value ofnull
- MUST have
Scenario Four
A pedestrian is permitted to traverse from "...outside the scope of the map..." to the destination (Unit), via an intermediary (Opening), and vice-versa.
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "traversal",
"direction": "undirected",
"hours": null,
"origin": null,
"intermediary": [{
"id": "33333333-3333-3333-3333-333333333333",
"feature_type": "opening"
}],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "unit"
}
}
}
Convention O - I ⟶ ∅
-
Unidirectional travel though an Opening MUST be captured with the following elements:
- MUST have
category
"traversal"
- MUST be declared as
"directed"
- MUST reference an Opening as the intermediary
- MUST reference the origin Unit adjacent to the Opening
- SHOULD have a
"geometry"
value ofnull
- MUST have
Scenario Five
A pedestrian is only permitted to traverse from an origin (Unit) to "... a location outside the scope of the map..." , via an intermediary (Opening).
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "traversal",
"direction": "directed",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "unit"
},
"intermediary": [{
"id": "33333333-3333-3333-3333-333333333333",
"feature_type": "opening"
}],
"destination": null
}
}
Ramp
Convention O - I ⟶ D
-
Unidirectional travel through Openings MUST be captured with the following elements:
- MUST have
category
"ramp"
- MUST be declared as
"directed"
- MUST reference the
"ramp"
Units as the intermediaries - MUST reference the Openings as the origin and destination
- SHOULD have a
"geometry"
value ofnull
- MUST have
Scenario One
A Ramp that provides a vertical traversal capability between different Levels. A pedestrian is only permitted to traverse from the origin (Opening) to the destination (Opening).
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "ramp",
"direction": "directed",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "opening"
},
"intermediary": [
{
"id": "55555555-5555-5555-5555-555555555555",
"feature_type": "unit"
},
{
"id": "66666666-6666-6666-6666-666666666666",
"feature_type": "unit"
}
],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "opening"
}
}
}
Convention O - I - D
-
Bi-directional travel through Openings MUST be captured with the following elements:
- MUST have
category
"ramp"
- MUST be declared as
"undirected"
- MUST reference the
"ramp"
Units as the intermediaries - MUST reference Openings as the origin and destination
- SHOULD have a
"geometry"
value ofnull
- MUST have
Scenario Two
A Ramp that provides a vertical traversal capability between different Levels. A pedestrian is permitted to traverse from the origin (Opening) to the destination (Opening), and vice-versa.
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "ramp",
"direction": "undirected",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "opening"
},
"intermediary": [
{
"id": "55555555-5555-5555-5555-555555555555",
"feature_type": "unit"
},
{
"id": "66666666-6666-6666-6666-666666666666",
"feature_type": "unit"
}
],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "opening"
}
}
}
Scenario Three
A Ramp that provides a vertical traversal capability between different Levels. A pedestrian is permitted to traverse from the origin (Opening) to two (2) destinations (Openings), and vice-versa. Each Relationship is captured separately.
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "ramp",
"direction": "undirected",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "opening"
},
"intermediary": [
{
"id": "55555555-5555-5555-5555-555555555555",
"feature_type": "unit"
},
{
"id": "66666666-6666-6666-6666-666666666666",
"feature_type": "unit"
}
],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "opening"
}
}
}
{
"id": "99999999-9999-9999-9999-999999999999",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "ramp",
"direction": "undirected",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "opening"
},
"intermediary": [
{
"id": "55555555-5555-5555-5555-555555555555",
"feature_type": "unit"
},
{
"id": "66666666-6666-6666-6666-666666666666",
"feature_type": "unit"
}
],
"destination": {
"id": "77777777-7777-7777-7777-777777777777",
"feature_type": "opening"
}
}
}
Escalator
Convention O - I ⟶ D
-
Unidirectional travel along an Escalator MUST be captured with the following elements:
- MUST have
category
"escalator"
- MUST be declared as
"directed"
- MUST reference the
"escalator"
Units as the intermediaries - MUST reference the Opening representing the kick plate at the entry of the escalator as the origin
- MUST reference the Opening representing the kick plate at the exit of the escalator as the destination
- SHOULD have a
"geometry"
value ofnull
- MUST have
Scenario One
An Escalator that provides a vertical traversal capability between different Levels. A pedestrian is only permitted to traverse from the origin (Opening) to the destination (Opening). In this particular case, the mechanical device operates in a single direction of travel during all hours.
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "escalator",
"direction": "directed",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "opening"
},
"intermediary": [
{
"id": "55555555-5555-5555-5555-555555555555",
"feature_type": "unit"
},
{
"id": "66666666-6666-6666-6666-666666666666",
"feature_type": "unit"
}
],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "opening"
}
}
}
Scenario Two
A set of Escalators that provides a vertical traversal capability between different Levels. A pedestrian is only permitted to traverse from the origin (Opening) to the destination (Opening). In this particular case, the mechanical devices operate in a single direction of travel during all hours.
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "escalator",
"direction": "directed",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "opening"
},
"intermediary": [
{
"id": "55555555-5555-5555-5555-555555555555",
"feature_type": "unit"
},
{
"id": "66666666-6666-6666-6666-666666666666",
"feature_type": "unit"
},
{
"id": "77777777-7777-7777-7777-777777777777",
"feature_type": "unit"
},
{
"id": "88888888-8888-8888-8888-888888888888",
"feature_type": "unit"
}
],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "opening"
}
}
}
Scenario Three
An Escalator that provides a vertical traversal capability between different Levels. A pedestrian is only permitted to traverse from the origin (Opening) to the destination (Opening) during the specified Hours of 5.00 AM until 11.59 AM.
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "escalator",
"direction": "directed",
"hours": "Mo-Su 05:00-11:59",
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "opening"
},
"intermediary": [
{
"id": "55555555-5555-5555-5555-555555555555",
"feature_type": "unit"
},
{
"id": "66666666-6666-6666-6666-666666666666",
"feature_type": "unit"
}
],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "opening"
}
}
}
Scenario Four
When the direction of travel varies over a period of time, and these temporal qualities are desirable for capture, then each Relationship must be captured separately.
In this second illustration, a pedestrian is only permitted to traverse from the origin (Opening) to the destination (Opening) during the specified Hours of 12.00 noon until 4.59 AM. During the hours 5.00 AM until 11.59 AM, the prior scenario applies.
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "escalator",
"direction": "directed",
"hours": "Mo-Su 12:00-04:59",
"origin": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "opening"
},
"intermediary": [
{
"id": "55555555-5555-5555-5555-555555555555",
"feature_type": "unit"
},
{
"id": "66666666-6666-6666-6666-666666666666",
"feature_type": "unit"
}
],
"destination": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "opening"
}
}
}
Elevator
Convention O - I - D
-
Elevator traversal SHOULD be captured with the following elements:
- MUST have
category
"elevator"
- MUST be declared as
"undirected"
- MUST reference the
"elevator"
Units as the intermediaries - MUST reference the Units as the origin and destination
- SHOULD have a
"geometry"
value ofnull
- MUST have
Scenario One
An Elevator that provides a vertical traversal capability between different Levels.
Data View
{
"id": "11111111-1111-1111-1111-111111111111",
"type": "Feature",
"feature_type": "relationship",
"geometry": null,
"properties": {
"category": "elevator",
"direction": "undirected",
"hours": null,
"origin": {
"id": "22222222-2222-2222-2222-222222222222",
"feature_type": "unit"
},
"intermediary": [{
"id": "55555555-5555-5555-5555-555555555555",
"feature_type": "unit"
}],
"destination": {
"id": "44444444-4444-4444-4444-444444444444",
"feature_type": "unit"
}
}
}
Note: It is not necessary to describe each destination's Relationship with other Elevator Units. These Relationships can be systematically derived.
Curated Path
-
Curated paths between two map elements MAY be represented as associations between an origin and destination feature.
- MAY be declared as either
"directed"
or"undirected"
- MUST contain both an origin and destination
- MAY contain an intermediary when relevant
- MUST contain a
"geometry"
with aLINEAL
value representing the curated path from a pedestrian perspective
- MAY be declared as either
WARNING: Curated paths defined in this manner are NOT intended for use in defining a comprehensive routing network within a venue and MUST NOT be assumed to be used by default, or even at all, by existing routing systems. Any curated paths provided in a venue delivery MUST be viewed as "hints" or supplementary information that MAY be used when and where appropriate.