Oak Curriculum Ontology
type: Ontology
version IRI: https://w3id.org/uk/oak/curriculum/ontology/0.1.0
imports: core
imports: schema.org
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).
version info: 0.1.0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

maximum choices
type: DatatypeProperty
domain: Unit Variant Inclusion
range: positiveInteger
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).

minimum choices
type: DatatypeProperty
domain: Unit Variant Inclusion
range: nonNegativeInteger
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.

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

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

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

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

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

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

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

why this why now
type: DatatypeProperty
domain: Unit
range: string
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.

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

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

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
subclass of: DefinedTerm
comment: Description of a keyword.

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
subclass of: Inclusion
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.

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
subclass of: Concept
comment: An area of knowledge within a discipline (e.g. number, algebra).

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

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
subclass of: Inclusion
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.

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