An e-learning course may include a number of structural elements that are aggregated
into one or more levels. Each higher level may refer to any instance of a lower
level. The structural elements include a course, a sub-course, a learning unit,
or a knowledge item. The structural elements may include metadata. The structural
elements also may include relations between structural elements. The course and
its structural elements do not enforce any sequence of structural elements that
the learner may use to traverse the course. In addition, the structural elements
may be reused and reassembled to form different courses. A content repository is
configured to store course data and its structural elements. A content player is
configured to access the stored course data and assemble the structural elements.