Kendra App Data Model

Kendra App Data Model


The purpose of this document is to capture the ‘reasoning’ behind the development of the Asset Rights data model.

The model described in this document is the first draft of the Logical Model for managing the relations between the following entities:

  1. LegalEntity: This is a person or corporation that has legal rights to an asset
  2. Asset: A work (composition, arrangement, choreography)
  3. Right: A right such as Composition, Performance, Recording.
  4. Role: The type of right a LegalEntity has for an Asset (e.g. is the composer, singer, drummer, owner of)
  5. Contribution: The assignment of rights for a legal entity to an Asset.

The purpose of the model is to:

  • Record the identity of Legal Entities
  • Record the rights they have
  • Enable the assignment of rights to an asset
  • Enable the use of the rights linked to an asset to be inherited by an asset that uses that asset.

In the following discussion the terms ‘work’ and ‘clip’ are synonyms and can be applied to any asset that has rights associated with it including but not limited to:

  • Music track
  • Sound clip
  • Sample
  • Dance
  • Orchestral work

Data Model

Image removed.


The following sections detail the basic entities of the logical model. The attributes for this entity are minimal at this stage and are expected to be added to as the requirement for handling real data is advanced.

The data model handles the relationship between LegalEntities (People, performers, composers, companies etc) and Assets (music tracks, music compositions, etc). These rights are typed (Composition rights, performance rights, recording rights) and LegalEntities are related to assets via their rights using ‘Contribution’.

These roles describe the relationship between a performer or composer and a music track detailing what role coneys these rights.
The model is structured so as to maintain referential integrity of the data.

Entity Type

The entity type handles the different types of entities. These can be Legal Entities (People etc) and Assets (works, compositions etc)

Column Type Note
idEntity_type int Autoincrement
Entity_type varchar(45) The entity type name


The entity represents a common parent entity for both Legal Entities (People etc) and Assets (works, compositions etc)

Column Type Note
idEntity int Autoincrement
Entity_type_id int The entity type
Entity_name varchar(45) The entity name

Legal Entity / Asset

The Legal Entity and Asset manages data specific to a Legal Entity or Asset.
At present they don't contain any further attributes.

Column Type Note
Entity_idEntity int Autoincrement

Right Type

The right type controls the type of rights.
Examples are Performance Right, Composition Right.

Column Type Note
idRightType int Autoincrement
RightTypeDesc varchar(45) The Right Type

Role Type

Role Types are roles attached to a Right Type.
Examples of this are Guitarist, Vocalist (Performance Rights), Composer (Composition Right)

Column Type Note
idRoleType int Autoincrement
RoleTypeName varchar(45) The Role Type name
idRightType int Foreign key to Right Type


A contribution is an instance of an Asset that manages its rights and relation to Legal Entities and other Assets (e.g. Embedded clip)

Column Type Note
idContribution int Autoincrement
Contribution_title varchar(45) A title for the contribution
work_id int The id of an Asset
contributor_id int The ID of the contributor (an entity of type Asset or Legal Entity)
idRoleType int Foreign key to the Role Type
SourceStart int The start of the source asset in Milliseconds
SourceEnd int The end of the source asset in Milliseconds
Usage_weight int A weight given to the contribution
contrib_percentage int The percentage split of the contribution

Contribution Usage

The contribution may have several usage extents. These are managed by the Contribution Usage.
These are the start and end times of the individual extents.

Column Type Note
idContributionUsage int Autoincrement
idContribution int Foreign key to Contribution
UseStart int Millisecond time of the usage start
UseEnd int Millisecond time of the usage end
Kendraio App is an open source dashboard application for rights owners, music makers, managers and record labels, enabling users to manage and track their digital media assets, collaborations and associated rights.The application integrates with collective management organisations, online distribution points and social networks. Kendraio App also enables users to analyse sales reports. The application can be run locally on your laptop or hosted in the cloud. The project is currently funded by the EU and by industry.


Buggy or inaccurate documentation? Need support? Need help programming? Please talk to us on Slack.