Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specifying when/where an Action may be performed #1741

Closed
vholland opened this issue Sep 18, 2017 · 4 comments
Closed

Specifying when/where an Action may be performed #1741

vholland opened this issue Sep 18, 2017 · 4 comments
Assignees
Labels
schema.org vocab General top level tag for issues on the vocabulary

Comments

@vholland
Copy link
Contributor

Many Action links, particularly for consuming media, are limited by time and/or region based on the complexities of licensing. For example, a user may only be able to listen to a song after a certain date or read a book in a certain country. To help authors describe the access restrictions for performing an Action, I am proposing adding the following:

  1. Thing > Intangible > ActionAccessSpecification: A set of requirements that a must be fulfilled in order to access a consume action. It would have the following properties:
  • availabilityStarts: This property already exists. We would add it to ActionAccessSpecification to allow authors to describe when users can begin performing the Action.
  • availabilityEnds: This property already exists. We would add it to ActionAccessSpecification to allow authors to describe when users can no longer perform the Action.
  • eligibleRegion: This property already exists. We would add it to ActionAccessSpecification to allow authors to describe where the user can perform the Action.
    expectsAcceptanceOf: This property already exists. We would add it to ActionAccessSpecification to allow authors to say an Offer must be accepted before the Action can be performed. This is used in cases where users must purchase or rent access to the item.
  • requiresSubscription: This property already exists and expects a boolean. We would expand both the domain and range to allow for a description of the subscription. (See below).
  1. Add a new property actionAccessibilityRequirement to ConsumeAction to specify the requirements needed to access the Action.
  2. Thing > Intangible > MediaSubscription: A subscription which allows a user to access media including audio, video, books, etc. It would have the following properties:
  • authenticator: The Organization responsible for authenticating the user's subscription. For example, many media apps require a cable/satellite provider to authenticate your subscription before playing media.
  • expectsAcceptanceOf: This property already exists. We would add it to MediaSubscription to allow authors to say an Offer must be accepted for the subscription to be considered valid. The relationship between the action provider, authenticator, and subscription seller is sometimes complicated, so I have tried to reference an Offer which may go into further detail about the seller, etc.

An example may look like:

{
  "@context": "http://schema.org/",
  "@type": "MusicRecording",
  "potentialAction": {
    "@type": "ListenAction",
    "actionAccessibilityRequirement": {
      "@type": "ActionAccessSpecification",
      "availabilityStarts": "2017-01-01T00:00",
      "availabilityEnds": "2017-12-31T00:00",
      "eligibleRegion": {
         "@type": "Country",
         "sameAs": "https://www.wikidata.org/wiki/Q166433",
         "name": "US"
       },
       "requiresSubscription": {
         "@type": "MediaSubscription",
         "name": "ACME streaming music monthly subscription",
         "authenticator": {
           "@type": "Organization",
           "name": "ACME Media"
         }
       },    
       "expectsAcceptanceOf": {
         "@type": "Offer",
         "itemOffered": {
           "@type": "MusicRecording",
           "name": "Song I am listening to that is only available for streaming after I buy it."
         }
       }
     }
   }
}
@vholland vholland self-assigned this Sep 18, 2017
@vholland vholland added schema.org vocab General top level tag for issues on the vocabulary type:exact proposal labels Sep 19, 2017
vholland added a commit to vholland/schemaorg that referenced this issue Oct 3, 2017
danbri pushed a commit that referenced this issue Oct 20, 2017
…1773)

* Issue 1741: Added MediaSubscription and ActionAccessSpecification.

* Issue #1741: Updated the release notes.
@danbri
Copy link
Contributor

danbri commented Feb 19, 2019

This got used at Google https://developers.google.com/actions/media/tv-movies-specification

(we document use of at least ActionAccessSpecification, MediaSubscription, actionAccessibilityRequirement, authenticator, availabilityEnds, availabilityStarts, category, eligibleRegion, expectsAcceptanceOf, requiresSubjection. )

@danbri danbri closed this as completed in a945953 Feb 19, 2019
@vinitakadam
Copy link

Hi,

Can we in any way add "eligibleRegion" and "ineligibleRegion" markup in my Sports video content or is the specific for Music, TV Show and Movies?
If i add "eligibleRegion" and "ineligibleRegion" to my VideoObject schema it gives me a warning.

@mfhepp
Copy link
Contributor

mfhepp commented Sep 26, 2019

Just a generic comment: While I think the reuse of such properties is a quick and pragmatic solution, it is one step further towards changing the definition of a property from a global one (identical for all types with which it is being used) to a frame-based/local definition, where a property's meaning is actually defined at the level of the type. In some cases, this is no big deal, as a broader textual definition will do. But in general it makes the vocabulary less maintainable.

I think I suggested a few years ago to introduce a defined mechanism for this, with a default definition and text for a property at the global level and the possibility to override the definition (at least the text) at the level of a particular type.

@ghost
Copy link

ghost commented Aug 22, 2022

What if availabilityEnds is unspecified? Should it be null or should we use the SQL 12/31/9999, 12/30/9999 solution?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
schema.org vocab General top level tag for issues on the vocabulary
Projects
None yet
Development

No branches or pull requests

4 participants