...
Versions may have revisions. One or more revisions of a version can 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 and revision_timestamp.
Tags are proposed to mark/tag a revision with a specific state. To be more specific, 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. This tags could be used as a filtering criteria.
...