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

View Source

A program offered by an institution which determines the learning progress to achieve an outcome, usually a credential like a degree or certificate. This would define a discrete set of opportunities (e.g., job, courses) that together constitute a program with a clear start, end, set of requirements, and transition to a new occupational opportunity (e.g., a job), or sometimes a higher educational opportunity (e.g., an advanced degree).

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

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "EducationalOccupationalProgram", 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 EducationalOccupationalProgram JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:application_deadline) => Date.t() | String.t(),
    optional(:application_start_date) => Date.t() | String.t(),
    optional(:day_of_week) =>
      :friday
      | :monday
      | :public_holidays
      | :saturday
      | :sunday
      | :thursday
      | :tuesday
      | :wednesday,
    optional(:educational_credential_awarded) =>
      String.t()
      | URI.t()
      | SEO.JSONLD.EducationalOccupationalCredential.t()
      | map(),
    optional(:educational_program_mode) => URI.t() | String.t(),
    optional(:end_date) =>
      DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(),
    optional(:financial_aid_eligible) =>
      SEO.JSONLD.DefinedTerm.t() | map() | String.t(),
    optional(:has_course) => SEO.JSONLD.Course.t() | map(),
    optional(:maximum_enrollment) => integer(),
    optional(:number_of_credits) =>
      integer() | SEO.JSONLD.StructuredValue.t() | map(),
    optional(:occupational_category) =>
      SEO.JSONLD.CategoryCode.t() | map() | String.t(),
    optional(:occupational_credential_awarded) =>
      SEO.JSONLD.EducationalOccupationalCredential.t()
      | map()
      | String.t()
      | URI.t(),
    optional(:offers) => SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(),
    optional(:program_prerequisites) =>
      SEO.JSONLD.EducationalOccupationalCredential.t()
      | map()
      | SEO.JSONLD.AlignmentObject.t()
      | SEO.JSONLD.Course.t()
      | String.t(),
    optional(:program_type) => String.t() | SEO.JSONLD.DefinedTerm.t() | map(),
    optional(:provider) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:salary_upon_completion) =>
      SEO.JSONLD.MonetaryAmountDistribution.t() | map(),
    optional(:start_date) =>
      Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(),
    optional(:term_duration) => Duration.t() | String.t(),
    optional(:terms_per_year) => number(),
    optional(:time_of_day) => String.t(),
    optional(:time_to_complete) => Duration.t() | String.t(),
    optional(:training_salary) =>
      SEO.JSONLD.MonetaryAmountDistribution.t() | map(),
    optional(:typical_credits_per_term) =>
      SEO.JSONLD.StructuredValue.t() | map() | integer(),
    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()
  }
  | [
      application_deadline: Date.t() | String.t(),
      application_start_date: Date.t() | String.t(),
      day_of_week:
        :friday
        | :monday
        | :public_holidays
        | :saturday
        | :sunday
        | :thursday
        | :tuesday
        | :wednesday,
      educational_credential_awarded:
        String.t()
        | URI.t()
        | SEO.JSONLD.EducationalOccupationalCredential.t()
        | map(),
      educational_program_mode: URI.t() | String.t(),
      end_date: DateTime.t() | NaiveDateTime.t() | String.t() | Date.t(),
      financial_aid_eligible: SEO.JSONLD.DefinedTerm.t() | map() | String.t(),
      has_course: SEO.JSONLD.Course.t() | map(),
      maximum_enrollment: integer(),
      number_of_credits: integer() | SEO.JSONLD.StructuredValue.t() | map(),
      occupational_category: SEO.JSONLD.CategoryCode.t() | map() | String.t(),
      occupational_credential_awarded:
        SEO.JSONLD.EducationalOccupationalCredential.t()
        | map()
        | String.t()
        | URI.t(),
      offers: SEO.JSONLD.Offer.t() | map() | SEO.JSONLD.Demand.t(),
      program_prerequisites:
        SEO.JSONLD.EducationalOccupationalCredential.t()
        | map()
        | SEO.JSONLD.AlignmentObject.t()
        | SEO.JSONLD.Course.t()
        | String.t(),
      program_type: String.t() | SEO.JSONLD.DefinedTerm.t() | map(),
      provider: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      salary_upon_completion: SEO.JSONLD.MonetaryAmountDistribution.t() | map(),
      start_date: Date.t() | String.t() | DateTime.t() | NaiveDateTime.t(),
      term_duration: Duration.t() | String.t(),
      terms_per_year: number(),
      time_of_day: String.t(),
      time_to_complete: Duration.t() | String.t(),
      training_salary: SEO.JSONLD.MonetaryAmountDistribution.t() | map(),
      typical_credits_per_term:
        SEO.JSONLD.StructuredValue.t() | map() | integer(),
      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 "EducationalOccupationalProgram", 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 EducationalOccupationalProgram JSON-LD map.

Fields

  • :application_deadline - The date on which the program stops collecting applications for the next enrollment cycle. Flexible application deadlines (for example, a program with rolling admissions) can be described in a textual string, rather than as a DateTime.
  • :application_start_date - The date at which the program begins collecting applications for the next enrollment cycle.
  • :day_of_week - The day of the week for which these opening hours are valid. One of: :friday, :monday, :public_holidays, :saturday, :sunday, :thursday, :tuesday, :wednesday.
  • :educational_credential_awarded - A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program.
  • :educational_program_mode - Similar to courseMode, the medium or means of delivery of the program as a whole. The value may either be a text label (e.g. "online", "onsite" or "blended"; "synchronous" or "asynchronous"; "full-time" or "part-time") or a URL reference to a term from a controlled vocabulary (e.g. https://ceds.ed.gov/element/001311#Asynchronous ).
  • :end_date - The end date and time of the item (in ISO 8601 date format).
  • :financial_aid_eligible - A financial aid type or program which students may use to pay for tuition or fees associated with the program.
  • :has_course - A course or class that is one of the learning opportunities that constitute an educational / occupational program. No information is implied about whether the course is mandatory or optional; no guarantee is implied about whether the course will be available to everyone on the program.
  • :maximum_enrollment - The maximum number of students who may be enrolled in the program.
  • :number_of_credits - The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram.
  • :occupational_category - A category describing the job, preferably using a term from a taxonomy such as BLS O*NET-SOC, ISCO-08 or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided.

Note: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.

  • :occupational_credential_awarded - A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program.
  • :offers - An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use businessFunction to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a SEO.JSONLD.Demand. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer.
  • :program_prerequisites - Prerequisites for enrolling in the program.
  • :program_type - The type of educational or occupational program. For example, classroom, internship, alternance, etc.
  • :provider - The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.
  • :salary_upon_completion - The expected salary upon completing the training.
  • :start_date - The start date and time of the item (in ISO 8601 date format).
  • :term_duration - The amount of time in a term as defined by the institution. A term is a length of time where students take one or more classes. Semesters and quarters are common units for term.
  • :terms_per_year - The number of times terms of study are offered per year. Semesters and quarters are common units for term. For example, if the student can only take 2 semesters for the program in one year, then termsPerYear should be 2.
  • :time_of_day - The time of day the program normally runs. For example, "evenings".
  • :time_to_complete - The expected length of time to complete the program if attending full-time.
  • :training_salary - The estimated salary earned while in the program.
  • :typical_credits_per_term - The number of credits or units a full-time student would be expected to take in 1 term however 'term' is defined by the institution.

Inherited properties

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