Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Sunbird Content model has been used for specific use cases like textbooks and courses so far. The model has been designed and refined over time mainly to support these two use cases. However, this current model is not flexible enough to serve a wide variety of needs like:

  • Easily add new types of content categories like Podcasts, TV Shows, Stories, etc.

  • Decouple behaviour from type of content. For example, progress tracking should not be limited only for “Courses”, should be able to track consumption of other types like “Podcasts” also. Similarly, it should be possible to allow anonymous consumption of a particular course.

  • Configurable hierarchy structures - i.e. “Textbook” contains chapters, “Course” contains modules and a “TV Show” contains episodes.

  • Platform supports content to be created for different purposes but it is not possible to discover these content by other framework users. For example, if there is a Podcast about “what is artificial intelligence”, how can it be made discoverable to an audience that use a different framework.

Current Model

Following are the main content classification categories we have in the current content model:

  • ObjectType - Question, QuestionSet & Content. Though we have multiple object types, the only consumable object type currently is “Content”. Everything has to be converted into a content to make it consumable.

  • ContentType - Course, Textbook, Resource, Collection, ExplanationResource, eTextbook, PracticeSet, etc. There are multiple behaviours specific to content type:

    • It is assumed that all textbooks and courses will be collections only. E.g.: a PDF or an ePub cannot be published as a text book.

    • Specific creation & consumption experience implementations for each content type. I.e. course, textbook, collection and resource content types have different editors & players. Adding a new content type will require changes across the board.

    • Having generic types (like resource, collection) makes it difficult for search and discovery of content for specific purposes. E.g.: “Resource” is used for a lot of purposes like worksheets, games, explanation videos, etc.

  • ResourceType - Learn, Teach, Practice, Test, Play, Course, Book, Lesson Plan, etc. This attribute is used in some places for filtering the content.

    • Creators find it difficult to tag the resource type for most of the content, especially for generic content types like resource and collection. 

    • Some resource type values are verbs (like learn, teach) and some are content types (like course, book). There is specific implementation like automatically setting the resource type for courses, textbooks and lesson plans to Course, Book and Lesson Plan respectively.

  • MimeType - HTML, ECML, ePub, PDF, mp4, collection, etc. This is required for identifying the renderer to be used while playing a content.

  • No labels