Relationships

From OpenStreetMap Wiki
Jump to: navigation, search

The world is complex. When starting with a technical solution for a database model the options explode. And with these options the amount of discussion caused.

Rather than taking the approach to model the world with a database approach, here is the aim to understand and explain the "world" as non-technical people would describe how they deal with the relationships. Also here are anomalies of relationships collected.

Deriving from these identified relationships technical representations of the relationships, is a subsequent (later) step which requires the discussion of the advantages and disadvantages of the technical solutions from various perspectives.

This page might contain obvious knowledge - this is intended as leads us to hopefully to the simplest, least controversial model we can build. It also hopefully with help us to gather common understanding and provide us insight on the difference of different countries.

This is not intended as a duplicate to the page "Advanced relationships".

Contents

Relationship Overview

No Relation Type Element A At Element B Conditions Directional Symmetric Splittable Explicit/Implicit
1 Turn Restriction (from) Street Crossing (to) Street Time,
Vehicle Type,
Height,
Width
Yes No No Explicit
2 House Number House Number
or
House Number Range
- Street None,
Odd Numbers
, or Even House Numbers
No No Yes Explicit
3 ZIP-Code House Number & Street Name & City Name - ZIP-Code None No No Yes Implicit
4 Same Street Name Street - Street No No Yes Yes  ?
4 Name of a Dual Carriageway belongs to 2 Carriageways Carriageway A - Carriageway B No No Yes Yes  ?



Attribute descriptions

Relation Type

This column descibes the name of relation.

Conditions

Some relations have conditions, upon which they apply.

E.g.:

A turn restriction may only apply for trucks.

A ZIP-code may only apply for the right side of the street.

Directional

Either relations are:

Uniderectional: - E.g. A turn restriction is [[#Directional|directional], as it applies only from the start way to the to way.

or

Bidrectional: - E.g. if the STREET NAME is identical to both STREETS, it applies to booth STREETS.



Symmetric

Unsure if this attribute is always identcal with the attribute Relation Directional.



Splittable

The relation Splittable is only used with ways.

A relation is considered as Splittable, if the relation after splitting of the way applies to both parts of the splitted way.

A relation is considered as Unsplittable, if the relation after splitting of the way applies to one part of the splitted way.

E.g.: - If a way is splitted, the ZIP-code applies after splitting the STREET to both sections of the STREET. - If a way is splitted, the HOUSE NUMBER applies after splitting the way only to one of the two sections of the splitted STREET.



Explicit/Implicit

Please explain what that attribute means.

Relations

STREET has same name as STREET

Typical usage scenario:


Scenario:


Relationship required for the following use cases:


Anomalies:

A STREET belongs to a COUNTRY and a ZIP CODE

Typical usage scenario:


Scenario:


Relationship required for the following use cases:


Relationship required for:


Example:


Anomalies:

A STREET belongs to a VILLAGE, a CITY or COUNCIL

Typical usage scenario:


Note: Usually also villages or cities belong to an administration council


Scenario:


Relationship required for the following use cases:


Anomalies:

A HOUSE is located at a STREET and has a one or more HOUSE NUMBER(S)

Typical usage scenario:


Scenario:

Relationship required for the following use cases:


Anomalies:


See Proposed_features/House_numbers for the current discussion on this topic.

Turn Restriction from a STREET at a CROSSING into a STREET

Typical usage scenario:

Scenario:

Relationship required for the following use cases:


Anomalies:



Name of a Dual Carriageway belongs to CARRIAGEWAY A and CARRIAGEWAY B

Typical usage scenario:

Scenario:

Relationship required for the following use cases:


Anomalies:

Personal tools
Namespaces
Variants
Actions
site
Toolbox