Skip to content
Snippets Groups Projects
README.md 4.78 KiB
Newer Older
# Preface:
Jure's avatar
Jure committed

- 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.
Jure's avatar
Jure committed
- 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.
Jure's avatar
Jure committed
- JATS was used as a vocabulary, wherever appropriate.
- JATS was used as a source of data types, wherever appropriate.
Jure's avatar
Jure committed
- All groups of users are modelled with Teams (e.g. Editors, Reviewers, etc.)
Jure's avatar
Jure committed
- All models have potentially semantic implicit 'created' and 'updated' dates
Jure's avatar
Jure committed
- 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.
Jure's avatar
Jure committed
##  Journal
Jure's avatar
Jure committed

Jure's avatar
Jure committed
|   | type  | JATS  | comment  |  
|---|---|---|---|
| journalTitle  | String  | `<journal-title>`  |   |
| manuscripts  | [UUID]  |   | Usefulness unclear  |
Jure's avatar
Jure committed
| meta | JournalMetadata | | 
|  └ meta.publisherName | String | `<publisher-name>` |
|  └ meta.issn | String | `<issn>` | |
Jure's avatar
Jure committed

Jure's avatar
Jure committed
##  Manuscript
Jure's avatar
Jure committed

Jure's avatar
Jure committed
|   | type  | JATS  | comment  |  
|---|---|---|---|
| journalId  | UUID  |   | Link to Journal  |
| versions  | [UUID]  |   | Link to Versions  |

Jure's avatar
Jure committed

Jure's avatar
Jure committed

Jure's avatar
Jure committed
|   | type  | JATS  | comment  |  
|---|---|---|---|
| submissionDate  | String  |   | date  |
Jure's avatar
Jure committed
| status  | String  |   | e.g. `initial` or `QA`   |
| reviewers  | Team -> [Reviewer]  |   | Link to the reviewers team's members |
Jure's avatar
Jure committed
| files  | [File]  | `<ext-link>` ?  |   |
Jure's avatar
Jure committed
| 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 |
Jure's avatar
Jure committed
| recommendations  | [Recommendation]  |   |  Link to the version's reviews' recommentations |
Jure's avatar
Jure committed
| decision  | Decision  |   |   |
| meta  | ManuscriptMetadata  |   |   |
Jure's avatar
Jure committed
|  └ meta.title | String | `<title>` |
|  └ meta.abstract | String | `<abstract>` | |
Jure's avatar
Jure committed
|  └ meta.coverLetter | String | | |
Jure's avatar
Jure committed
|  └ meta.contributors | [Contributor] | `<contrib>` |
|  &nbsp;&nbsp;└ contributor.stringName | String | `<string-name>` |
|  &nbsp;&nbsp;└ contributor.givenNames | String | `<given-names>` |
|  &nbsp;&nbsp;└ contributor.surname | String | `<surname>` |
|  &nbsp;&nbsp;└ contributor.aff | String | `<aff>` |
Jure's avatar
Jure committed
|  └ meta.authorNote | String | | |
Jure's avatar
Jure committed
|  └ meta.publicationDate | String | | date |

Jure's avatar
Jure committed
## 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 |  | |

Jure's avatar
Jure committed

Jure's avatar
Jure committed
## Decision
Jure's avatar
Jure committed

Jure's avatar
Jure committed
|   | type  | JATS  | comment  |  
|---|---|---|---|
| status  | String  |   | e.g. 'accept'  |
| submissionDate  | String  |   | date  |
| content | String  |   |   |
Jure's avatar
Jure committed
| files | [File]  |   |   |
Jure's avatar
Jure committed
| userId | UUID  |   | Link to the editor's user  |

Jure's avatar
Jure committed

Jure's avatar
Jure committed
## Reviewer
Jure's avatar
Jure committed

Jure's avatar
Jure committed
|   | type  | JATS  | comment  |  
|---|---|---|---|
| invitationDate  | String  |   | date  |
| review  | UUID  |   | Link to Review  |
| accepted | Boolean  |   |   |
| responseDate | String  |   |  date |
| userId | UUID  |   |  |
| reminders | [String]  |   | dates |

Jure's avatar
Jure committed

Jure's avatar
Jure committed
## Review
Jure's avatar
Jure committed

Jure's avatar
Jure committed
|   | type  | JATS  | comment  |  
|---|---|---|---|
| versionId  | UUID  |   | Link to Version  |
| reviewerId | UUID  |   | Link to Reviewer |
| content | String  |   |  |
Jure's avatar
Jure committed
| files | [File] |   |  |
Jure's avatar
Jure committed
| submissionDate | String  |   | date |
Jure's avatar
Jure committed
| recommendationId | UUID | | Link to Recommendation |
Jure's avatar
Jure committed
 
## Recommendation

| | type  | JATS   | comment |
|---|---|---|---|
| recommendation | String | | accept or revise, etc. |
| userId | UUID | | Link to the user making the recommendation
Jure's avatar
Jure committed
| recommendationType | String | | e.g. 'review', 'editor'|
| submissionDate | String | | date
Jure's avatar
Jure committed
| comments | [Comment] | | |
|  &nbsp;&nbsp;└ comment.content | String | | |
|  &nbsp;&nbsp;└ comment.public | String | | |
Jure's avatar
Jure committed
|  &nbsp;&nbsp;└ files | [File] | | |

## File

| | type | JATS | comment |
|---|---|---|---|
| name | String | |
| URL | String | | 

Jure's avatar
Jure committed

# 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
Jure's avatar
Jure committed
Original submission date is the first versions's submission date, and isn't needed on the container model.

## ManuscriptVersion.meta.contributors.middleName
Jure's avatar
Jure committed
JATS recommends using `<given-names>` elements instead
Jure's avatar
Jure committed

Jure's avatar
Jure committed