Life Cycle modeling in OpenHistoricalMap
Richard Welty, SOTM US 2022
Life Cycle Modeling in OHM
• Substantially more complex than anything anyone is trying in OpenStreetMap
• Proposals have been made for OSM but not gone anywhere
• limited motivation given OSM focus on Now
• after all, we have an OHM for that
Time in OHM
• integral to Life Cycle
• but I’ll talk about it in a lightning talk tomorrow(?)
• assume we’re using something related to ISO 8601-01 and -02
• potential for historic and/or non-ISO times in the future
• we are focused on the times in tags, not internal to the vector renderer
Life Cycle mapping brings complexity
• Not any way to avoid complexity
• We have to decide, then, how we will represent and deal with it
• Complexity impacts both mappers and data consumers
• easy for one may not be easy for the other
Ground Rules
• OpenHistoricalMap uses OSM data schema
• nodes, ways, relations, tags
• tagging is broadly compatible
Common OSM Life Cycle
• fine for what OSM uses it for
• OSM also has things like the disused namespace
• all built around the idea of *now*
• Does not handle OHM levels of complexity
highway=construction
construction=primary
Alternate Approaches:
Duplicate Geometry
• Can be challenging to edit with current tools
• Can be challenging to even spot with current tools
• Potential to be made easier with well conceived extensions and/or plugins
• Sometimes unavoidable in contexts with dense histories
Alternate Approach:
Lifecycle Encoding in the key
• abandoned OSM proposal
• embed date information in key side of key/value pair
name:2005-2010=My Name
• could generalize to any key value
Alternate Approach:
Lifecycle Encoding in the key
• Issues
• hard to search via overpass or other means
• stress on data consumer side
• compatibility issues with both start_date specs and with ISO 8601/EDTF
• database people don’t like stashing data on the key side of a KV pair
Alternate Approach:
Life Cycle with Relations
• Failed OSM proposal
• Treat life cycle data as metadata to be decoupled from geometry
• Carry start_date and end_date in relations
• Being actively experimented with in OHM
Alternate Approach:
Life Cycle with Relations
• Cannot eliminate complexity - but we can move it
• Instead of sorting through a thicket of complex keys, traverse a graph of
relations, ways, nodes
• We may not need a new relation type - we can add start_date and end_date to
any existing relation type
• There maybe other reasons for a generic “group” relation type
First Experiment - Ghost Tracks
First Experiment - Ghost Tracks
• uses abandoned proposal for “circuit” relation type (abandoned, but in use)
• same in OSM and OHM (except OHM adds end_date)
• leaflet widget treats data returned by overpass the same for OSM & OHM
• NOTE: the OHM rendering engine is *not* the only data consumer and it is not
the only viable view of OHM data
New Experiments
• “Life Cycle Laboratory”
• try extending these concepts to other kinds of entities?
• Easy start by adding start_date and end_date to existing OSM relation types
• OHM rendering engine support is evolving, some works and some doesn’t
• Useful for figuring out things to ask for
NYS Canal System
• Uses waterway tagging (relations & ways)
• Relation complexity increases substantially with size and complexity over time
• Erie Canal was substantially improved between 1837 and 1862
• changed from year to year
• Need to consider better tool support
• https://www.openhistoricalmap.org/#map=15/42.7818/-
73.7050&layers=O&date=1900&daterange=1783,1900
Life Cycle Visualization
Life Cycle Visualization
Events?
• Potential to model historical events
• Voyages
• Military battles & campaigns
• Same DB or a parallel DB?
• I’m experimenting in the existing OHM DB for now

Life Cycle Modeling in OpenHistoricalMap

  • 1.
    Life Cycle modelingin OpenHistoricalMap Richard Welty, SOTM US 2022
  • 4.
    Life Cycle Modelingin OHM • Substantially more complex than anything anyone is trying in OpenStreetMap • Proposals have been made for OSM but not gone anywhere • limited motivation given OSM focus on Now • after all, we have an OHM for that
  • 5.
    Time in OHM •integral to Life Cycle • but I’ll talk about it in a lightning talk tomorrow(?) • assume we’re using something related to ISO 8601-01 and -02 • potential for historic and/or non-ISO times in the future • we are focused on the times in tags, not internal to the vector renderer
  • 6.
    Life Cycle mappingbrings complexity • Not any way to avoid complexity • We have to decide, then, how we will represent and deal with it • Complexity impacts both mappers and data consumers • easy for one may not be easy for the other
  • 7.
    Ground Rules • OpenHistoricalMapuses OSM data schema • nodes, ways, relations, tags • tagging is broadly compatible
  • 8.
    Common OSM LifeCycle • fine for what OSM uses it for • OSM also has things like the disused namespace • all built around the idea of *now* • Does not handle OHM levels of complexity highway=construction construction=primary
  • 9.
    Alternate Approaches: Duplicate Geometry •Can be challenging to edit with current tools • Can be challenging to even spot with current tools • Potential to be made easier with well conceived extensions and/or plugins • Sometimes unavoidable in contexts with dense histories
  • 10.
    Alternate Approach: Lifecycle Encodingin the key • abandoned OSM proposal • embed date information in key side of key/value pair name:2005-2010=My Name • could generalize to any key value
  • 11.
    Alternate Approach: Lifecycle Encodingin the key • Issues • hard to search via overpass or other means • stress on data consumer side • compatibility issues with both start_date specs and with ISO 8601/EDTF • database people don’t like stashing data on the key side of a KV pair
  • 12.
    Alternate Approach: Life Cyclewith Relations • Failed OSM proposal • Treat life cycle data as metadata to be decoupled from geometry • Carry start_date and end_date in relations • Being actively experimented with in OHM
  • 13.
    Alternate Approach: Life Cyclewith Relations • Cannot eliminate complexity - but we can move it • Instead of sorting through a thicket of complex keys, traverse a graph of relations, ways, nodes • We may not need a new relation type - we can add start_date and end_date to any existing relation type • There maybe other reasons for a generic “group” relation type
  • 14.
    First Experiment -Ghost Tracks
  • 15.
    First Experiment -Ghost Tracks • uses abandoned proposal for “circuit” relation type (abandoned, but in use) • same in OSM and OHM (except OHM adds end_date) • leaflet widget treats data returned by overpass the same for OSM & OHM • NOTE: the OHM rendering engine is *not* the only data consumer and it is not the only viable view of OHM data
  • 16.
    New Experiments • “LifeCycle Laboratory” • try extending these concepts to other kinds of entities? • Easy start by adding start_date and end_date to existing OSM relation types • OHM rendering engine support is evolving, some works and some doesn’t • Useful for figuring out things to ask for
  • 18.
    NYS Canal System •Uses waterway tagging (relations & ways) • Relation complexity increases substantially with size and complexity over time • Erie Canal was substantially improved between 1837 and 1862 • changed from year to year • Need to consider better tool support • https://www.openhistoricalmap.org/#map=15/42.7818/- 73.7050&layers=O&date=1900&daterange=1783,1900
  • 19.
  • 20.
  • 21.
    Events? • Potential tomodel historical events • Voyages • Military battles & campaigns • Same DB or a parallel DB? • I’m experimenting in the existing OHM DB for now