Modelling Course and CourseInstance

From Schema Course extension Community Group
Schema Course Extension Wiki
Navigation
Main Page
Outline use cases
Example sites
Other useful links
Community group home page
email list for group
schema.org Git hub issue

Requirement a) must be able to identify web pages that describe courses. Arises from use cases 1, 9 and 2 (and is implied by most of the others).

Requirement p) must be able to identify web pages that describe specific instances of a course being offered. Arises from many of the refinements to use cases 1, 9 and 2

Discussion: Modelling Course and CourseOffering & Course, a new dawn? threads.

Proposal

Course, a subtype of CreativeWork: A description of an educational course which may be offered as distinct instances at different times and places, or through different media or modes of study. An educational course is a sequence of one or more educational events and/or creative works which aims to build knowledge, competence or ability of learners.

CourseInstance, a subtype of Event: An instance of a Course offered at a specific time and place or through specific media or mode of study or to a specific section of students.

hasCourseInstance, a property of Course with expected range CourseInstance: An offering of the course at a specific time and place or through specific media or mode of study or to a specific section of students.


Examples

Example 1. Describing one offering of an online course.

Based on Coursera Data Scientist's Toolbox Code example

TYPES: #Course1 Course, CourseInstance, hasCourseInstance

PRE-MARKUP:
<!-- A MOOC / free online course. As a simple one-off course -->
<!-- Based on https://www.coursera.org/course/datascitoolbox -->
[Course]
  name: The Data Scientist’s Toolbox
  description: In this course you will get an introduction to the main tools and 
        ideas in the data scientist's toolbox...
  hasCourseInstance [CourseInstance]:
    courseMode: MOOC
    courseMode: online
    startDate:  February 15
    endDate:    March 21

MICRODATA:
<!--TODO-->

RDFA:
<body vocab="http://schema.org/">
<!-- A MOOC / free online course. As a simple one-off course -->
<!-- Based on https://www.coursera.org/course/datascitoolbox -->

<main typeof="Course">
  <h1 property="name">The Data Scientist's Toolbox</h1>
  <h2>About this Course</h2>
  <p property="description">
       In this course you will get an introduction to the main tools and ideas in the
       data scientist's toolbox...</p>
  <div rel="hasCourseInstance" typeof="CourseInstance">
    <meta property="courseMode" content="MOOC" />
    <meta property="courseMode" content="online" />
    <h2>Session dates</h2>
    <span property="startDate">February 15</span> - 
    <span property="endDate">March 21</span>                
  </div>
</main>
</body>


JSON:
<!--TODO--> 

Example 2. Describing a college course offered at several locations.

Based on Fife College Accounting Code example

TYPES: #Course2 Course, CourseInstance, hasCourseInstance

PRE-MARKUP:
[Course]
  name: HNC Accounting
  description: This course is designed for those wishing to take up a career in Accounting 
        and Financial Administration within a range of organisations....
  hasCourseInstance [CourseInstance]:
    courseMode: Full Time
    startDate:  2016-08-29
    location:   St Brycedale Campus Kirkcaldy
  hasCourseInstance [CourseInstance]:
    courseMode: Full Time
    startDate:  2016-08-29
    location:   Halbeath Campus Dunfermline
  hasCourseInstance [CourseInstance]:
    courseMode: Evenings only and weekends
    startDate:  2016-08-31
    location:   St Brycedale Campus Kirkcaldy

MICRODATA:
<!--TODO-->

RDFA:
<body vocab="http://schema.org/" typeof="Course">
<!-- A college course offered at several locations -->
<!-- based on http://www.fife.ac.uk/student/courses/course/HCACC -->
  <h1>Course Details</h1>           
  <h2 property="name">HNC Accounting</h2>
    <p property="description">This course is designed for those wishing to take up 
       a career in Accounting and Financial Administration within a range of 
       organisations....</p>
  <h2>This course is currently offered on the date(s) and venue(s) listed below.</h2>
    <table >
      <tbody>
        <tr >
          <th scope="col" >Method of Study</th>
          <th scope="col" >Starts</th>
          <th scope="col" >Ends</th>
          <th scope="col" >Based at</th>
        </tr>
        <tr rel="hasCourseInstance" typeOf="CourseInstance">
          <td property="courseMode">Full Time</td>
          <td property="startDate">29 Aug 2016</td>
          <td property="endDate">23 Jun 2017</td>
          <td property="location">St Brycedale Campus Kirkcaldy</td>
        </tr>
        <tr rel="hasCourseInstance" typeOf="CourseInstance">
          <td property="courseMode">Full Time</td>
          <td property="startDate">29 Aug 2016</td>
          <td property="endDate">23 Jun 2017</td>
          <td  property="location">Halbeath Campus Dunfermline</td>
        </tr>
        <tr rel="hasCourseInstance" typeOf="CourseInstance">
          <td property="courseMode">Evenings only and weekends</td>
          <td property="startDate">31 Aug 2016</td>
          <td property="endDate">21 Jun 2017</td>
          <td  property="location">St Brycedale Campus Kirkcaldy</td>
        </tr>
      </tbody>
    </table>  
</body>

JSON:
<!--TODO--> 

Example 3. Describing a self-paced distance learning course where the price depends on the mode of delivery

Based on PTC Basic Proof Reading Course Code example

TYPES: #Course3 Course, CourseInstance, hasCourseInstance

PRE-MARKUP:
<!--A self-paced distance learning course (no events)-->
<!--Based on http://www.train4publishing.co.uk/courses/distance-learning/basic-proofreading -->
[Course]
  name: Basic Proofreading
  description:  The distance learning training course that takes you from 
        complete beginner to...
  hasCourseInstance [CourseInstance]:
    courseMode: online
    courseMode: distance learning
    offers [Offer]:
      price:    395
      priceCurrency:    GBP
  hasCourseInstance [CourseInstance]:
    courseMode: posted
    courseMode: distance learning
    offers [Offer]:
      price:    440
      priceCurrency:    GBP


MICRODATA:
<!--TODO-->

RDFA:
<body vocab="http://schema.org/">
<!--A self-paced distance learning course (no events)-->
<!--Based on http://www.train4publishing.co.uk/courses/distance-learning/basic-proofreading -->
<div typeof="Course">
  <h1 property="name">Basic Proofreading</h1>
  <p property="description">The distance learning training course that takes you 
        from complete beginner to PQB qualified proofreader in one step.</p>
  <div rel="hasCourseInstance" typeOf="CourseInstance">
    <meta property="courseMode" content="distance learning" />
    <span property="courseMode">Online</span>,
    <div rel="offers" typeOf="Offer">
      cost:<meta property="priceCurrency" content="GBP" />
           £<span property="price">395</span>
    </div>
  </div>
  <div rel="hasCourseInstance" typeOf="CourseInstance">
    <meta property="courseMode" content="distance learning" />
    <span property="courseMode">Posted</span>,
    <div rel="offers" typeOf="Offer">
      cost:<meta property="priceCurrency" content="GBP" />
           £<span property="price">440</span>
    </div>
  </div>	
</div>
</body>

JSON:
<!--TODO-->