Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Background: Community Needs Driving The Project

We’ve heard many use cases expressed that illustrate the need to align course content to taxonomies. These use cases are diverse and span a range of needs and outcomes. However, they are all underpinned by a common need of connecting course content to taxonomies, or controlled vocabularies. This is often expressed by the need to “tag content”, or to “add tags to content”.

...

  • Standardize and control the taxonomies your authors are using to align content to competencies, skills, subjects

  • Choose to author your own taxonomy, or ingest third-party taxonomies, such as the Open Skills Network taxonomy or Lightcast Skills taxonomy

Value for learners

...

Until now tagging capabilities have been built to support the delivery of specific, narrowly scoped, features.  For example, the Discovery IDA has both a simple feature to provide tagging via the Django taggit library, and a custom set of models to allow the mapping of a skills taxonomy to courses.  Additionally, a number of course-run-specific metadata fields are stored in the course_metadata_courserun in the edx-platform database.  These fields require database migrations to add and remove and are specific to particular deployments of the platform in many cases. While many of the details of the technical implementation will not be understood until the technical design has been approved, there are important considerations that we can list regarding our expected approach.

...

  1. The platform will support tagging based primarily on name-value pair style tags. It will support the following four types:

Field Type

Description

Field (example names)

Tag (value)

Author Experience

Free-form

Open-ended option to allow any author to add any desired tags; these are all collected in a single (possibly invisible) field for good data management

Tags

Anything author wants to enter

Author sees a field to add as many tags as desired and can free-form add. Could include predictive suggestions of existing tags as they type.

System-defined

Core tags controlled at the platform level in order to keep consistency across search and discovery and for general messiness control. Admins would not be able to change these.

Language, format/content type, organization

Specific set against each of these.

Many of these would not be visible but some might be integrated into facet search (e.g., content format, language). Most would not be editable.

Admin-defined fields

Admins can set up specific fields that authors can free-form enter tags on. These would typically be used for instances in which there could be many possible tags but admin wants them organized separately from free-form tags

Outcomes, Learning Objectives

Anything author wants to enter

Author is presented with the field and can enter a single free-form value.

Admin-defined closed taxonomies

Admins can set up specific fields that require closed taxonomies (including selecting from existing, uploading, manually creating). Includes ability to create child and grandchild hierarchies

Lightcast skills, state standards

Biology, Microbiology

Author is presented with the field and a drop-down (or other UI selection element) to select the value.

Example of Name-Value Pairs might include:

Field

Tag

subject

eg Anthropology

competency

eg Conflict Resolution

skill

eg Define Stakeholder Roles

curriculum alignment

eg Operations and Algebraic Thinking

learning outcome

eg Factor Binomial equations

level of difficulty

eg Medium

hours of effort

eg 4 - 6

prerequisites

eg Linear Algebra

...

Taxonomy: A controlled vocabulary in which all the values belong to a single hierarchical structure and have parent/child relationships to other terms, or horizontal relationships to other terms. For example, the Core Subject Taxonomy for Mathematical Sciences Education or the Open Skills Network Taxonomies

Name-Value Pair: The mechanism to relate tags to data sets, where name functions as the constant that defines the data set, and value functions as the variable tags that belong to the set. For example:

...