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
Incorrect wording in the spec: "may not" vs. "shall not" #901
Comments
Comment by anonymous on 5 Nov 2012 20:33 UTC |
Comment by stefanv on 5 Nov 2012 20:46 UTC And yes, I agree that in this example, 95% (or more) would get the intent, but there are probably cases in the specification where it's more ambiguous, or has the reversed meaning, and a standards document should be more precise. In one of the pieces of explanatory text, it says, "... the result is not unique and may not be what the user expects." Surely this doesn't mean that we have to produce unexpected results? |
Comment by choeger on 6 Nov 2012 08:30 UTC There are translations (at least into german) which support the current specification. See e.g. There is probably some tricky rule when to use what, but since a specification should be easy to read, I would favor to use "must not" instead. |
Comment by sjoelund.se on 6 Nov 2012 09:23 UTC
If it is ambiguous, it is not correct. In technical texts, one should avoid may not since it is equivalent to may or may not. Anyone with Word should probably search for other uses of may not in the text (I don't trust my pdf reader to find it for me). |
Comment by jmattsson on 6 Nov 2012 09:51 UTC From the "Definitions of Terms" section: Such a definitions section would probably be a good idea for the Modelica specification as well. |
Comment by dietmarw on 20 Dec 2012 13:47 UTC |
It might be helpful to go with RFC-2119 here to eliminate any ambiguity: Almost all occurences of "may not" would then have to be replaced with "must not" or "shall not". |
And in some cases 'cannot', and in one case rewrite it completely. Closes modelica#901
Reported by stefanv on 5 Nov 2012 20:09 UTC
This example is from section 12.2 of the Modelica 3.2rev1 specification, but there are similar examples throughout the document.
A function may not be used in connections, may have no equations, may have no initial algorithm, and can have at most one algorithm section, which, if present, is the body of the function.
Note that in a strict interpretation, the following is perfectly legal:
The phrase "may not" (and derivatives such as "may have no") means "is allowed not to". Thus, the quotation from the specification above really means:
A function is allowed to not be used in connections, is allowed to have no equations, is allowed to have no initial algorithm, and can have at most one algorithm section, which, if present, is the body of the function.
If all the occurrences of "may" in the original quotation were replaced by "shall" or "can", then the meaning would be as intended.
The word "may" should be reserved for the case where something is optional. In searching for such a case in the specification, I came across this in section 7.3.3 (with my comments added in braces):
The third one is just funny, since it appears in the middle of the Modelica specification. Better might be:
Migrated-From: https://trac.modelica.org/Modelica/ticket/901
The text was updated successfully, but these errors were encountered: