Model Review Form #2384
Replies: 13 comments 5 replies
-
Think the most interested parties would be: @pkienzle @butlerpd @krzywon and maybe @wpotrzebowski |
Beta Was this translation helpful? Give feedback.
-
Here are some comments:
Pay walled to what extent? I don't think this is relevant because most articles have authorship and abstracts available for free, and emailing the contact author usually results in a PDF.
I would suggest giving a few real-world examples of why this might occur like 'code speed increase', 'minimize code reuse', etc.
Another question to ask is 'Are there other available implementations?'
Define 'sufficient'. Some of our built-in models only have a single test.
Should we have a minimal documentation requirement? I would suggest the definition, references, and authorship at a minimum. Other suggestions:
|
Beta Was this translation helpful? Give feedback.
-
Thanks for starting this discussion @lucas-wilkins. The process for adding a model to sasmodels has been pretty much as all additions to SasView code: Somebody writes it, it gets reviewed as usual (code, equation math, correctness of results) and eventually it gets approved. As with all our approvals, some have received more scrutiny than others 😄. Having a PR template similar to what we now are experimenting with in the sasview repo is good step towards normalizing the review process. This may be a bit heavy for a first go for that purpose but needs more thought (at least from me before I'd stand behind that statement 😃 ). The Marketplace on the other hand may be the more important use case. Historically, as evidenced by the flags added to the database, the thought was that it provide a free wheeling marketplace where folks could upload their code to share, with their colleagues and the community, but with no expectation that anyone other than the author had looked at it. This would then be followed by some kind of review by folks in the sasview development community but that may be the wrong way to think about it? Perhaps we need to publish a process for this to be done by folks who are part of the sasview community but do not want to be part of the github developers list? Following on, the aspiration was that some of the "validated" models could find their way into the distribution, but that has never happened. Partly because no externally uploaded models have ever been "reviewed" in the first place. So again we should maybe think of what that process looks like and how to choose? Some initial thoughts related to that:
Probably enough initial thoughts for a first post .... |
Beta Was this translation helpful? Give feedback.
-
There's various ways of dealing with this
Indeed, you probably need cause to have them reviewed, and to request reviews from people.
Yeah, it seemed a bit severe, hopefully my revisions make it a bit more flexible.
what do you mean by this?
It might get people engaged more generally |
Beta Was this translation helpful? Give feedback.
-
I wonder if we should have a marketplace repo in sasview? Define We can still maintain a free-for-all interface for those who do not have a github account. Note that ORCID operates an OAuth service (@bmaranville has played with this). We may be able to use that to digitally sign a model. Free-for-all with reputation. We could just use ORCID for user management so all uploads are associated with an orcid id. Still caveat emptor but the seller's reputation is on the line. |
Beta Was this translation helpful? Give feedback.
-
So are you suggesting checking validity or not? If we're going to verify we need to verify properly. Checking for security is fine, but I wouldn't stick a 'verified' sticker on it. |
Beta Was this translation helpful? Give feedback.
-
I'm suggesting that "model is correct" and "safe* to run on your machine" are the two things that users care about (hopefully!). Code quality (docs, tests, cleanliness, efficiency, utility, ...) not so much. I believe anything beyond a simple check that the code isn't suspicious and that the tests run is all we need. We have smoke tests that are run even if the publisher didn't supply any expected output values. I believe it is up to the model publisher to convince users that the model is correct. Attaching a github repo to the code means that interested publishers can have a forum for users to open issues and submit PRs. It also allows them to mint DOIs for citation. The advantage of Orcid is that it ties the model to their reputation (in exchange for more citations of their work). Obviously we will want to check validity and code quality before including the model in sasmodels. *probably safe. That is, no more risky than running any other bit of sasview code. The indemnity clause in our license needs to apply to the check marks. |
Beta Was this translation helpful? Give feedback.
-
Clarification: a simple code check is all that sasview needs to provide. I'm all in favour of having a process for users to validate models in the marketplace. |
Beta Was this translation helpful? Give feedback.
-
Safe is pretty easy to check. I think users do care about the docs, not the comprehensiveness of them, but that they say what the model does and what they do say is Code quality is something that we should care about, not the users.
Depends on whether we call that verified or not. To an extent, I don't really care about the procedure, as long as it is clear what the check marks mean. That said, we do have a responsibility not to introduce errors into the scientific ecosystem, to prevent bad practice, and to make sure code is maintainable if other people rely on it. This is not limited to a legal responsibility, and making people accountable through Orcid or whatever does not absolve us of it. Reminds me of previous conversation with @butlerpd, who is of the mind that we should enable the user base to do whatever they want. I, on the other hand, being a English liberal, would let them do what they want as long as they don't hurt anyone else - this would include hindering scientific progress and humankind by doing bad science. It's almost like the concept of negative liberty fell off the boat crossing the Atlantic ;) |
Beta Was this translation helpful? Give feedback.
-
So, I can easily add single precision errors as something that should be checked, though I'm not sure who it is that is supposed to do the course in numerical analysis, or how best to verify that.
Not a bad idea
There are at least four reasons why it should be able to be rejected on the basis of code quality:
|
Beta Was this translation helpful? Give feedback.
-
It sounds to me like there are several different things at issues here? I think it would be useful to clearly separate review/validation/verification of models submitted at PRs in sasmodels from models in the marketplace. As mentioned before I think it would be very useful to have some basic standards for reviewing/approving a model in sasmodels as a step towards improving the consistency and quality of those models. While it was not at all clear to me from the initial discussion, it is now clear that this thread started as something completely different: mainly to specify how to get a marketplace contributed model to be listed as "verified." To me this is a very different standard as @pkienzle suggests. Actually, this may be a case of "it seemed like a good idea at the time." I think that was a very vague, not well thought out idea to add such a flag to the database without any real idea of how it would be used... and it has not been. However since it is there and displays an ominous red x instead of the soothing green check mark next to all those from sasmodels, we have had several requests of "how can I get verified." The question may therefore be whether that was a good idea? Should we get rid of it? should we expand on it? should we be doing something else altogether? and if we keep it as it is now, what does a green check mark mean? Indeed such a nomenclature and GUI may have connotations that are inconsistent with what can (or should) actually be provided? If we stick to the current marketplace approach, I would agree mostly with @pkienzle that code quality is not what should be verified with the caveat of @lucas-wilkins point 1 and 2. Point 3 really isn't possible with the current marketplace I don't think but there probably is a need to expand the marketplace to allow for adding library functions separately? code quality becomes an issue if being pulled into sasmodels IMO. We should however provide an independent assessment of whether it does what it says it does and to the extent that it can be checked against some other code or by doing some MC maybe that too should be done? Basically that the person submitting is not "selling snake oil" ... in the best judgement of the person(s) doing the review :-) Alternatively we could make the verified flag mean that it is ready to be merged into sasmodels, including appropriate tests, which would have a much higher bar? Or, more reasonably we should have two flags if we want to go there I think? |
Beta Was this translation helpful? Give feedback.
-
The opening statement in this discussion was:
For me, this raises two issues:
|
Beta Was this translation helpful? Give feedback.
-
Indeed @smk78, I suspect that the impression most people have regarding the green tick mark, or lack thereof, is "both of the above." So I guess we do need to figure out what we think is the best way to handle contributed models to the marketplace (and sustainable) thing to do (which could be to get rid of the check marks) sooner than later? |
Beta Was this translation helpful? Give feedback.
-
I was asked by colleagues to look at getting a particular unverified model from the marketplace validated and incorporated into SasView.
Currently the process is rather opaque, and I made a list of things that I think should go into it, which I think might serve as a template/form for model reviewing, as well as serving as documentation for the process that each model has undergone.
Here it is:
Model Review Form (Draft)
Reviewer Name: Joe Bloggs
Affiliation (optional): Joe's Blog
Contact Details (optional): [email protected]
Date: 01/01/1970
Summary
In the opinion of this reviewer:
verified
?The reviewer has considered the following
Details
All the following questions should be answerable by considering the review.
The aim is to:
Essentially, this is a list of things that should be considered. They do not have to be answered directly, though it might be easier to do so.
An answer of the form "this is not applicable or achievable in this case" along with a reason is a perfectly acceptable way of addressing a some of the questions. For some of them, "no" is also an acceptable answer.
Consistency with Literature
Is the model based on one or more peer-reviewed papers? If so what are they? Are they pay walled?
To what extent does the code reflect the equations reported in the literature provided?
If it differs, where, is this acceptable, and why?
Is the parameterisation of the model the same as that reported in the literature?
Numerical Validation
Has the model been compared to other implementations? What are the details of this? What was the outcome?
Are the any analytic results that have been used to validate the code? What was the outcome?
If there is any additional validation code, is it freely available? Where is it?
Are subcomponents numerically valid? e.g. are there tests for helper functions?
Is there sufficient test coverage?
Where the do expected values come from?
What version of sasview and sasmodels was it verified with?
Code Standards
Is the code easy to follow?
Are variable and function names explicit, if not, do they unambiguously match the literature?
Documentation
Is the documentation correct?
Are the appropriate doc strings filled out?
Is the documentation properly formatted?
Are references to the literature correct, and appropriate details and differences highlighted?
Versioning and Compatibility
Is this model compatible with the latest version of SasView? (which is...)
Is this model compatible with the latest version of sasmodels? (which is...)
Is it compatible with other versions?
Beta Was this translation helpful? Give feedback.
All reactions