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 compinations of these three flags could be used to mark a revision and those tags could be used as filtering criteria.