Software Design Specification

The purpose of this page is to give a high level overview of the technical design decisions that went into the Repository of Organized Curriculums (ROC) data model and its reference implementation

Tech stack

Graph data as SQL

Django web frameworks

MPTT Trees

The Note this is a logically “hidden” node that should not be visible to end users of the ROC server.

Linked data


A namespace that corresponds to some-real world region or organization, e.g., Ghana, USA, KhanAcademy, LE, etc. The Global jurisdiction is used as the namespace for ROC data model constants (e.g. digitzation_methods, content_kinds, publication_statuses, etc.).

Controlled vocabularies and terms

The digital representation of curriculum standards metadata types described below is based on terms chosen from controlled vocabularies defined within the context of a jurisdiction. All examples show in this section assume jurisdiction=Ghana.

When describing the standard statement with notation B4.1.3.1 within the Ghanian math curriculum standards, we would like to indicate it is part of the “Basic 4” grade level, but instead of using a string value we will use a URI property. The Uniform Resource Identifier (URI) value is an example of one such identifiers, specifically the identifiers for the “Basic 4” grade level within the Ghana educational system. In this URI, is the server hosting the controlled vocabulary, Ghana is the jurisdiction name, GradeLevels is the name of the controlled vocabulary, and B4 is the term name.

Standards documents and standard nodes

Content collections and content nodes

Content correlations

Standards crosswalks