Content attribution to Organisations
Target release | 1.10 |
|---|---|
Epic | |
Document status | Implementation |
Document owner | @Shailesh Kochhar |
Designer | @subu palamadai |
Developers | @Vinaya Kumar B @Manzarul Haque @Harish Kumar Gangula |
QA |
Goals
Create incentives for multiple organisations to collaborate on course creation in a Sunbird instance
Create the means for an organisation which sponsors content creation to get visibility for their contributions
Provide course creators easy ways to 'do the right thing' when it comes to attributing content which they are using
Background
Content which is created in Sunbird has three metadata properties which point to the entities involved in creating the content
createdBy– the is the id of the user who created the contentcreator– the name of the user who created the contentcreatedFor– this is the id of the organisation which the user belongs to when creating the contentorganisation– an array of organisation names (not IDs)channel– this is the channel to which the creator belongs at the time when the creator last edited the content
When content and courses are displayed in Sunbird, the display text attributes the content to the creator.
Assumptions
Content creation can be
sponsored – i.e. an organisation is paying for a person to create the content
non-sponsored – i.e. an individual is creating content based on personal choices
In either sponsored or non-sponsored case, an entity will shoulder the responsibility for reviewing the content to ensure standards are met
Multiple attribution models need to be supported. Content can be
non-sponsored and attributed to the individual creating it
sponsored and attributed to the organisation sponsoring it
sponsored and attributed to the individual creating it
For a course or a textbook, visible credit at the aggregate level (course or textbook) carries more meaning than credit at an individual content level
Proposal
The proposal is to allow
display text to attribute content to either the individual creator or to the creator's organisation
and organisation to remove and individual's edit privileges when she/he leaves an organisation which sponsored content creation
content which aggregates other content pieces to automatically attribute the entities who created those items
content copy to attribute the source of the content where it was copied from
Design
Attribution to organisation
In order to identify sponsoring organisations, introduce a new property in the content model called
ownershipType– the property is an enumerated field whose options arecreatedByorcreatedForIf the value of
ownershipTypeis createdFor, the organisation's name will be displayed when the content is shown in SunbirdIf the value of
ownershipTypeis createdBy, the individual's name will be displayed when the content is shown in SunbirdWhen creating it's framework, an organisation can decide
what is the default value of the
ownershippropertyto disable either createdBy or createdFor as options for the
ownershipTypepropertyto enable both createdBy or createdFor as options for the
ownershipTypeproperty
To ensure that the creator sets the
ownershipTypecorrectly, the organisation canenforce the
ownershipTypeduring the review page, orchoose to give edit rights on the
ownershipTypeproperty only to some content creators or content reviewers
User transfer between organisations
When a user leaves an organisation (or if her/his creation rights are removed), their creator role in that organisation is terminated. At this point,
The user no longer has CONTENT_CREATOR role attached to the organisation
The workspace application should apply a filter when displaying editable content to
restrict editable content to those items where the
createdForproperty matches any of the organisations for which the user currently has CONTENT_CREATOR role
Attribution of aggregate content
When a user creates aggregate content by selecting one or more resources for inclusion, the new content will store references to the entities indicated by the ownership property of the included resource. The references will be stored in the attributions field.
For instance,
Galactic Publishers creates a course on the Solar System which contains
Moons of Jupiter created by Io Publishing, and
Rings of Saturn created by Weekend Imprints
When the course on the Solar System is displayed, the display text will
attribute creation of the course to Galactic Publishers
attribute credit for included content to Io Publishing and Weekend Imprints
Eg text:
created by: Galactic Publishers with contributions from: Io Publishing & Weekend Imprints
To accomplish this, as the course on the Solar System is created,
content stores references to the organisation ids of Io Publishing and Weekend Imprints organisations in the
attributionsfieldattributions: [{ ownershipType: 'createdFor', id: '<io_publishing_org_id>', name: 'Io Publishing'}, { ownershipType: 'createdFor', id: '<weekend_imprints_org_id>', name: 'Weekend Imprints'}]
The references are added to the content model while the course is being edited and not when it is saved, sent for review or published so that the author can see the attribution text as the course is being constructed.
Attributing individuals
The example above assumes that the resources included are sponsored and attributed to the sponsoring organisation. If the resources were non-sponsored, or sponsored but attributed to the individual then the reference would be made to the individual as a contributor
Resource Versioning
The reference to contributors will be based on the version of the resource when it was added to the aggregate content.
Resource R is at version N where the
ownershipTypeproperty is set to createdBy andIt is added to a course C, the course gives credit to the creator of R
Resource R is then edited to change the
ownershipTypeproperty to createdFor at version N+1Course C, continues to give credit to the creator of R because the course references version N of the resource
When C is edited and the version of R added to C is updated to N+1 (or further), only then will the course C give credit to the organisation which sponsored creation
Performance concerns
If the number of references grows large, there could be performance considerations when downloading the ECAR file
If #1 is indeed the case, i.e. there are performance implications in bundling attribution data with the content
a content contributor API is created which provides complete details of contributors
the web application and the mobile application will augment the content view with a link to a contributor view
the contributor view will use the content contributor API to fetch the data needed
If #2 is not the case, i.e. if bundling the attribution data into the content ECAR does not significantly impact the ECAR size,
the web application and mobile application will still augment the content view with a link to a contributor view
however, the contributor view will use the data bundled in the ECAR to render the view
Copying content
When an item of content is copied, the new item of content must carry attribution to the original content
The attribution cannot be edited by the creator of the new content
If the content item is an aggregate content (course, collection, book), then the individual items which are part of the source are included into the derived content and credit to the creators of those items is handled as described in the section on Attribution of aggregate content above
Requirements
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
|---|---|
Should an | Yes, |
Which property should be used for storing the credits for an aggregate content item? | We should use the |
Does attribution/credit information get bundled in the ECAR or is it fetched from the server on demand? | Attribution is bundled into the content metadata and downloaded with the ECAR, however, the composed full text of the attribution is constructed at the time of rendering the attribution |
The | Review workflow can be moved by attaching a scope to the REVIEWER permission to route content to the appropriate reviewers. |
User interaction and design
Not Doing
At this point, we are not considering the case of an individual creating content without belonging to any organisation. The case of user-rights outside an organisation which grants those rights is a cross-cutting concern across Sunbird and is not a valid scenario at present.
@Shailesh Kochhar The course creator might want to attribute more people apart from 'Source' of content used to create this course. Hence the attribute holding aggregated source information should be some other attribute.
Also, please check existing content model (v3) with @Mohit Garg. It already has provision for many of these & more metadata entities.