Introduction:
To understand where revisions and tags fits into our model in a nutshell:
Record contains representations ------------->representation has versions-------------> versions contains files and has revisions -------------> revision is marked by tags.
Revisions and tags:
One or more revisions of a version could exist and they are used to govern necessary workflows and filter their queries. Each revision is uniquely identified by three parts:
- revision_name.
- revision_provider: The revision owner.
- revision_timestamp: Revision creation timestamp.
Tags are a set of three boolean flags(accepted, published and mark_deleted) which will be used to mark/tag a revision with a specific state. Any combinations of these three flags could be used to mark a revision and they are used as filtering criteria.