Proposal: merging Recommendations and Reviews
I'm opening this based on feedback in #17 (closed) and some previous feedback by @bogdan.
A Review results in a Recommendation, but a Recommendation can happen without a Review (e.g. from editor to editor). It could be argued, that a Recommendation is a hyperonym to Review, i.e. Review is one type of a Recommendation.
The proposal is therefore to merge Recommendations and Reviews into one model:
Recommendation
type | JATS | comment | |
---|---|---|---|
type | String | accept or revise, etc. | |
source | String | e.g. 'review', 'editor' | |
manuscriptVersion | ManuscriptVersion | Link to ManuscriptVersion | |
user | User | Link to the user making the recommendation | |
submissionDate | String | date | |
comments | [Comment] | ||
└ comment.content | String | ||
└ comment.public | String | ||
files | [File] |
The previous Review.content
and Review.public
is now represented with a Comment
's content
and public
properties.
In this proposal, the ReviewerInvitation
is kept as it is, even though the cardinality of Recommendation
s for a ReviewerInvitation
is 1 or 0, because the concepts represented are so different. I.e. if we were to merge Recommendation
s and ReviewerInvitation
s into Recommendation
s, initially (before a 'review' is written) a Recommendation
's properties would be very sparsely populated and a component using this data would have to constantly check for existence of data like if (recommendation.invitationResponseDate) { <div>{ recommendation.type }</div>} else { <div>Reviewer hasn't given their review yet</div> }
. If these two, however, are kept separated, the existence of a Recommendation should give a component a good idea about what kind of data it can expect and render. But I'm happy to debate further merging.
Please give your feedback on this proposal, @John.kopanas, @yannis, @audrey, @tamlyn, @bogdan.