Skip to content

Commit 48bd397

Browse files
authored
Merge pull request #4 from openmobilityfoundation/dev
Dev merge
2 parents 440637b + c82637c commit 48bd397

8 files changed

Lines changed: 78 additions & 43 deletions

File tree

MDS-state-machine-diagram.svg

Lines changed: 1 addition & 0 deletions
Loading

README.md

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,10 @@ You can also get involved in development by joining an OMF working group. The wo
3030
Working Group | Mailing List | Description
3131
--- | --- | ---
3232
Provider Services | [mds-provider-services](https://groups.google.com/a/groups.openmobilityfoundation.org/forum/#!forum/mds-provider-services) | Manages the [`provider`][provider] API within MDS.
33-
City Services | [mds-city-services](https://groups.google.com/a/groups.openmobilityfoundation.org/forum/#!forum/mds-city-services) | Manages the [`agency`][agency] and [`policy`][policy] APIs within MDS, as well as the [`mds-core`](https://github.com/openmobilityfoundation/mds-core) reference implementation.
33+
City Services | [mds-city-services](https://groups.google.com/a/groups.openmobilityfoundation.org/forum/#!forum/mds-city-services) | Manages the [`agency`][agency] and [`policy`][policy] APIs within MDS, as well as the [`mds-core`](https://github.com/openmobilityfoundation/mds-core) and [`mds-compliance-mobile`](https://github.com/openmobilityfoundation/mds-compliance-mobile) reference implementations.
3434

3535
You can view info about past releases and planning calls in the [wiki](https://github.com/openmobilityfoundation/mobility-data-specification/wiki).
3636

37-
3837
For questions about MDS please contact [info@openmobilityfoundation.org](mailto:info@openmobilityfoundation.org). Media inquiries to [media@openmobilityfoundation.org](mailto:media@openmobilityfoundation.org)
3938

4039
## Versions
@@ -49,15 +48,38 @@ Information about the latest release and all releases are below. Please note, yo
4948

5049
## Cities Using MDS
5150

52-
More than 80 cities and public agencies around the world use MDS, and it has been implemented by most major mobility providers. Below are links to some specific agency programs/policies:
53-
54-
* Los Angeles: The rules and guidelines for the Los Angeles Dockless Bikeshare Systems / Pilot Program can be found on [Council Clerk Connect](https://cityclerk.lacity.org/lacityclerkconnect/index.cfm?fa=ccfi.viewrecord&cfnumber=17-1125) along with supporting info on [ladot.io](https://ladot.io/programs/dockless/).
55-
* Santa Monica: The rules and guidelines for the Santa Monica Shared Mobility Pilot Program can be found at https://www.smgov.net/sharedmobility.
56-
* Austin: The rules and guidelines for Austin's Micromobility Program can be found at https://austintexas.gov/micromobility.
57-
* Ulm: A draft of the guidelines can be found at [the city's GitHub presence](https://github.com/stadtulm/mds-zonen).
51+
More than 90 cities and public agencies around the world use MDS, and it has been implemented by most major mobility providers. Below are links to some of the specific agency programs/policies:
52+
53+
* **Arlington, VA**: [Shared Micro-Mobility Devices](https://transportation.arlingtonva.us/scooters-and-dockless-bikeshare/) page and [permit application](https://arlingtonva.s3.amazonaws.com/wp-content/uploads/sites/19/2019/12/Micro-Mobility_Permit_Final_191203.pdf).
54+
* **Atlanta, GA**: [Administrative Regulations
55+
for Shareable Dockless Mobility Device Permit Holders](https://www.atlantaga.gov/home/showdocument?id=44650) from [Department of City Planning](https://www.atlantaga.gov/government/departments/city-planning).
56+
* **Austin, TX**: The rules and guidelines for Austin's Micromobility Program can be found on Austin's [Shared Mobility Program](https://austintexas.gov/department/shared-mobility-services) website.
57+
* **Calgary, Canada**: Programs for a [Dockless Bike Share Pilot](https://www.calgary.ca/transportation/tp/cycling/cycling-strategy/bike-share-system.html?redirect=/bikeshare) and a [hared electric scooter pilot](https://www.calgary.ca/transportation/tp/cycling/cycling-strategy/shared-electric-scooter-pilot.html) that require [MDS in the application](https://www.calgary.ca/content/dam/www/transportation/tp/documents/cycling/cycling_strategy/framework-for-dockless-bike-share-permit-phase-2.pdf) and programs.
58+
* **Chicago, IL**: [E-Scooter Share Pilot Program](https://www.chicago.gov/city/en/depts/cdot/supp_info/escooter-share-pilot-project.html) information.
59+
* **Denver, CO**: [Dockless Mobility Vehicle Pilot Permit Program](https://www.denvergov.org/content/denvergov/en/transportation-infrastructure/programs-services/dockless-mobility.html) in the [Department of Transportation & Infrastructure](https://www.denvergov.org/content/denvergov/en/transportation-infrastructure.html).
60+
* **Detroit, MI**: See the Public Works [Scooter Page[(https://detroitmi.gov/departments/department-public-works/complete-streets/scooters) and the [Dockless Scooters Interpretation](http://www.detroitmi.gov/Portals/0/docs/DPW/Dockless%20Scooters%20Memo%20of%20Interpretation_Final%20Version%207%2020%2018_1.pdf)
61+
* **Kansas City, MO**: [Scooter and e-Bike Pilot Program](https://www.kcmo.gov/programs-initiatives/scooters-and-ebikes) document.
62+
* **Kelowna, Canada**: [Bikeshare Permit Program](https://www.kelowna.ca/roads-transportation/active-transportation/cycling/bikeshare-permit-program) and operator application.
63+
* **Los Angeles, CA**: The rules and guidelines for the Los Angeles Dockless Bikeshare Systems / Pilot Program can be found on [Council Clerk Connect](https://cityclerk.lacity.org/lacityclerkconnect/index.cfm?fa=ccfi.viewrecord&cfnumber=17-1125) along with supporting info on [ladot.io](https://ladot.lacity.org/projects/transportation-services/shared-mobility/micromobility).
64+
* **Louisville, KY**: City [Dockless Vehicle Policy](https://data.louisvilleky.gov/dataset/dockless-vehicles/resource/541f050d-b868-428e-9601-c48a04eba17c) and [Public Works Guideance](https://louisvilleky.gov/government/public-works/dockless-find-and-ride-vehicles).
65+
* **Nashville, TN**: [Mobility Devices Bill](https://www.nashville.gov/Metro-Clerk/Legislative/Ordinances/Details/7d2cf076-b12c-4645-a118-b530577c5ee8/2015-2019/BL2018-1202.aspx).
66+
* **Miami, FL**: [Miami Scooter Program](https://www.miamigov.com/Services/Transportation/Miami-Scooter-Pilot-Program?BestBetMatch=scooters|d13b95b2-5146-4b00-9e3e-a80c73739a64|4f05f368-ecaa-4a93-b749-7ad6c4867c1f|en-US).
67+
* **Minneapolis, MN**: [Motorized Foot Scooters](http://www.minneapolismn.gov/www/groups/public/@publicworks/documents/webcontent/wcmsp-218311.pdf) and [Mobility Data Methodology and Analysis](http://www.minneapolismn.gov/publicworks/trans/WCMSP-212816).
68+
* **Philadelphia, PA**: [Dockless Bike Share Pilot](http://www.phillyotis.com/portfolio-item/dockless-bike-share-pilot/) and regulations.
69+
* **Pittsburgh, PA**: The city's [Bike+ Master Plan](https://pittsburghpa.gov/domi/bikeplan) includes multiple modes.
70+
* **Portland, OR**: [Administrative Rule and data sharing](https://www.portlandoregon.gov/citycode/article/690212) document from [PBOT](https://www.portlandoregon.gov/transportation/).
71+
* **San Diego, CA**: [Shared Mobility Device Operator Regulations](https://www.sandiego.gov/bicycling/bicycle-and-scooter-sharing/company-contacts) and [Ordinance with Data Sharing Provisions](https://docs.sandiego.gov/council_reso_ordinance/rao2019/O-21070.pdf).
72+
* **San Francisco, CA**: [SFMTA Policy Document](https://www.sfmta.com/sites/default/files/reports-and-documents/2018/05/powered_scooter_share_program_permit_application.pdf) and [Guideance Page](https://www.sfmta.com/projects/powered-scooter-share-permit-and-pilot-program).
73+
* **San Jose, CA**: [Shared Micro-mobility Permit Administrative Regulations](https://www.sanjoseca.gov/home/showdocument?id=38091).
74+
* **Santa Monica, CA**: The rules and guidelines are on the Santa Monica [Shared Mobility Pilot Program page](https://www.smgov.net/Departments/PCD/Transportation/Shared-Mobility-Services/).
75+
* **Seattle, WA**: SDOT's [Free-floating Bike Share Permitting](https://www.seattle.gov/transportation/projects-and-programs/programs/bike-program/bike-share#permityearpermit2.1) program and [permit requirements](https://www.seattle.gov/Documents/Departments/SDOT/BikeProgram/Seattle_Bike_Share_Permit_Requirements_v2.1_20181219.pdf).
76+
* **Ulm, Germany**: A draft of the guidelines can be found at [the city's GitHub presence](https://github.com/stadtulm/mds-zonen).
77+
* **Washington, DC**: [Dockless Vehicle Permits](https://ddot.dc.gov/page/dockless-vehicle-permits-district), [terms and conditions](https://ddot.dc.gov/sites/default/files/dc/sites/ddot/2019.11.6%20Shared%20dockless%202020%20Terms%20and%20Conditions%20scooter.pdf), [data reporting standards](https://ddot.dc.gov/sites/default/files/dc/sites/ddot/2019.11.6%20Dockless%20Permit%20TC%20Attatchments.pdf), and [FAQ](https://docs.google.com/document/d/1G2ddANcXl3lShCZInV3uX2NTBfRRu4Fm-tiaCi203QM/).
5878

5979
* _[add your City here by opening a pull request](https://github.com/openmobilityfoundation/mobility-data-specification/compare)_
6080

81+
Other cities include Baltimore, Bellevue, Charlotte, Oakland, and Seattle, via the [NACTO Guidelines for Regulating Shared Micromobility](https://nacto.org/wp-content/uploads/2019/09/NACTO_Shared_Micromobility_Guidelines_Web.pdf), page 48.
82+
6183
## Use Cases
6284
Some examples of how cities are using MDS in practice:
6385

@@ -77,7 +99,7 @@ Some examples of how cities are using MDS in practice:
7799

78100
### Open Mobility Foundation
79101
* [`mds-core`](https://github.com/openmobilityfoundation/mds-core) - A reference implementation of an MDS Agency Server, built using PostgresQL, TypeScript, NodeJS.
80-
* [`mds-compliance-mobile`](`https://github.com/openmobilityfoundation/mds-compliance-mobile`) - A mobile app for performing in-the-field data validation and compliance monitoring.
102+
* [`mds-compliance-mobile`](https://github.com/openmobilityfoundation/mds-compliance-mobile) - A mobile app for performing in-the-field data validation and compliance monitoring.
81103

82104
### City of Los Angeles
83105
* [`mds-dev`](https://github.com/cityoflosangeles/mds-dev) - Code to do cap checking, fake data generation and more with provider data.

agency/README.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ A vehicle record is as follows:
7676
| `model` | String | Vehicle Model |
7777
| `state` | Enum | Current vehicle state. See [Vehicle State][vehicle-states] |
7878
| `prev_event` | Enum | Last [Vehicle Event][vehicle-event] |
79-
| `updated` | Timestamp | Date of last event update |
79+
| `updated` | [timestamp][ts] | Date of last event update |
8080

8181
404 Failure Response:
8282

@@ -166,7 +166,7 @@ Body Params:
166166
| ----------- | ----------------------------- | -------- | -------------------------------------------------------------------------------- |
167167
| `vehicle_state` | Enum | Required | see [Vehicle States][vehicle-states] |
168168
| `event_types` | Enum[] | Required | see [Vehicle Events][vehicle-events] |
169-
| `timestamp` | Timestamp | Required | Date of last event update |
169+
| `timestamp` | [timestamp][ts] | Required | Date of last event update |
170170
| `telemetry` | [Telemetry](#telemetry-data) | Required | Single point of telemetry |
171171
| `trip_id` | UUID | Optional | UUID provided by Operator to uniquely identify the trip. Required for `trip_start`, `trip_end`, `trip_enter`, and `trip_leave` event types |
172172

@@ -197,11 +197,12 @@ Body Params:
197197
| ------------- | ------------------------------ | ----------------- | -------------------------------------------------------------------------------------- |
198198
| `data` | [Telemetry](#telemetry-data)[] | Required | Array of telemetry for one or more vehicles. |
199199

200-
201 Success Response:
200+
200 Success Response:
201201

202-
| Field | Type | Field Description |
203-
| --------- | ------------------------------ | ------------------------------------------------------------------------------------------------------- |
204-
| `result` | String | Responds with number of successfully written telemetry data points and total number of provided points. |
202+
| Field | Type | Field Description |
203+
| ---------- | ------------------------------ | ------------------------------------------------------------------------------------------------------- |
204+
| `success` | Integer | Number of successfully written telemetry data points. |
205+
| `total` | Integer | Ttotal number of provided points. |
205206
| `failures` | [Telemetry](#telemetry-data)[] | Array of failed telemetry for zero or more vehicles (empty if all successful). |
206207

207208
400 Failure Response:
@@ -219,7 +220,7 @@ A standard point of vehicle telemetry. References to latitude and longitude impl
219220
| Field | Type | Required/Optional | Field Description |
220221
| -------------- | -------------- | --------------------- | ------------------------------------------------------------ |
221222
| `device_id` | UUID | Required | ID used in [Register](#vehicle-register) |
222-
| `timestamp` | Timestamp | Required | Date/time that event occurred. Based on GPS or GNSS clock |
223+
| `timestamp` | [timestamp][ts] | Required | Date/time that event occurred. Based on GPS or GNSS clock |
223224
| `gps` | Object | Required | Telemetry position data |
224225
| `gps.lat` | Double | Required | Latitude of the location |
225226
| `gps.lng` | Double | Required | Longitude of the location |
@@ -233,13 +234,14 @@ A standard point of vehicle telemetry. References to latitude and longitude impl
233234

234235
[Top][toc]
235236

236-
[toc]: #table-of-contents
237237
[general]: /general-information.md
238-
[versioning]: /general-information.md#versioning
239-
[responses]: /general-information.md#responses
240238
[error-messages]: /general-information.md#error-messages
239+
[hdop]: https://support.esri.com/en/other-resources/gis-dictionary/term/358112bd-b61c-4081-9679-4fca9e3eb926
240+
[propulsion-types]: /general-information.md#propulsion-types
241+
[responses]: /general-information.md#responses
242+
[toc]: #table-of-contents
243+
[ts]: /general-information.md#timestamps
241244
[vehicle-types]: /general-information.md#vehicle-types
242245
[vehicle-states]: /general-information.md#vehicle-states
243246
[vehicle-events]: /general-information.md#vehicle-state-events
244-
[propulsion-types]: /general-information.md#propulsion-types
245-
[hdop]: https://support.esri.com/en/other-resources/gis-dictionary/term/358112bd-b61c-4081-9679-4fca9e3eb926
247+
[versioning]: /general-information.md#versioning
-354 KB
Binary file not shown.

general-information.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ This document contains specifications that are shared between the various MDS AP
66

77
* [Beta Features](#beta-features)
88
* [Costs and Currencies](#costs-and-currencies)
9+
* [Definitions](#definitions)
910
* [Devices](#devices)
1011
* [Propulsion Types](#propulsion-types)
1112
* [Responses](#responses)
@@ -38,6 +39,17 @@ If the currency field is null, USD cents is implied.
3839

3940
[Top][toc]
4041

42+
## Definitions
43+
44+
Defining terminology and abbreviations used throughout MDS.
45+
46+
- **API** - Application Programming Interface - A function or set of functions that allow one software application to access or communicate with features of a different software application or service.
47+
- **API Endpoint** - A point at which an API connects with a software application or service.
48+
- **DOT** - Department of Transportation, usually a city-run agency.
49+
- **PROW** - Public Right of Way - the physical infrastructure reserved for transportation purposes, examples include sidewalks, curbs, bike lanes, transit lanes and stations, traffic lanes and signals, and public parking.
50+
51+
[Top][toc]
52+
4153
## Devices
4254

4355
MDS defines the *device* as the unit that transmits GPS or GNSS signals for a particular vehicle. A given device must have a UUID (`device_id` below) that is unique within the Provider's fleet.
@@ -168,11 +180,9 @@ Note that to handle out-of-order events, the validity of the prior-state shall n
168180
| `available`, `reserved`, `on_trip`, `non_operational`, `elsewhere` | `unknown` | `missing` | The vehicle is not at its last reported GPS location, or that location is wildly in error |
169181
| `available`, `reserved`, `on_trip`, `non_operational`, `elsewhere` | `unknown` | `comms_lost` | The vehicle is unable to transmit its GPS location or other status information |
170182

171-
NOTES:
172-
173-
Should we try to handle "unlicensed movements"?
183+
The *State Machine Diagram* shows how the `vehicle_state` and `event_type` relate to each other and how vehicles can transition between states. See [Google Slides](https://docs.google.com/presentation/d/1Ar2-ju8YlddSsTATvQw4YjsSa5108XtidtnJNk-UAfA/edit) for the source file.
184+
![MDS State Machine Diagram](/MDS-state-machine-diagram.svg)
174185

175-
What's the best way to return from `unknown`?
176186

177187
[Top][toc]
178188

policy/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ The internal mechanics of ordering are up to the Policy editing and hosting soft
277277
[iana]: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
278278
[muni-boundary]: ../provider/README.md#municipality-boundary
279279
[propulsion-types]: /general-information.md#propulsion-types
280-
[timestamps]: /general-information.md#timestamps
280+
[ts]: /general-information.md#timestamps
281281
[toc]: #table-of-contents
282282
[vehicle-events]: /general-information.md#vehicle-state-events
283283
[vehicle-states]: /general-information.md#vehicle-states

policy/examples.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -175,22 +175,6 @@ This Policy sets a 15 MPH speed limit in greater LA, and a 10 MPH speed limit in
175175
"published_date": 1552678594428,
176176
"prev_policies": null,
177177
"rules": [{
178-
"name": "Greater LA",
179-
"rule_id": "529b6cd7-0e0d-4439-babf-c5908a664ecf",
180-
"rule_type": "speed",
181-
"rule_units": "mph",
182-
"geographies": [
183-
"b4bcc213-4888-48ce-a33d-4dd6c3384bda"
184-
],
185-
"statuses": {
186-
"trip": []
187-
},
188-
"vehicle_types": [
189-
"bicycle",
190-
"scooter"
191-
],
192-
"maximum": 15
193-
}, {
194178
"name": "Venice Beach on weekend afternoons",
195179
"rule_id": "d4c0f42f-3f79-4eb4-850a-430b9701d5cf",
196180
"rule_type": "speed",
@@ -216,6 +200,22 @@ This Policy sets a 15 MPH speed limit in greater LA, and a 10 MPH speed limit in
216200
"en-US": "Remember to stay under 10 MPH on Venice Beach on weekends!",
217201
"es-US": "¡Recuerda permanecer menos de 10 millas por hora en Venice Beach los fines de semana!"
218202
}
203+
}, {
204+
"name": "Greater LA",
205+
"rule_id": "529b6cd7-0e0d-4439-babf-c5908a664ecf",
206+
"rule_type": "speed",
207+
"rule_units": "mph",
208+
"geographies": [
209+
"b4bcc213-4888-48ce-a33d-4dd6c3384bda"
210+
],
211+
"statuses": {
212+
"trip": []
213+
},
214+
"vehicle_types": [
215+
"bicycle",
216+
"scooter"
217+
],
218+
"maximum": 15
219219
}]
220220
}
221221
```

provider/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ The schema and datatypes are the same as those defined for [`/status_changes`][s
310310

311311
**Endpoint:** `/events`
312312
**Method:** `GET`
313-
**[Beta feature][beta]:** Yes (as of 0.4.0)
313+
**[Beta feature][beta]:** No (as of 1.0.0)
314314
**Schema:** [`events` schema][events-schema]
315315
**`data` Payload:** `{ "status_changes": [] }`, an array of objects with the same structure as in [`/status_changes`][status]
316316

0 commit comments

Comments
 (0)