Oak Curriculum Ontology
type: Ontology
abstract: This ontology defines the structure of programmes, units, unit variants, and lessons for the Oak Curriculum. It provides a framework for representing curriculum sequencing, optionality, and exam board variations.
created: 2026-02-12T12:33:32Z
creator: Oak National Academy
issued: 2026-02-12T12:33:32Z
license: http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/
modified: 2026-02-12T12:33:32Z
publisher: Oak National Academy
rights: Copyright © 2026 Oak National Academy.
status: Oak Curriculum Ontology
preferred namespace prefix: curric
preferred namespace uri: https://w3id.org/uk/oak/curriculum/ontology/
comment: This ontology defines the structure and content of the Oak Curriculum Ontology. It is a machine-readable semantic representation of the Oak Curriculum and linkage to the National Curriculum for England (2014).
imports: core
imports: schema.org
version IRI: https://w3id.org/uk/oak/curriculum/ontology/0.1.0
version info: 0.1.0

Content Descriptor
type: Class
comment: A statement of knowledge (a concept, fact or skill) within a sub-strand.
subclass of: Concept

Discipline
type: Class
comment: A domain of knowledge (e.g. mathematics, english, history).
subclass of: Concept

Exam Board
type: Class
comment: An awarding organization that creates, assesses, and awards qualifications in England. Exam boards develop specifications for qualifications such as GCSEs and A-levels, which are regulated by Ofqual.

Inclusion
type: Class
comment: An abstract superclass for UnitVariantInclusion and LessonInclusion.

Key Learning Point
type: Class
comment: A specific learning objective or outcome that pupils should achieve in a lesson. Key learning points are specific to individual lessons and represent the core knowledge or skills that students should acquire.

Key Stage
type: Class
comment: A key stage that structures learning for specific age groups.

Keyword
type: Class
comment: Description of a keyword.
subclass of: DefinedTerm

Lesson
type: Class
comment: A single teaching session within a unit variant. A lesson includes learning activities, resources, and formative assessment designed to achieve specific learning outcomes.

Lesson Inclusion
type: Class
comment: Represents the inclusion of a lesson in a unit variant, including sequencing and optional metadata such as whether the lesson is required or optional.
subclass of: Inclusion

Misconceptions
type: Class
comment: Description of a misconception or common mistake.

Phase
type: Class
comment: A phase of study in the education system.

Programme
type: Class
comment: A structured sequence of units designed for a specific year group, and optionally for a specific exam board and tier. A programme defines the curriculum pathway for a subject that students follow during an academic year.

Progression
type: Class
comment: A progression defines curriculum content relating to a single sub-strand, for a scheme.

Pupil Lesson Outcome
type: Class
comment: The expected outcome that pupils should be able to demonstrate by the end of a lesson. This describes what pupils should be able to do or understand after completing the lesson.

Scheme
type: Class
comment: A scheme defines one or more progressions for a subject and a key stage.

Strand
type: Class
comment: An area of knowledge within a discipline (e.g. number, algebra).
subclass of: Concept

Sub-Strand
type: Class
comment: A sub-division of a strand (e.g. place value, addition and subtraction).
subclass of: Concept

Subject
type: Class
comment: Subject (e.g. biology, history, physical education).

Subject Group
type: Class
comment: Subject group (e.g. science, history, physical education).

Thread
type: Class
comment: A conceptual thread that weaves through multiple units or lessons, representing a recurring theme, skill, or big idea.

Tier
type: Class
comment: A level of difficulty within a tiered qualification, typically used in GCSE subjects. Foundation tier covers grades 1-5, while Higher tier covers grades 4-9, with grade 4 as the overlap.

Unit
type: Class
comment: A unit of study representing a coherent body of knowledge and skills. A unit may have multiple unit variants for different tiers and/or exam boards.

Unit Variant
type: Class
comment: A specific version of a unit, potentially adapted for different exam boards, tiers, or pedagogical approaches. Unit variants share the same learning objectives but may differ in content, examples, or assessment focus.

Unit Variant Choice
type: Class
comment: A choice between multiple unit variants at a given sequence position. One unit variant should be selected from the available options.

Unit Variant Inclusion
type: Class
comment: Represents the inclusion of a unit variant in a programme, including sequencing and optional metadata such as whether the unit variant is required or optional.
subclass of: Inclusion

Year Group
type: Class
comment: A year group within a key stage.

accreditation body
type: DatatypeProperty
comment: The body that accredits this exam board.
domain: Exam Board
range: string

aims
type: ObjectProperty
comment: Ordered list of educational aims for this subject as stated in the National Curriculum.
domain: Subject
range: List

correction
type: DatatypeProperty
comment: A correct explanation that addresses and fixes the misconception.
domain: Misconceptions
range: string

includes content descriptor
type: ObjectProperty
comment: Indicates that a progression includes a specific content descriptor.
domain: Progression
range: Content Descriptor

covers discipline
type: ObjectProperty
comment: Indicates that a subject group covers content from a discipline.
domain: Subject Group
range: Discipline

covers key stage
type: ObjectProperty
comment: Indicates that a scheme covers a specific key stage.
domain: Scheme
range: Key Stage

covers strand
type: ObjectProperty
comment: Indicates that a subject covers content from a strand of knowledge.
domain: Subject
range: Strand

covers year group
type: ObjectProperty
comment: Indicates that a programme covers a specific year group.
domain: Programme
range: Year Group
inverse of: is covered by programme

display order
type: DatatypeProperty
comment: Numeric position for ordered display of curriculum concepts.
domain: Concept
range: integer

exam type
type: DatatypeProperty
comment: Type of exam qualification.
domain: Programme
range: string

has exam board
type: ObjectProperty
comment: Indicates that a programme is specified by an exam board.
domain: Programme
range: Exam Board

has key learning point
type: ObjectProperty
comment: Indicates that a lesson has a specific key learning point.
domain: Lesson
range: Key Learning Point
inverse of: is key learning point of

has key stage
type: ObjectProperty
comment: Indicates that a phase contains a key stage as a subdivision.
domain: Phase
range: Key Stage
inverse of: is key stage of

has keyword
type: ObjectProperty
comment: Indicates that a lesson has a specific keyword.
domain: Lesson
range: Keyword

has lesson inclusion
type: ObjectProperty
comment: Links a unit variant to a lesson inclusion relationship.
domain: Unit Variant
range: Lesson Inclusion

has misconception
type: ObjectProperty
comment: Indicates that a lesson's content relates to a specific misconception.
domain: Lesson
range: Misconceptions
inverse of: is misconception of

has programme
type: ObjectProperty
comment: Indicates that an Oak programme is specified for a National Curriculum scheme.
domain: Scheme
range: Programme
inverse of: is programme of

has progression
type: ObjectProperty
comment: Indicates that a scheme contains a progression.
domain: Scheme
range: Progression

has pupil lesson outcome
type: ObjectProperty
comment: Indicates that a lesson has a specific pupil learning outcome.
domain: Lesson
range: Pupil Lesson Outcome

has scheme
type: ObjectProperty
comment: Indicates that a subject contains a scheme.
domain: Subject
range: Scheme
inverse of: is scheme of

has subject
type: ObjectProperty
comment: Indicates that a subject group contains a subject.
domain: Subject Group
range: Subject

has tier
type: ObjectProperty
comment: Indicates that a programme is specified for a tier.
domain: Programme
range: Tier

has unit
type: ObjectProperty
comment: Indicates that an Oak unit is specified for a National Curriculum scheme.
domain: Scheme
range: Unit

has unit variant
type: ObjectProperty
comment: Indicates that a unit has a specific unit variant.
domain: Unit
range: Unit Variant

has unit variant inclusion
type: ObjectProperty
comment: Links a programme to a unit variant inclusion relationship.
domain: Programme
range: Unit Variant Inclusion

has unit variant option
type: ObjectProperty
comment: One of the available unit variant options in a choice.
domain: Unit Variant Choice
range: Unit Variant

has year group
type: ObjectProperty
comment: Indicates that a key stage contains a year group as a subdivision.
domain: Key Stage
range: Year Group

identifier
type: DatatypeProperty
comment: A numeric identifier.
domain: Thing
range: positiveInteger

includes content
type: ObjectProperty
comment: Indicates that a unit includes a specific content descriptor.
domain: Unit
range: Content Descriptor
inverse of: is content of

includes lesson
type: ObjectProperty
comment: Specifies which lesson is included.
domain: Lesson Inclusion
range: Lesson

includes thread
type: ObjectProperty
comment: Indicates that a unit includes development of a cross-cutting thread.
domain: Unit
range: Thread

includes unit variant
type: ObjectProperty
comment: Specifies which unit variant is included.
domain: Unit Variant Inclusion
range: Unit Variant

includes unit variant choice
type: ObjectProperty
comment: Links a unit inclusion to a choice group. Use this instead of includesUnitVariant when multiple options are available.
domain: Unit Variant Inclusion
range: Unit Variant Choice

is content of
type: ObjectProperty
comment: Indicates that a content descriptor is included by a specific unit.
domain: Content Descriptor
range: Unit

is covered by programme
type: ObjectProperty
comment: Indicates that a year group is covered by a specific programme.
domain: Year Group
range: Programme

is covered by scheme
type: ObjectProperty
comment: Indicates that a key stage is covered by a specific scheme.
domain: Key Stage
range: Scheme
inverse of: covers key stage

is covered by subject
type: ObjectProperty
comment: Indicates that content from a strand of knowledge is covered by a subject.
domain: Strand
range: Subject
inverse of: covers strand

is covered by subject group
type: ObjectProperty
comment: Indicates that content from a discipline is covered by a subject group.
domain: Discipline
range: Subject Group
inverse of: covers discipline

is exam board of
type: ObjectProperty
comment: Indicates that an exam board is specifying a programme.
domain: Exam Board
range: Programme
inverse of: has exam board

is examined
type: DatatypeProperty
comment: Indicates whether the programme is examined.
domain: Programme
range: boolean

is included by progression
type: ObjectProperty
comment: Indicates that a content descriptor is included in a specific progression.
domain: Content Descriptor
range: Progression
inverse of: includes content descriptor

is key learning point of
type: ObjectProperty
comment: Indicates that a key learning point belongs to a specific lesson.
domain: Key Learning Point
range: Lesson

is key stage of
type: ObjectProperty
comment: Indicates that a key stage is a subdivision of a phase.
domain: Key Stage
range: Phase

is keyword of
type: ObjectProperty
comment: Indicates a keyword of a lesson.
domain: Keyword
range: Lesson
inverse of: has keyword

is misconception of
type: ObjectProperty
comment: Indicates a misconception is related to a lesson's content.
domain: Misconceptions
range: Lesson

is national curriculum
type: DatatypeProperty
comment: Indicates whether the programme delivers content that is specified in the National Curriculum.
domain: Programme
range: boolean

is programme of
type: ObjectProperty
comment: Indicates that a National Curriculum scheme includes an Oak programme.
domain: Programme
range: Scheme

is progression of
type: ObjectProperty
comment: Indicates that a progression is part of a scheme.
domain: Progression
range: Scheme
inverse of: has progression

is pupil lesson outcome of
type: ObjectProperty
comment: Indicates that a pupil lesson outcome belongs to a specific lesson.
domain: Pupil Lesson Outcome
range: Lesson
inverse of: has pupil lesson outcome

is required
type: DatatypeProperty
comment: Indicates whether the programme delivers content that maintained schools are legally required to teach (whether specified in the National Curriculum or not).
domain: Programme
range: boolean

is scheme of
type: ObjectProperty
comment: Indicates that a scheme is part of a subject.
domain: Scheme
range: Subject

is subject of
type: ObjectProperty
comment: Indicates that a subject is part of a subject group.
domain: Subject
range: Subject Group
inverse of: has subject

is thread of
type: ObjectProperty
comment: Indicates a cross-cutting thread that is developed by a specific unit.
domain: Thread
range: Unit
inverse of: includes thread

is tier of
type: ObjectProperty
comment: Indicates that a tier includes a programme.
domain: Tier
range: Programme
inverse of: has tier

is unit of
type: ObjectProperty
comment: Indicates that a National Curriculum scheme includes an Oak unit.
domain: Unit
range: Scheme
inverse of: has unit

is unit variant of
type: ObjectProperty
comment: Indicates a unit variant of a unit.
domain: Unit Variant
range: Unit
inverse of: has unit variant

is year group of
type: ObjectProperty
comment: Indicates that a year group is a subdivision of a key stage.
domain: Year Group
range: Key Stage
inverse of: has year group

lower age boundary
type: DatatypeProperty
comment: Lower age boundary of an educational level.
domain: Class
  union of: Key Stage
  union of: Phase
  union of: Year Group
range: nonNegativeInteger

maximum choices
type: DatatypeProperty
comment: The maximum number of unit variant options that can be selected from a unit variant choice. Used with includesUnitVariantChoice to specify selection constraints. For example, maxChoices=1 means only one option can be chosen (pick one of many). If not specified, defaults to the number of available options (can pick all).
domain: Unit Variant Inclusion
range: positiveInteger

minimum choices
type: DatatypeProperty
comment: The minimum number of unit variant options that must be selected from a unit variant choice. Used with includesUnitVariantChoice to specify selection constraints. For example, minChoices=1 means at least one option must be chosen.
domain: Unit Variant Inclusion
range: nonNegativeInteger

rationale
type: DatatypeProperty
comment: Specific text relating to rationale.
domain: Subject
range: langString

school curriculum
type: DatatypeProperty
comment: Specific text relating to school curriculum.
domain: Subject
range: langString

sequence position
type: DatatypeProperty
type: FunctionalProperty
comment: The position within a sequence. Each inclusion has exactly one position.
domain: Inclusion
range: positiveInteger

statement
type: DatatypeProperty
comment: A textual statement expressing a misconception.
domain: Misconceptions
range: string

supporting guidance
type: AnnotationProperty
type: DatatypeProperty
comment: Supporting guidance for a content descriptor.
domain: Content Descriptor
range: langString
sub property of: note

unit prior knowledge requirements
type: DatatypeProperty
comment: Description.
domain: Unit
range: string

upper age boundary
type: DatatypeProperty
comment: Upper age boundary of an educational level.
domain: Class
  union of: Key Stage
  union of: Phase
  union of: Year Group
range: positiveInteger

website
type: DatatypeProperty
comment: The official website URL of an exam board.
domain: Exam Board
range: anyURI

why this why now
type: DatatypeProperty
comment: Explains the pedagogical rationale for teaching this unit at this point in the curriculum sequence, including what prior learning it builds upon and how it prepares pupils for subsequent units.
domain: Unit
range: string