From d6801d789c25b53d68bb30a8e981230280605e9f Mon Sep 17 00:00:00 2001 From: Victor Schappert Date: Mon, 19 Jun 2023 10:23:37 -0700 Subject: [PATCH] Write thorough docs on travel mode scoping --- .../docs/themes/transportation/index.mdx | 25 +- .../themes/transportation/scoping-rules.mdx | 7 +- .../themes/transportation/travel-modes.mdx | 270 ++++++++++++++++++ docusaurus/sidebars.js | 1 + .../transportation/travel-modes-legend.svg | 3 + .../transportation/travel-modes-taxonomy.svg | 3 + 6 files changed, 300 insertions(+), 9 deletions(-) create mode 100644 docusaurus/static/img/transportation/travel-modes-legend.svg create mode 100644 docusaurus/static/img/transportation/travel-modes-taxonomy.svg diff --git a/docusaurus/docs/themes/transportation/index.mdx b/docusaurus/docs/themes/transportation/index.mdx index 2a5e645f..8b68b028 100644 --- a/docusaurus/docs/themes/transportation/index.mdx +++ b/docusaurus/docs/themes/transportation/index.mdx @@ -75,12 +75,6 @@ page. - -
  • @@ -99,6 +93,25 @@ Read more about roads on the [Roads](roads) page.

  • +
  • + +

    + +**Travel Modes.** The Transportation theme supports a fuzzy concept called +travel mode which can be used as a way of controlling the scope of scoped +and rule-based properties. + +

    + +

    + +Read more about the travel modes concept and how travel modes interact +with other scoping properties on the [Travel Modes](travel-modes) page. + +

    + +
  • + ## Schema Reference diff --git a/docusaurus/docs/themes/transportation/scoping-rules.mdx b/docusaurus/docs/themes/transportation/scoping-rules.mdx index a1b9fc66..5b5d3a0c 100644 --- a/docusaurus/docs/themes/transportation/scoping-rules.mdx +++ b/docusaurus/docs/themes/transportation/scoping-rules.mdx @@ -21,7 +21,7 @@ The Overture Transportation theme's schema model of the transportation network uses two related concepts to capture the partial application of facts and rules: Scoped values, and Rule-based properties. -## Scoped values +## Scoped values and Scoping properties A *Scoped* value is a value which only applies within a limited scope. Most scoped values are rules in the rule lists of @@ -31,7 +31,7 @@ example a signpost property belonging to a road segment might be geometrically scoped to its position along the road. The scope in which a scoped value applies is controlled by one or more -special child properties of the value known as scoping properties. +special child properties of the value known as *Scoping* properties. ### Geometric scoping (linear referencing) @@ -174,7 +174,8 @@ listed travel modes. Conversely, the construct `when: { modeNot: [...] }` scopes the parent value to apply only when the traveller is *not* using one of the listed travel modes. -To dive deeper into this topic, see the page on Travel Modes. **TODO: Link.** +To dive deeper into this topic, see the page on +[Travel Modes](travel-modes). + +We live in a time of rapid technological and regulatory iteration in +the transportation space. The speed of change raises the possibility +that no matter how quickly we extend the travel modes recognized in the +Overture schema, the schema will always be behind the real world, at +least in some local areas and with regard to some technologies, customs, +or local rules. + +One possibility to keep the Overture schema maximally usable for users +who are mapping at the cutting edge is to allow custom extensions to +the list of travel modes. If we did this consistently with how extension +properties +work for features, we could, for example, allow travel mode names with +the `ext*` to be ignored by the schema validation rules. + +What do you think? + +### Internal consistency + +As alluded to [above](#vehicle-attribute-scoping-vehicle), there is some +overlap between the fuzzy concept of travel modes and vehicle attribute +scoping. We're aware of this overlap and view it as limited but +inevitable. + +Our intention is, however, to reduce or eliminate the overlap between +travel modes and the other +[similar scoping properties](#similar-scoping-properties-using-and-recognized) +(`using` and `recognized`). One area where we may have been unsuccessful +is the `emergency` travel mode in the [current taxonomy](#the-travel-modes-taxonomy). +Arguably, `emergency` should be removed from the taxonomy, and an +`asEmergencyResponder` should be included in the status values +enumeration for the `recognized` property. + +What are your suggestions relating to keeping the travel modes and other +scoping properties internally consistent and minimally overlapping? diff --git a/docusaurus/sidebars.js b/docusaurus/sidebars.js index 9258e663..76133fd9 100644 --- a/docusaurus/sidebars.js +++ b/docusaurus/sidebars.js @@ -68,6 +68,7 @@ const sidebars = { 'themes/transportation/shape-connectivity', 'themes/transportation/scoping-rules', 'themes/transportation/roads', + 'themes/transportation/travel-modes', ] } ] diff --git a/docusaurus/static/img/transportation/travel-modes-legend.svg b/docusaurus/static/img/transportation/travel-modes-legend.svg new file mode 100644 index 00000000..1f2073a5 --- /dev/null +++ b/docusaurus/static/img/transportation/travel-modes-legend.svg @@ -0,0 +1,3 @@ + + +
    Legend
    [Not supported by viewer]
    [group]
    [group]
    mode
    mode
    Conceptual grouping only, not present in schema
    Conceptual grouping only, not present in schema
    Supported travel mode
    Supported travel mode
    a
    a
    b
    b
    Mode b is contained in mode a
    [Not supported by viewer]
    \ No newline at end of file diff --git a/docusaurus/static/img/transportation/travel-modes-taxonomy.svg b/docusaurus/static/img/transportation/travel-modes-taxonomy.svg new file mode 100644 index 00000000..0364bdb4 --- /dev/null +++ b/docusaurus/static/img/transportation/travel-modes-taxonomy.svg @@ -0,0 +1,3 @@ + + +
    [any]
    [any]
    foot
    foot
    vehicle
    vehicle
    bicycle
    bicycle
    motorVehicle
    motorVehicle
    motorcycle
    motorcycle
    car
    car
    hov
    hov
    hgv
    hgv
    bus
    bus
    emergency
    emergency
    \ No newline at end of file