SEO.JSONLD.ExerciseAction (SEO v0.3.0-rc.0)

View Source

The act of participating in exertive activity for the purposes of improving health and fitness.

Helper for building a Schema.org ExerciseAction JSON-LD structure.

Action inputs and outputs

This type descends from SEO.JSONLD.Action, so build/1 recognizes two pseudo-fields that expand into Schema.org's hyphenated <property>-input / <property>-output shorthand (see Schema.org Actions, Part 4):

  • :inputs — a keyword list of {property, constraints} entries
  • :outputs — likewise, for <property>-output annotations

Constraints are passed to SEO.JSONLD.Actions.input_spec/1.

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "ExerciseAction", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

Build a ExerciseAction JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:course) => SEO.JSONLD.Place.t() | map(),
    optional(:diet) => SEO.JSONLD.Diet.t() | map(),
    optional(:distance) => map(),
    optional(:exercise_course) => SEO.JSONLD.Place.t() | map(),
    optional(:exercise_plan) => SEO.JSONLD.ExercisePlan.t() | map(),
    optional(:exercise_related_diet) => SEO.JSONLD.Diet.t() | map(),
    optional(:exercise_type) => String.t(),
    optional(:from_location) => SEO.JSONLD.Place.t() | map(),
    optional(:opponent) => SEO.JSONLD.Person.t() | map(),
    optional(:sports_activity_location) =>
      SEO.JSONLD.SportsActivityLocation.t() | map(),
    optional(:sports_event) => SEO.JSONLD.SportsEvent.t() | map(),
    optional(:sports_team) => SEO.JSONLD.SportsTeam.t() | map(),
    optional(:to_location) => SEO.JSONLD.Place.t() | map(),
    optional(:audience) => SEO.JSONLD.Audience.t() | map(),
    optional(:event) => SEO.JSONLD.Event.t() | map(),
    optional(:action_process) => SEO.JSONLD.HowTo.t() | map(),
    optional(:action_status) =>
      :active_action_status
      | :completed_action_status
      | :failed_action_status
      | :potential_action_status,
    optional(:agent) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:end_time) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(),
    optional(:error) => SEO.JSONLD.Thing.t() | map(),
    optional(:instrument) => SEO.JSONLD.Thing.t() | map(),
    optional(:location) =>
      String.t()
      | SEO.JSONLD.PostalAddress.t()
      | map()
      | SEO.JSONLD.VirtualLocation.t()
      | SEO.JSONLD.Place.t(),
    optional(:object) => SEO.JSONLD.Thing.t() | map(),
    optional(:participant) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:provider) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:result) => SEO.JSONLD.Thing.t() | map(),
    optional(:start_time) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(),
    optional(:target) =>
      URI.t() | String.t() | SEO.JSONLD.EntryPoint.t() | map(),
    optional(:additional_type) => String.t() | URI.t(),
    optional(:alternate_name) => String.t(),
    optional(:description) => SEO.JSONLD.TextObject.t() | map() | String.t(),
    optional(:disambiguating_description) => String.t(),
    optional(:identifier) =>
      String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
    optional(:image) =>
      URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
    optional(:main_entity_of_page) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:name) => String.t(),
    optional(:owner) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:potential_action) => SEO.JSONLD.Action.t() | map(),
    optional(:same_as) => URI.t() | String.t(),
    optional(:subject_of) =>
      SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
    optional(:url) => URI.t() | String.t()
  }
  | [
      course: SEO.JSONLD.Place.t() | map(),
      diet: SEO.JSONLD.Diet.t() | map(),
      distance: map(),
      exercise_course: SEO.JSONLD.Place.t() | map(),
      exercise_plan: SEO.JSONLD.ExercisePlan.t() | map(),
      exercise_related_diet: SEO.JSONLD.Diet.t() | map(),
      exercise_type: String.t(),
      from_location: SEO.JSONLD.Place.t() | map(),
      opponent: SEO.JSONLD.Person.t() | map(),
      sports_activity_location: SEO.JSONLD.SportsActivityLocation.t() | map(),
      sports_event: SEO.JSONLD.SportsEvent.t() | map(),
      sports_team: SEO.JSONLD.SportsTeam.t() | map(),
      to_location: SEO.JSONLD.Place.t() | map(),
      audience: SEO.JSONLD.Audience.t() | map(),
      event: SEO.JSONLD.Event.t() | map(),
      action_process: SEO.JSONLD.HowTo.t() | map(),
      action_status:
        :active_action_status
        | :completed_action_status
        | :failed_action_status
        | :potential_action_status,
      agent: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      end_time: DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(),
      error: SEO.JSONLD.Thing.t() | map(),
      instrument: SEO.JSONLD.Thing.t() | map(),
      location:
        String.t()
        | SEO.JSONLD.PostalAddress.t()
        | map()
        | SEO.JSONLD.VirtualLocation.t()
        | SEO.JSONLD.Place.t(),
      object: SEO.JSONLD.Thing.t() | map(),
      participant: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      provider: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      result: SEO.JSONLD.Thing.t() | map(),
      start_time: DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(),
      target: URI.t() | String.t() | SEO.JSONLD.EntryPoint.t() | map(),
      additional_type: String.t() | URI.t(),
      alternate_name: String.t(),
      description: SEO.JSONLD.TextObject.t() | map() | String.t(),
      disambiguating_description: String.t(),
      identifier: String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
      image: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
      main_entity_of_page:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      name: String.t(),
      owner: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      potential_action: SEO.JSONLD.Action.t() | map(),
      same_as: URI.t() | String.t(),
      subject_of: SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
      url: URI.t() | String.t()
    ]

t()

@type t() :: %{required(String.t()) => term()}

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "ExerciseAction", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

build(attrs)

@spec build(attrs()) :: t()

Build a ExerciseAction JSON-LD map.

Fields

  • :course - A sub property of location. The course where this action was taken.
  • :diet - A sub property of instrument. The diet used in this action.
  • :distance - The distance travelled, e.g. exercising or travelling.
  • :exercise_course - A sub property of location. The course where this action was taken.
  • :exercise_plan - A sub property of instrument. The exercise plan used on this action.
  • :exercise_related_diet - A sub property of instrument. The diet used in this action.
  • :exercise_type - Type(s) of exercise or activity, such as strength training, flexibility training, aerobics, cardiac rehabilitation, etc.
  • :from_location - A sub property of location. The original location of the object or the agent before the action.
  • :opponent - A sub property of participant. The opponent on this action.
  • :sports_activity_location - A sub property of location. The sports activity location where this action occurred.
  • :sports_event - A sub property of location. The sports event where this action occurred.
  • :sports_team - A sub property of participant. The sports team that participated on this action.
  • :to_location - A sub property of location. The final location of the object or the agent after the action.

Inherited properties

Additional properties are available through the inheritance chain. See each ancestor's docs for its properties: