Open thill-odi opened 4 years ago
See also #225, #226, #227.
Should we make the name
of the VirtualLocation
optional or recommended, as it's not essential to the customer experience?
Also should we include description
of the VirtualLocation
?
As Bookwhen have mentioned, access to the URL of the service in many cases will be behind a paywall - though it might also be a "signup" URL. Hence the url
is potentially more a consideration for the Open Booking API than for this Modelling Specification. This means the description
of means of access is actually more important.
For example, the following screenshot from ClassPass illustrates the types of data that could be in the description
:
There's also this additional data, which could be included somewhere too? I guess attendeeInstructions
already covers this:
Also noting that virtualLocation
is likely to exist at SessionSeries OR at ScheduledSession level - as some URLs are generated per-event, and some use the same one each week
From discussions with @jopotts cases where the virtual location is private (e.g. behind a paywall), we suggest that virtualLocation
should not be included.
This allows the virtualLocation
to reliably represent direct access to the session with a "View Livestream" button - for a UI that might show "sessions happening right now", for example.
Consistent with physical sessions: the Offer
url
can then be used for the link to purchase access or sign-up, and the Event
url
can signpost to a general page about the session.
Relevant points from the summary of the W3C call:
beta:virtualLocation
as a singular not array, as multiple broadcast platforms are likely an edgecase in this sector. We agreed to re-evaluate this before moving the property out of beta.The proposal would be to make a virtualLocation
property available to all Opportunity types except Slot
, FacilityUse
, and IndividualFacilityUse
. The value of this property would be a schema.org VirtualLocation
, characterised in particular by a url
, name
and description
, at least one of which is REQUIRED.
Note where the virtual location is private (e.g. behind a paywall), the VirtualLocation
url
should not be included.
This allows the VirtualLocation
url
to reliably represent direct access to the session with a "View Livestream" button - for a UI that might show "sessions happening right now", for example.
Consistent with physical sessions: the Offer
url
can then be used for the link to purchase access or sign-up, and the Event
url
can signpost to a general page about the session.
It is assumed that virtualLocation
is fully heritable, so that values defined on parent objects (e.g. EventSeries
, SessionSeries
) are applicable to child objects (e.g. Event
, ScheduledSession
). Where this value is defined on a child object, however, the value defined at this lower level takes precedence over any defined higher up the chain.
"beta:virtualLocation": {
"type": "VirtualLocation",
"name": "Zoom Video Chat",
"url": "https://zoom.us/j/1234567890/signup",
"description": "Please log into Zoom a few minutes before the event, and mute your mic while you wait for the session to start"
}
This proposal has been added to the Beta namespace as follows:
(Class) Property | Expected Type | Description |
---|---|---|
(schema:Event ) beta:virtualLocation |
pending:VirtualLocation |
Describes a means of electronic access to a shared virtual space. |
To support private events behind a paywall (as per https://github.com/openactive/modelling-opportunity-data/issues/224#issuecomment-603302198), and public events that are protected from e.g. "Zoombombing", an accessId
and accessCode
must also be supplied for the VirtualLocation
:
accessId
: The identifier required to access the VirtualLocation
from any device, without requiring the URL, e.g. the meeting ID.accessCode
: The password or pin required to access the VirtualLocation
from any device, without requiring the URL, e.g. the meeting password.See also https://github.com/openactive/open-booking-api/issues/176.
"beta:virtualLocation": {
"@type": "VirtualLocation",
"name": "Zoom Video Chat",
"url": "https://zoom.us/j/1234567890/signup",
"accessId" : "1234567890",
"accessCode" : "211277",
"description": "Please log into Zoom a few minutes before the event"
},
Proposer
@nickevansuk (ODI/imin), with contributions from @thill-odi (ODI) and @lukehesluke (imin).
Use Case
An Opportunity provider is providing new means of accessing led classes online, as well as or instead of at a physical location.
This proposal obviously has increased salience in light of COVID-19 isolation measures.
Why is this not covered by existing properties?
The existing data model deals only with physical locations, not those available via online technologies.
Please provide a link to example data
See e.g. https://www.cococollective.co.uk/booking/ for a yoga studio that has recently moved to online events to replace physical ones.
Proposal
The proposal would be to make a
virtualLocation
property available to all Opportunity types exceptSlot
,FacilityUse
, andIndividualFacilityUse
. The value of this property would be a schema.orgVirtualLocation
, characterised in particular by aname
andurl
, both of which are REQUIRED.Inheritance
It is assumed that
virtualLocation
is fully heritable, so that values defined on parent objects (e.g.EventSeries
,SessionSeries
) are applicable to child objects (e.g.Event
,ScheduledSession
). Where this value is defined on a child object, however, the value defined at this lower level takes precedence over any defined higher up the chain.Example