modelica / fmi-standard

Specification of the Functional Mock-up Interface (FMI)
https://fmi-standard.org/
Other
271 stars 85 forks source link

Check which MA Domains to reserve for layered standards #1749

Closed GallLeo closed 2 years ago

GallLeo commented 2 years ago

2.4.1 states: "All namespaces under both the org.modelica and org.fmi-standard domains are reserved for use in future layered standards."

Sould we add more MAPs?

org.efmi-standard
org.ssp-standard
org.dcp-standard

Or is it not necessary, because these are MA URLs anyway? Please comment @pmai @christoff-buerger @martinkrammer

andreas-junghanns commented 2 years ago

Why would we in an FMI standard restrict the use of domains of other, sibling standards? I think we should stick to what we have.

christoff-buerger commented 2 years ago

Why would we in an FMI standard restrict the use of domains of other, sibling standards? I think we should stick to what we have.

I am not sure if I got it right, but this is not restricting the other standards, but rather reserving their domain in the FMI Standard such that they can safely add layers.

Didn't DCP or SSP already define additional FMI layers in their current specification? If so, where should they store their layer-specific artefacts according to the current design of layered standard in FMI 3? Under org.modelica? Or is your implicit assumption that they just store under, let's say org.ssp-standard? But that one is strictly spoken not safe / reserved by the MA / FMI.

As a coordinated MA effort, I think it makes sense if FMI 3 reserves the other domains of the other MA standards such that they can safely add layers later on.

pmai commented 2 years ago

The rules already state that a domain under control of the authoring entity should be used, hence SSP can already use org.ssp-standard and DCP likewise, as can any other entity.

The standard just specifically reserves both org.fmi-standard and org.modelica to make it clear that they are specifically off limits, as people are prone to assume that since they are extending FMI, they should be using some FMI domain, which they should not, unless they are the MAP FMI...

GallLeo commented 2 years ago

Thank you for the explanation. To me it seems: if the intention/rules in the FMI standard are not clear to @christoff-buerger, then they are not clear enough for the usual reader.

Text in FMI 3.0-rc.1:

The namespace mechanism for the type attribute is based on reverse domain notation: The originator of a specification for additional data specifies a domain name under their control as the namespace for the additional data, in order to avoid conflicts due to name collisions. All namespaces under both the org.modelica and org.fmi-standard domains are reserved for use in future layered standards.

[For example, extensions defined by the Modelica Association might make use of the org.modelica.fmi namespace. This could lead to annotations with a type attribute of org.modelica.fmi.something, and/or extra files under the extra/org.modelica.ssp.something sub-directory.]

How I read the text, when also reading the non-normative part:

  1. FMI-layered standards by MAP-SSP could go into org.modelica.ssp or org.ssp-standard
  2. FMI-layered standards by MAP-FMI could go into org.modelica.fmi or org.fmi-standard

What I read from the discussion in this ticket: you want to avoid having other organizations/people put their layered standards somewhere in the MA namespace. E.g. I should not do stupid stuff like org.fmi-standard.leo-additions. The normative part wants to prevent this. The mentioned domains org.modelica and org.fmi-standard are examples and at the same time, the most important ones for the FMI project.

For clarification, maybe we should just change the last sentence from

All namespaces under both the org.modelica and org.fmi-standard domains are reserved for use in future layered standards.

to

"All namespaces under both the org.modelica and org.fmi-standard domains are reserved for use in future layered standards developed and maintained by the Modelica Association.".

?

If FMI and SSP already decided, which domains you are going to use, then we could also clarify the non-normative text (org.modelica.fmi vs. org.fmi-standard)?

GallLeo commented 2 years ago

I just found a similar/duplicate definition in section 2.5.1.6. Directory extra (https://fmi-standard.org/docs/3.0-dev/#structure-of-zip):

In order to avoid ambiguities and conflicts, the names of these subdirectories should use the reverse domain notation of a domain that is controlled by the entity defining the semantics and content of the additional entries [(for example extra/com.example/SimTool/meta.xml or extra/org.example.stdname/data.asd)]. The use of subdirectories beginning with org.modelica and org.fmi-standard is explicitly reserved for use by MAP FMI-defined layered standards, i.e. other uses must not use subdirectory names beginning with these prefixes.

Now, I'm confused: Does this section want to prevent using org.modelica.efmi by MAP-eFMI?

andreas-junghanns commented 2 years ago

@GallLeo : eFMI can, of course, add there, because they belong to org.modelica and the MA has the naming authority. For all MAPs, these sentences are not critical - the MA is boss. What (I think) @pmai is trying to say: Anyone outside MA, e.g. "BestSimulation AG", cannot develop a layered standard and mess with "our" names spaces. This needs to be clear in the standard.

I can see your confusion, as the current text says "reserved for use by MAP FMI-defined layered standards" which kind of excludes eFMI. Should we drip the "FMI-defined" to make it read "reserved for use by MAP layered standards"?

GallLeo commented 2 years ago

@andreas-junghanns "reserved for use by MAP layered standards" is not completely clear. We cannot assume, that a reader of the FMI Standard knows the MAP structure of MA. Layered standards are special, because they might not be defined by (fmi-experienced) tool implementors but also by some group of end users. Therefore, clarity is absolutely required.

Another proposal: "reserved for use by layered standards defined by Modelica Association or its own projects (MAPs)"?

martinkrammer commented 2 years ago

@andreas-junghanns "reserved for use by MAP layered standards" is not completely clear. We cannot assume, that a reader of the FMI Standard knows the MAP structure of MA. Layered standards are special, because they might not be defined by (fmi-experienced) tool implementors but also by some group of end users. Therefore, clarity is absolutely required. Another proposal: "reserved for use by layered standards defined by Modelica Association or its own projects (MAPs)"?

The question remains, which person or part of our organization is responsible for this coordination. This would contribute to clarity ("reserved for use by layered standards defined by MA").

chrbertsch commented 2 years ago

@martinkrammer: this PR is already merged. Please propose a concrete wording if you want something to be changed ASAP.

pmai commented 2 years ago

Anyway these decisions (who coordinates what, who has authority) do not belong in a standard document, because these things change due to organizational changes, whereas the standard is eternal. This just reserves the namespaces, how the reserved namespaces are then used inside MA is up to MA and the MAPs involved.

christoff-buerger commented 2 years ago

I like the change proposed by @GallLeo and pushed by @chrbertsch in #1759: "reserved for use by layered standards defined by Modelica Association or its own projects (MAPs)"