-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Finalise the complete list of trait statuses and transitions between them #7
Comments
Right, so based on my current understanding of a trait's possible life cycle and some of your clarifications, I have given it some more thought and here is my suggestion: The life cycle is as follows:
Two notes here. The past status is something that I haven't added in the google doc model I provided so if you agree with the above let me know so that I can fix that. Also this suggestion would raise a follow-up discussion regarding the possible public API endpoints and responses so that would be the next step I think. I also assume that a maintainer can freely change the mapping to a trait even if he is not the one who issued its previous mapping |
@joj0s This sounds good for the most part, just some comments/clarifications: 1. I'm not sure how and when the past status will be applied. Remember that here we are talking about the statuses of traits, not mappings. A trait can only have one status, regardless on how many different mappings it had historically. 2. Another thing which we need to track, which is currently not reflected in the list of statuses, is import and creation of new terms. This can include quite a few steps. For example, here is a reasonable lifecycle of a trait:
A similar approach will have to be done for creating EFO terms, probably with their corresponding statuses.
|
Also, regarding the statuses, I think it may be more useful (this needs to be evaluated) to have not just one big "status" column with 10+ possibilities, but rather separate simpler ones. For example:
This might not be comprehensive, but the idea is that we could use those smaller, simpler "statuses" to keep track of individual trait/mapping/term properties, and then assemble the final "status" of the trait as a computed property. |
I worked on the model more and separated the statuses into more distinct ones. In particular, the model I am suggesting includes statuses for the reviewing process of a trait (whether it has been reviewed, if it is under review or if it has been successfully reviewed) and for the ontology which is mapped to a trait (if it is current, obsolete, deleted or awaiting import). I would appreciate your opinion on whether we need more individual statuses. Then, the master status of a trait can be calculated based on those values. I would like your input however on what these different master statuses will be This is the link for the google doc which describes my current model proposal, with the status suggestions as well some details about them https://docs.google.com/document/d/1iunypcRGtlxPc_uwhjKnMv8tD67dHOEPaOQMxHSL96U/edit?usp=sharing |
I have left a number of comments & suggestions in the data model document. The summary:
|
I have resolved most of the comments and added some follow-up ones myself. I would also like to discuss the master statuses specifically. Are we ok with these 4 suggested ones? I myself am not sure whether we need the "new_term_required" one (I'm leaning towards no). And also would we need more? |
I've added a section + table to the document linked above regarding:
Please let me know what you think of this, any suggestions are welcome! |
The sections you added are extremely helpful and make a ton of sense! Based on them I have updated the data model. The changes I made are these:
Let me know if you think that any further changes need to be made. I can also create a diagram as you suggested once the model is finalized |
I think we should also probably include "obsolete" and "deleted" as master statuses |
Regarding the changes — everything's great, I did a third iteration of data model review in #8, and also added some comments about status-related things in the doc.
Yes, it probably makes sense. You can do it as part of this ticket or you may create a new ticket for this purpose if you feel it would be better.
Yes, I agree. Since we want to just make the master status mirror the ontology term status (except for unmapped and awaiting_review, as I described in the document), the list will automatically include "obsolete" and "deleted", because those are allowed values for ontology terms. |
I am currently working on the mermaid diagram. I think a state diagram (https://mermaid-js.github.io/mermaid/#/stateDiagram) seems most appropriate, what do you think? The only other option I see would be a flowchart but it doesn't seem as detailed |
The diagram is both exactly correct in the status change workflow, and very nice looking. I don't have anything at all to correct in it. Please submit it (both the source code and the resulting PNG) as a PR. You can either submit separate PRs for this issue and for #8 (documenting data model), or a single joint PR, both approaches are fine with me. |
The Google doc included a simplified example of this. Now we need to discuss & finalise this. We need to make sure that the trait status list/transitions fully take into account:
The text was updated successfully, but these errors were encountered: