OpenEventDatabase

From OpenStreetMap Wiki
Jump to navigation Jump to search

OpenEventDatabase aka OEDB is a brother project of OpenStreetMap, it enables anyone to share geolocated data about events limited in time, something that OSM is not aiming to provide. Cquest launched the project a few years ago, aiming to build a libre software alternative to Waze, it has evolved to be able to support not only traffic events but any kind of event, also events not located in a particular place. The website is here: https://api.openeventdatabase.org [ dead link ]

OpenEventDatabase
Author: Github Contributors
License: APGPL 3.0 (free of charge)
Platform: Web
Status: Active
Language:
French
Website: https://openeventdatabase.github.io/
Source code: https://github.com/openeventdatabase
Programming languages: Python and HTML

Database contains various types of events.

Features
Feature Value
Map Display
?
Routing
?
Navigating
?
Tracking
?
Monitoring
?
Editing
?
Rendering
?
Accessibility
?

Data Users

A list of websites that use OEDB.

Types of Events

The goal of OpenEventDatabase is to share geo and time related data thru an open public API.

It tries to answer to what/where/when questions.

The basic data is an Event defined through a geojson paylod.

The geometry part contains the "where" information and the properties part contains the what and when details.

Real-time or "live" events can be shared like traffic informations, jams, accidents. Public transport related events can also be share like delays, cancellations. Safety alerts, weather warnings, are also useful to share. This first set of examples are unscheduled events.

A second type of event are scheduled ones, like public transport timetables, movie times, planned road works, holidays, etc.

The third type of events are the forecast ones, like weather forecast, traffic forecast.

Last type (so far) is observed events like weather temperature.

To enrich our event, we create a geojson we want to send to the database. We add details in the properties attribute, just like in OSM we are free to create properties and should use the already existing one, and discuss their meaning and evolutions.

Here are a few kind of "what" properties we can use:

  • community.osm.event
  • culture.geek
  • culture.art
  • civic.sanitation.garbage
  • emergency.medical
  • emergency.fire
  • music.festival
  • music.concert
  • power.production.unavail
  • sale
  • traffic.accident
  • traffic.roadwork
  • traffic.obstacle
  • tourism.exhibition
  • time.daylight.summer
  • transport.rail.delay
  • weather.storm
  • weather.heat
  • weather.flood

We use the dot character in the value of what to add precision in the category we want to use.

These categories are relatively new, please discuss them to keep them meaningful and limit doubles.

Right now we can see a counting of the existing kinds on this page.

https://oedb.cipherbliss.com/demo/stats

Where do we stop ?

No private information or private events should be shared thru OpenEventDatabase. Copyrighted data cannot be shared due to all legal issues it could generate.

Api Docs

  • Get Events
    • URL: `/event?`
    • Method: GET
    • Description: Retrieves a collection of events based on query parameters.
    • Query Parameters:
      • `what`: Filter events by type (e.g., `sport.match.football`)
      • `when`: Filter events by time period (e.g., `last7days`, `today`, `tomorrow`)
      • `limit`: Maximum number of events to return (default: 100)
      • `bbox`: Bounding box for geographic filtering (format: `min_lon,min_lat,max_lon,max_lat`)
    • Response: GeoJSON FeatureCollection of events.
  • Create Event
    • URL: `/event`
    • Method: POST
    • Description: Creates a new event.
    • Request Body: GeoJSON Feature representing the event.
    • Response: JSON object with the created event ID.
  • Get Event by ID
    • URL: `/event/{id}`
    • Method: GET
    • Description: Retrieves a specific event by its ID.
    • Response: GeoJSON Feature of the requested event.
  • Update Event
    • URL: `/event/{id}`
    • Method: PUT
    • Description: Updates an existing event.
    • Request Body: GeoJSON Feature with updated event data.
    • Response: JSON object with the updated event ID.
  • Delete Event
    • URL: `/event/{id}`
    • Method: DELETE
    • Description: Deletes an event by its ID.
    • Response: JSON object confirming deletion.

DB Schema

Events, archived events, geo referencials. (TODO)

table events, geo, events_deleted and indexes
oedb tables schema

Public Data Sources Used

https://github.com/openeventdatabase/datasources

Python scripts using UWSGI are serving and managing a Postgresql backend. Cronjob are managing data sources to gather new events from particular websites. shows several parts of the project.

Discussion

Here on the french forum https://forum.openstreetmap.fr/t/openeventdatabase-reboot/37649

Linked pages

See Also