openactive / modelling-opportunity-data

OpenActive Modelling Opportunity Data specification
https://www.openactive.io/modelling-opportunity-data/
Other
6 stars 6 forks source link

Discussion: virtual events #71

Open ldodds opened 6 years ago

ldodds commented 6 years ago

Some providers are offering "virtual" events, that allow people to participate online or broadcast events.

This is still a work in progress, please provide feedback

Proposer

This was first introduced and discussed in the 2018-04-11 community group call

Use Case

Examples from Racefully

Why is this not covered by existing properties?

The current data model focuses on Events that take place at specific locations. location is a required property. But a virtual or broadcast event does not have a location.

The data model also currently says that an Event MUST have a startDate or an eventSchedule. But a virtual event might not take place at a specific time or conform it a schedule. It might be available on demand.

Requirements

In the discussion so far, we've identified a variety of scenarios. So of which are covered by the existing data model.

A. Event taking place at a specific point in time, e.g. 5pm on 11th April which can be participated in:

  1. from any location
  2. only by attending specific locations, e.g. participating PureGyms.
  3. by anyone in a specific town or country, but location is not specified

A2 is already supported by listing multiple values in the location for an Event.

B. Events taking place at a scheduled time, e.g. Wednesdays at 7pm, which can be participated in:

  1. from any location
  2. only by attending specific locations, e.g. participating PureGyms.
  3. by anyone in a specific town or country, but location is not specified

B2 is already supported by providing an eventSchedule for an Event, with multiple values in the location property.

C. Events that take place over a specific time frame (e.g. in April), which can be participated in from any location

D. Events that are available "on demand", e.g. a recorded event that I can participate in at any time or location.

Discussion

nickevansuk commented 6 years ago

Note that schema.org has a parallel discussion on this, and they're talking about an OnlineEvent: https://github.com/schemaorg/schemaorg/issues/1842

I would note the difference between VirtualEvent as defined by Racefully ("people have all day on Wednesday to run their 5k and log it to the Tribe"), from an OnlineEvent as defined by EMD and https://github.com/schemaorg/schemaorg/issues/1842. In an OnlineEvent the participant is watching something online, and does not need any special equipment or app to participate. A VirtualEvent is an event that takes place outside in the real world with the assistance of an app or other device to allow for participation from anywhere, but requires you to leave the house to do it.

VirtualEvent would seem to me to be the more generic of the two options, and suggest the activity type will allow a user to figure out if they can expect to leave the house (VirtualEvent of Running) or participate with a laptop and some floor space (VirtualEvent of Les Mills - though that example is more D).

Also note that https://github.com/openactive/modelling-opportunity-data/issues/64 doesn't actually currently include a suggestion to handle D, which we do need.

nickevansuk commented 6 years ago

Also a further spanner, how does OnlineEvent / VirtualEvent play with EventSeries as per https://github.com/openactive/modelling-opportunity-data/issues/63?

We'd want a Session to be online, as part of an EventSeries...

nickevansuk commented 6 years ago

Perhaps a simple isOnline property isn't such a bad thing (as per https://github.com/schemaorg/schemaorg/issues/1842#issue-294849265) as it removes this complexity, though? Or perhaps we should create OnlineSession or OnlineEventSeries?

nickevansuk commented 6 years ago

Noting the great discussion happening over at https://github.com/schemaorg/schemaorg/issues/1842, with mention of VirtualLocation.

To ensure we're also handling D here (which is now excluded from #64), https://schema.org/OnDemandEvent might be useful for "on demand" use case. Although worth noting that things like https://www.lesmills.com/ondemand/ are entire on-demand services, rather than individual events / programmes. Though ideally the community would be getting the data out for the programmes themselves (e.g. BodyPump, which exists in the activity list, is available On Demand with descriptions and images related to it, as part of the overall Les Mills On Demand service).

The main issue with on demand is that there's not always an end date as the videos could be available forever, which might be ok if OnDemandEvent services just show the date they were published as the startDate?

This also plays well with https://github.com/openactive/modelling-opportunity-data/issues/63 as On Demand is a different format and doesn't need linking to EventSeries etc.

nickevansuk commented 6 years ago

Notes from a conversation just now with @Jadecation, three key types of activities from EMD's perspective. It would be good for our eventual proposal to include a solution to each of these, addition to the Racefully examples above (included below for completeness):

1) Virtual classes in physical locations

"Virtual Group Cycling" is a typical class that's run in a leisure centre, where a video screen is used. Sometimes it's in the form a kind of interactive video game, and sometimes the instructor is present, and sometimes the instructor is recorded.

These always have a startDate, endDate and location. They may or may not have an instructor.

These may be best covered by an extra property isVirtualEvent or deliveryFormat to indicate BODYCOMBAT is delivered via a projector screen and not a real instructor (i.e. so we don't need to duplicate BODYCOMBAT and all the others in the activity list for virtual and real delivery). This also allows users to filter our virtual events.

2) Virtual fitness classes available anywhere via streaming

Organisations like https://www.fitswarm.com/ specialise in providing online classes which are live, and you can join from your own home. They sometimes have instructors, and sometimes do not.

These always have a startDate, endDate and no location. They may or may not have an instructor.

These seems to fit with using VirtualLocation within our existing Session type (see https://github.com/schemaorg/schemaorg/issues/1842).

3) On demand classes available anywhere

Les Mills On Demand provides a number of classes available digitally any time, similar to BBC iPlayer.

These always have no fixed startDate, endDate or location. However they do have a startDate in the sense of the first date that the programme was available.

These seem to fit with OnDemandEvent (instead of "Session") in terms of Event type, but perhaps we should also look at how the BBC marks up their iPlayer programmes (see Example 2 here).

4) Virtual event available anywhere with participation via app/device

A virtual live 5k run at 7pm every Tuesday. It's open to anyone who wants to join, wherever they are in the world. They can join at the same time and the app will share progress of each participant to create a virtual activity.

5) All-day virtual challenge anywhere with participation via app/device

"Wednesday 5k challenge" - people have all day on Wednesday to run their 5k and log it.

nickevansuk commented 6 years ago

Also note that as discussed with @Jadecation we can bring these organisations (e.g. Fitswarm and Les Mills) into this conversation to ensure that this works for them whenever this next becomes a focus for the W3C Community Group.

nickevansuk commented 5 years ago

Drilling down on Scenario 1 above (as most open data at present represents classes in physical locations), regardless of the level of technology involved in the experience (video game, immersive multimedia, or video recording), if there is an instructor involved they may be either present virtually or live.

For those participants who prefer live instructors, this differentiation is the key one.

The activity list does not include such "virtual" classes as many activities in the list could have a "virtual" equivalent. Hence when categorising existing classes using the activity list, many of the live instructor results are being "diluted" by the large number of cheap-to-run virtual classes on offer under the same activity.

The following beta property has been added to resolve this, by focussing on the presence of a live or virtual instructor (which can be well defined), pending a fuller discussion on the spectrum of "virtual" opportunities more broadly:

(Class) Property Expected Type Description
(schema:Event)
beta:isVirtuallyCoached
schema:Boolean A property that indicates whether the event is led by a prerecorded virtual coach. Only relevant if an event isCoached. If not provided is assumed to be false.
nickevansuk commented 4 years ago

Note the extensive coverage of this topic in https://w3c.openactive.io/meetings/2020-03-25-virtual-events in response to the COVID-19 pandemic.

nickevansuk commented 4 years ago

Noting that when taking forward the property beta:isVirtuallyCoached to the next iteration of the specification, in light of the virtual properties related to online activities as part of the COVID-19 updates, it might be worth updating the language to ensure clarity and avoid overloading terms.

Perhaps in the next iteration of the specification isCoached should be replaced by coachMode with values of https://openactive.io/LiveCoach, https://openactive.io/PrerecordedCoach or https://openactive.io/NoCoach.

The naming of such values should be designed to be relevant and coherent in the context of Online, Offline and Mixed events.