Newer
Older
- This data model is based on current xpub-collabra and xpub-faraday models, and the discussion that was held in Athens by teams working on those projects.
- This data model is also based on the current work in xpub-elife and the wireframes that are used as guides to build this project.
- These models do not use Collections and Fragments, instead they are standalone models in separate tables.
- JATS was used as a vocabulary, wherever appropriate.
- JATS was used as a source of data types, wherever appropriate.
- All groups of users are modelled with Teams (e.g. Editors, Reviewers, etc.)
- All models have potentially semantic implicit 'created' and 'updated' dates
- All models have an implicit 'id' UUID
- All dates are ISO-8601 strings, as PostgreSQL recommends this as date input, JATS allows it, and GraphQL can handle it.
| | type | JATS | comment |
|---|---|---|---|
| journalTitle | String | `<journal-title>` | |
| manuscripts | [UUID] | | Usefulness unclear |
| meta | JournalMetadata | |
| └ meta.publisherName | String | `<publisher-name>` |
| └ meta.issn | String | `<issn>` | |
| | type | JATS | comment |
|---|---|---|---|
| journalId | UUID | | Link to Journal |
| versions | [UUID] | | Link to Versions |
## ManuscriptVersion
| | type | JATS | comment |
|---|---|---|---|
| submissionDate | String | | date |
| status | String | | e.g. `initial` or `QA` |
| reviewers | Team -> [Reviewer] | | Link to the reviewers team's members |
| suggestedEditors | [Suggestion] | |
| └ suggestion.name | String | | e.g. 'Mr. Opposition' |
| └ suggestion.type | String | | e.g. 'seniorEditor' |
| └ suggestion.reason | String | | e.g. 'They oppose me' |
| suggestedReviewers | [Suggestion] | | same structure as above |
| opposedReviewers | [Suggestion] | | same structure as above |
| opposedEditors | [Suggestion] | | same structure as above |
| recommendations | [Recommendation] | | Link to the version's reviews' recommentations |
| meta | ManuscriptMetadata | | |
| └ meta.title | String | `<title>` |
| └ meta.abstract | String | `<abstract>` | |
| └ meta.contributors | [Contributor] | `<contrib>` |
| └ contributor.stringName | String | `<string-name>` |
| └ contributor.givenNames | String | `<given-names>` |
| └ contributor.surname | String | `<surname>` |
| └ contributor.aff | String | `<aff>` |
## Team
| | type | JATS | comment |
|---|---|---|---|
| teamType | String | | e.g. 'reviewers' | 'editors' |
| members | [User] | | |
| meta | JSON {} | | e.g. `{ someMembersId: { status: invited } }` |
| object | TeamObject | | |
| └ object.type | String | | e.g. `ManuscriptVersion`|
| └ object.id | UUID | | |
| | type | JATS | comment |
|---|---|---|---|
| status | String | | e.g. 'accept' |
| submissionDate | String | | date |
| content | String | | |
| | type | JATS | comment |
|---|---|---|---|
| invitationDate | String | | date |
| review | UUID | | Link to Review |
| accepted | Boolean | | |
| responseDate | String | | date |
| userId | UUID | | |
| reminders | [String] | | dates |
| | type | JATS | comment |
|---|---|---|---|
| versionId | UUID | | Link to Version |
| reviewerId | UUID | | Link to Reviewer |
| content | String | | |
## Recommendation
| | type | JATS | comment |
|---|---|---|---|
| recommendation | String | | accept or revise, etc. |
| userId | UUID | | Link to the user making the recommendation
| recommendationType | String | | e.g. 'review', 'editor'|
| comments | [Comment] | | |
| └ comment.content | String | | |
| └ comment.public | String | | |
| └ files | [File] | | |
## File
| | type | JATS | comment |
|---|---|---|---|
| name | String | |
| URL | String | |
# Removed
## Journal.owners
The owners relationship is non-core/non-semantic and can be modelled with Teams if needed. As such, it will be deprecated/removed.
## Manuscript.originalSubmissionDate
Original submission date is the first versions's submission date, and isn't needed on the container model.
## ManuscriptVersion.meta.contributors.middleName