SEO. JSONLD. CourseInstance
(SEO v0.3.0-rc.0)
View Source
An instance of a SEO.JSONLD.Course which is distinct from other instances because it is offered at a different time or location or through different media or modes of study or to a specific section of students.
Helper for building a Schema.org CourseInstance JSON-LD structure.
Summary
Types
A JSON-LD map ready to be nested or rendered. String-keyed, always
includes "@type" set to "CourseInstance", 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 CourseInstance JSON-LD map.
Types
@type attrs() :: %{ optional(:course_mode) => String.t() | URI.t(), optional(:course_schedule) => SEO.JSONLD.Schedule.t() | map(), optional(:course_workload) => String.t(), optional(:instructor) => SEO.JSONLD.Person.t() | map(), optional(:about) => SEO.JSONLD.Thing.t() | map(), optional(:actor) => SEO.JSONLD.Person.t() | map() | SEO.JSONLD.PerformingGroup.t(), optional(:aggregate_rating) => SEO.JSONLD.AggregateRating.t() | map(), optional(:attendee) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:attendees) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:audience) => SEO.JSONLD.Audience.t() | map(), optional(:composer) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:contributor) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:director) => SEO.JSONLD.Person.t() | map(), optional(:door_time) => DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(), optional(:duration) => Duration.t() | String.t() | SEO.JSONLD.QuantitativeValue.t() | map(), optional(:end_date) => DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), optional(:event_attendance_mode) => :mixed_event_attendance_mode | :offline_event_attendance_mode | :online_event_attendance_mode, optional(:event_schedule) => SEO.JSONLD.Schedule.t() | map(), optional(:event_status) => :event_cancelled | :event_moved_online | :event_postponed | :event_rescheduled | :event_scheduled, optional(:funder) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:funding) => SEO.JSONLD.Grant.t() | map(), optional(:has_participation_offer) => SEO.JSONLD.Offer.t() | map(), optional(:has_sponsorship_offer) => SEO.JSONLD.Offer.t() | map(), optional(:in_language) => String.t() | SEO.JSONLD.Language.t() | map(), optional(:is_accessible_for_free) => boolean(), optional(:keywords) => SEO.JSONLD.DefinedTerm.t() | map() | String.t() | URI.t(), optional(:location) => String.t() | SEO.JSONLD.PostalAddress.t() | map() | SEO.JSONLD.VirtualLocation.t() | SEO.JSONLD.Place.t(), optional(:maximum_attendee_capacity) => integer(), optional(:maximum_physical_attendee_capacity) => integer(), optional(:maximum_virtual_attendee_capacity) => integer(), optional(:offers) => SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(), optional(:organizer) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:performer) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:performers) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:previous_start_date) => DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), optional(:recorded_in) => SEO.JSONLD.CreativeWork.t() | map(), optional(:remaining_attendee_capacity) => integer(), optional(:review) => SEO.JSONLD.Review.t() | map(), optional(:sponsor) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:start_date) => Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(), optional(:sub_event) => SEO.JSONLD.Event.t() | map(), optional(:sub_events) => SEO.JSONLD.Event.t() | map(), optional(:super_event) => SEO.JSONLD.Event.t() | map(), optional(:translator) => SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), optional(:typical_age_range) => String.t(), optional(:work_featured) => SEO.JSONLD.CreativeWork.t() | map(), optional(:work_performed) => SEO.JSONLD.CreativeWork.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_mode: String.t() | URI.t(), course_schedule: SEO.JSONLD.Schedule.t() | map(), course_workload: String.t(), instructor: SEO.JSONLD.Person.t() | map(), about: SEO.JSONLD.Thing.t() | map(), actor: SEO.JSONLD.Person.t() | map() | SEO.JSONLD.PerformingGroup.t(), aggregate_rating: SEO.JSONLD.AggregateRating.t() | map(), attendee: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), attendees: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), audience: SEO.JSONLD.Audience.t() | map(), composer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), contributor: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), director: SEO.JSONLD.Person.t() | map(), door_time: DateTime.t() | NaiveDateTime.t() | String.t() | Time.t(), duration: Duration.t() | String.t() | SEO.JSONLD.QuantitativeValue.t() | map(), end_date: DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), event_attendance_mode: :mixed_event_attendance_mode | :offline_event_attendance_mode | :online_event_attendance_mode, event_schedule: SEO.JSONLD.Schedule.t() | map(), event_status: :event_cancelled | :event_moved_online | :event_postponed | :event_rescheduled | :event_scheduled, funder: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), funding: SEO.JSONLD.Grant.t() | map(), has_participation_offer: SEO.JSONLD.Offer.t() | map(), has_sponsorship_offer: SEO.JSONLD.Offer.t() | map(), in_language: String.t() | SEO.JSONLD.Language.t() | map(), is_accessible_for_free: boolean(), keywords: SEO.JSONLD.DefinedTerm.t() | map() | String.t() | URI.t(), location: String.t() | SEO.JSONLD.PostalAddress.t() | map() | SEO.JSONLD.VirtualLocation.t() | SEO.JSONLD.Place.t(), maximum_attendee_capacity: integer(), maximum_physical_attendee_capacity: integer(), maximum_virtual_attendee_capacity: integer(), offers: SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(), organizer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), performer: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), performers: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), previous_start_date: DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(), recorded_in: SEO.JSONLD.CreativeWork.t() | map(), remaining_attendee_capacity: integer(), review: SEO.JSONLD.Review.t() | map(), sponsor: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), start_date: Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(), sub_event: SEO.JSONLD.Event.t() | map(), sub_events: SEO.JSONLD.Event.t() | map(), super_event: SEO.JSONLD.Event.t() | map(), translator: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(), typical_age_range: String.t(), work_featured: SEO.JSONLD.CreativeWork.t() | map(), work_performed: SEO.JSONLD.CreativeWork.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() ]
A JSON-LD map ready to be nested or rendered. String-keyed, always
includes "@type" set to "CourseInstance", 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 CourseInstance JSON-LD map.
Fields
:course_mode- The medium or means of delivery of the course instance or the mode of study, either as a text label (e.g. "online", "onsite" or "blended"; "synchronous" or "asynchronous"; "full-time" or "part-time") or as a URL reference to a term from a controlled vocabulary (e.g. https://ceds.ed.gov/element/001311#Asynchronous).:course_schedule- Represents the length and pace of a course, expressed as aSEO.JSONLD.Schedule.:course_workload- The amount of work expected of students taking the course, often provided as a figure per week or per month, and may be broken down by type. For example, "2 hours of lectures, 1 hour of lab work and 3 hours of independent study per week".:instructor- A person assigned to instruct or provide instructional assistance for theSEO.JSONLD.CourseInstance.
Inherited properties
Additional properties are available through the inheritance chain. See each ancestor's docs for its properties: