Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
141 changes: 78 additions & 63 deletions moochub-schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -575,80 +575,56 @@
"type": "object",
"description": "This schema describes the attributes of a course id. It is used to point at a specific course.",
"properties": {
"name": {
"type": "array",
"description": "List of names of the course. This array allows localized strings. A name and a language have to be given in the respective element.",
"items": {
"type": "object",
"properties": {
"inLanguage": {
"type": "string",
"description": "The language the name is given in. Has to be a shortcode according to BCP 47.",
"example": "en"
},
"name": {
"type": "string",
"description": "The name of the course in the given language by the \"inLanguage\" attribute.",
"example": "HPI Academy: Leading Digital Transformation and Innovation - Fall 2020"
}
},
"required": [
"inLanguage",
"name"
]
}
},
"educationalFramework": {
"type": "string",
"description": "This labels the object as a link to a course. It is needed to be compliant with a \"Skill\" ",
"enum": [
"Course_ID"
]
},
"educationalFrameworkVersion": {
"title": {
"type": "string",
"description": "This labels the object as a link to a course. It is needed to be compliant with a \"Skill\" ",
"example": "Fall 2020"
"description": "The name of the course.",
"example": "HPI Academy: Leading Digital Transformation and Innovation - Fall 2020"
},
"targetUrl": {
"type": "string",
"description": "An IRI pointing at a course.",
"example": "https://open.hpi.de/courses/digitrans2020-1"
}
},
"required": [
"name",
"educationalFramework",
"educationalFrameworkVersion"
]
},
"ProgramReference": {
"title": "Program",
"type": "object",
"description": "This schema describes the attributes of a course program to an extend that it links to a EducationalOccupationalProgram.",
"properties": {
"url": {
"type": "string",
"description": "An IRI pointing at the course program or a homepage of the program, ... etc.",
"description": "An IRI pointing at the course or program.",
"format": "iri"
},
"type": {
"type": "string",
"description": "The type of the object.",
"description": "The type of the referenced object.",
"enum": [
"Program"
"Program",
"Course"
]
},
"title": {
"type": "string",
"description": "The title or name of the course program this course is part of."
}
},
"required": [
"title",
"url",
"type"
]
},
"CoursePartReference": {
"description": "A course that is part of a program or a course. In addition to the properties of CourseReference, the requirementLevel property is used to indicate if the course is mandatory or elective.",
"allOf": [
{
"$ref": "#/$defs/CourseReference"
}
],
"properties": {
"requirementLevel": {
"$ref": "#/$defs/RequirementLevel"
}
},
"required": [
"requirementLevel"
]
},
"RequirementLevel": {
"type": "string",
"description": "The level of requirement for this course in the context of the parent course. Can be 'mandatory' or 'elective'.",
"enum": [
"mandatory",
"elective"
],
"example": "mandatory"
},
"CompetencyRequirement": {
"type": "array",
"description": "A list of competencies that are required to successfully complete this item. This includes skills, certificated, (high) school degrees, other courses",
Expand Down Expand Up @@ -1026,9 +1002,10 @@
},
"type": {
"type": "string",
"description": "Type of the object.",
"description": "Type of the object. 'Course' for individual courses, 'Program' for microdegrees and course programs.",
"enum": [
"Course"
"Course",
"Program"
]
},
"attributes": {
Expand Down Expand Up @@ -1299,19 +1276,57 @@
},
"hasPart": {
"type": "array",
"description": "A list of the learning items like videos, lectures, quizzes, ... in the course.",
"description": "A list of the learning items like videos, lectures, quizzes, ... or courses that make up the course or program (both mandatory and elective).",
"uniqueItems": true,
"items": {
"$ref": "#/$defs/LearningItem"
"oneOf": [
{
"$ref": "#/$defs/LearningItem"
},
{
"$ref": "#/$defs/CoursePartReference"
}
]
}
},
"isPartOf": {
"type": "array",
"description": "A list of programs (preferable EducationalOccupationalPrograms) this course is part of. The given metadata shall at least contain a link to the program.",
"description": "A list of courses or programs (preferable EducationalOccupationalPrograms) this course is part of.",
"uniqueItems": true,
"example": null,
"items": {
"$ref": "#/$defs/ProgramReference"
"$ref": "#/$defs/CourseReference"
}
},
"relatedTo": {
"type": [
"array",
"null"
],
"description": "A list of relationships this course has with other courses. Uses a simple 2-dimensional approach: sequence type (prequel/sequel/complementary) combined with requirement level (mandatory/recommended). This enables defining course pathways and learning sequences.",
"uniqueItems": true,
"items": {
"title": "CourseRelationship",
"type": "object",
"description": "Defines a relationship between this course and another course, including the type of relationship and reference to the related course.",
"properties": {
"course": {
"$ref": "#/$defs/CourseReference"
},
"type": {
"type": "string",
"description": "The type of relationship between this course and the related course. Defines the nature of the relationship, such as whether it is a prerequisite, a follow-up, or complementary.",
"enum": [
"foundation",
"continuation",
"complementary"
]
}
},
"required": [
"course",
"type"
]
}
}
}
Expand Down