Open ldodds opened 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.
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
...
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
?
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.
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):
"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.
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).
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).
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.
"Wednesday 5k challenge" - people have all day on Wednesday to run their 5k and log it.
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.
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 . |
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.
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.
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
I (as a group leader) organise a virtual live 5k run at 7pm every Tuesday. It's open to anyone who wants to join, wherever they are in the world. I have a link to the run (that will open the Live Runs part of Racefully) and a link to my group (that will open the "Chris run club" tribe in Racefully). If someone searches for a 5k in Lewisham, but nothing's organised nearby, then my virtual 5k on Racefully is an always-available alternative at 7pm on Tuesday.
I (as a group leader) have a tribe with a "Wednesday 5k challenge" - people have all day on Wednesday to run their 5k and log it to the Tribe. Someone searches for running in Lewisham (on Wednesday), and sees my "Wednesday 5k challenge" as a virtual option to do a run.
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 aneventSchedule
. 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:
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:
B2 is already supported by providing an
eventSchedule
for an Event, with multiple values in thelocation
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
BroadcastEvent
type. Otherwise the data model handles this requirement already.location
then we could handle A1, B1 and C within the existing data model. We would need to add a new type, e.g.VirtualEvent
, to distinguish between this and other located events