<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br><div><br><blockquote type="cite"><div>On 27 Feb 2023, at 19:31, Patrick Dowler <pdowler.cadc@gmail.com> wrote:</div><br class="Apple-interchange-newline"><div><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr"><div class="gmail_default" style="font-size:small">We seem to have veered a little, but that's my own fault for kind of hijacking this thread with a technical <br></div><div class="gmail_default" style="font-size:small">issue :-)</div></div></div></blockquote><div><br></div>we have - especially as most of the issues discussed are actually VO-DML (not MIVOT) issues...<br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I'm pretty sure the test case I provided shows that the currently published VO-DML xsd + schematron <br></div><div class="gmail_default" style="font-size:small">does not enforce the intended/correct uniqueness of attribute names within a class. In my opinion, that's <br></div><div class="gmail_default" style="font-size:small">a bug and I would guess it is something missing from the schematron doc. The alternative explanation is <br></div><div class="gmail_default" style="font-size:small">that attribute name is simply a label, but that's not really true because the xsd enforces naming <br></div><div class="gmail_default" style="font-size:small">rules on the value.<br></div></div></div></blockquote><div><br></div>I have been trying to persuade people for the last few Interops to adopt the new <a href="https://github.com/ivoa/vo-dml">https://github.com/ivoa/vo-dml</a> tooling which is</div><div>striving to be both easier to use and more rigorous. It catches the error (with a few more)</div><div><br></div><div><div>% gradle vodmlv</div><div><br></div><div>> Task :vodmlValidate</div><div>importing models used by test ...</div><div>opening imported model in http://www.ivoa.net/xml/VODML/IVOA-v1.vo-dml.xml</div><div>failed-assert /Q{http://www.ivoa.net/xml/VODML/v1}model[1]/Q{}package[1]/Q{}objectType[1]/Q{}vodml-id[1] </div><div> vodml-id 'SomeClass' does not follow standard form. 'testpkg.someClass'</div><div> </div><div>failed-assert /Q{http://www.ivoa.net/xml/VODML/v1}model[1]/Q{}package[1]/Q{}objectType[1]/Q{}attribute[1]/Q{}vodml-id[1] </div><div> vodml-id 'SomeClass.attr1' does not follow standard form. 'testpkg.someClass.thing1'</div><div> </div><div>failed-assert /Q{http://www.ivoa.net/xml/VODML/v1}model[1]/Q{}package[1]/Q{}objectType[1]/Q{}attribute[2]/Q{}vodml-id[1] </div><div> vodml-id 'SomeClass.attr2' does not follow standard form. 'testpkg.someClass.thing1'</div><div> </div><div>failed-assert /Q{http://www.ivoa.net/xml/VODML/v1}model[1]/Q{}package[1]/Q{}objectType[1]/Q{}attribute[2]/Q{}name[1] </div><div> name 'thing1' is not unique! There are other members with same name in objectType SomeClass .</div><div> </div><div><br></div><div>BUILD SUCCESSFUL in 4s</div><div>1 actionable task: 1 executed</div><div><br></div><blockquote type="cite"><div><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">It doesn't matter how one creates the model. I prefer hand-written rather than generated from XMI</div><div class="gmail_default" style="font-size:small">because it is better for version control.<br></div></div></div></blockquote><div><br></div>for even longer I have been trying to persuade people that for hand editing textual representations of models <a href="https://github.com/pahjbo/vodsl">https://github.com/pahjbo/vodsl</a> is good (and all built-in the latest VO-DML tooling)</div><div><br></div><div>—8<---</div><div><div>model test (1.0) "test model to make sure code works"</div><div> </div><div> include "IVOA-v1.vodsl"</div><div> </div><div>package testpkg "the main package"</div><div>{</div><div> </div><div>otype someClass </div><div> { </div><div> thing1: ivoa:real ;</div><div> thing1: ivoa:real ;</div><div> }</div><div><br></div><div>}</div><div>—8<—</div><div><br></div><div>No irritating VODML-IDs to invent there….</div></div><div><br><blockquote type="cite"><div><div dir="ltr"><br><div class="gmail_default" style="font-size:small"></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div>--<br></div><div>Patrick Dowler<br></div>Canadian Astronomy Data Centre<br></div>Victoria, BC, Canada<br></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 24 Feb 2023 at 03:38, Paul Harrison <<a href="mailto:paul.harrison@manchester.ac.uk">paul.harrison@manchester.ac.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><br><div><br><blockquote type="cite"><div>On 23 Feb 2023, at 18:23, Laurent Michel <<a href="mailto:laurent.michel@astro.unistra.fr" target="_blank">laurent.michel@astro.unistra.fr</a>> wrote:</div><br><div>
<div style="overflow-wrap: break-word;"><br><div>
<div dir="auto" style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div>—</div><div>Translate with https: //<a href="http://www.deepl.com/translator" target="_blank">www.deepl.com/translator</a></div><div>-- <br>jesuischarlie/Tunis/Paris/Bruxelles/Berlin<br><br>Laurent Michel<br>SSC XMM-Newton<br>Tél : +33 (0)3 68 85 24 37<br>Fax : +33 (0)3 )3 68 85 24 32<br>Université de Strasbourg <<a href="http://www.unistra.fr/" target="_blank">http://www.unistra.fr</a>><br>Observatoire Astronomique<br>11 Rue de l'Université<br>F - 67200 Strasbourg</div></div></div>
</div>
<div><br><blockquote type="cite"><div>On 23 Feb 2023, at 18:59, Paul Harrison <<a href="mailto:paul.harrison@manchester.ac.uk" target="_blank">paul.harrison@manchester.ac.uk</a>> wrote:</div><br><div><div><br><div><br><blockquote type="cite"><div>On 23 Feb 2023, at 14:24, Laurent Michel <<a href="mailto:laurent.michel@astro.unistra.fr" target="_blank">laurent.michel@astro.unistra.fr</a>> wrote:</div><br><div><div><div><div><blockquote type="cite" style="font-family:Helvetica;font-size:15px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div><div><div><blockquote type="cite"><div><div><span style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">I understand, but there is no reason but he common sense, to give a particular structure to the VOMDL-IDs.<span> </span></span><br style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><span style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">We you generate VODML from XMI (modelio), you first get random IDs for the VOMDL-ID and in a second steps, there are built from [model-name, attr-name , ID of the host class], but the XSLT doing this is not part of the standard. If you edit your VOMDL by hand, like Pat did, you may introduce a distortion to this rule without breaking the schema compliance.</span><br style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><br style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><span style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">This is why I suggest to tell the users:</span><br style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><span style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">- do not rely on names</span><br style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><span style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">- do no parse VODML-IDs</span><br style="font-family:Monaco;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"></div></div></blockquote><div><br></div><div>I agree that technically the VODML-IDs are just XMLIDs andlong as they are unique within a single VODML instance that they can have any value/structure. However, this is precisely the problem, as simply regarded like this, then two instances of a VO-DML document describing a particular model could both be valid, but with entirely different sets of VODML-IDs, and in this situation another standard like MIVOT cannot use those VODML-IDs without also saying precisely which instance document is being used to describe the model. Unless there is some guarantee about the form of the VODML-ID then there could also be undesirable behaviour that new versions of a model did not retain the exact same VODML-ID for a particular attribute.</div><div><br></div></div></div></div></blockquote><div style="font-family:Helvetica;font-size:15px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><br></div><span style="font-family:Helvetica;font-size:15px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">I do not agree with this. Once the VODML-IDs have been set, no matter how you do it, they are part of the standard - of the VOMDL description of the model -. None is allowed to change them later on.</span></div></div></div><br></div></blockquote></div><br><div>The VO-DML standard makes no guarantee of this - it is perfectly legal for me to create the next version of the PhotDM for instance with totally different VODML-IDs. We all agree that it is sensible that a particular model element keeps a constant ID and better that it is human readable, and that the human can look at the structure of the VODML-ID and make inferences about the function of that element in the model. However, the only reason that this has happened in model instances so far is because of the XSLT processing, which you say is not part of the standard. I would like the structure that the XSLT scripts impose to be part of the standard, so that the manual edit that Pat did would actually be non-compliant.</div></div></div></blockquote><div><br></div>Once your model has been reviewed and accepted, the VODML file is published on the doc repo and becomes the reference along with the spec document. </div><div>None can modify it anymore out of the std&doc process. </div><div>The VOMDL-IDs in that file are then frozen and can be used with absolute confidence.</div><div> Changing them is equivalent to changing the standard.</div><div>The stability of the VOMDL-IDs is not provided by the VODML standard but by the Std&Doc rules.</div><div><br></div></div></div></blockquote><div><br></div><div>This is what the VO-DML standard says about VODML-IDs </div><div><br></div><div>----</div><div><div title="Page 21"><div><div><p><span style="font-size:12pt;font-family:ArialMT">Identifier for the containing model element. Syntax in VO-DML/XML defined by the </span><span style="font-size:12pt;font-family:CourierNewPSMT">VODMLID </span><span style="font-size:12pt;font-family:ArialMT">type, as shown in the VO-DML/Schema snippet below. This element MUST be formatted according to the regular expression in the XML schema:</span></p><pre><span style="font-size:12pt;font-family:CourierNewPSMT"> [a-zA-Z][a-zA-Z0-9_\.]*
</span></pre><p><span style="font-size:12pt;font-family:ArialMT">The value assigned to an element MUST be unique in the document and is case sensitive.</span></p></div></div></div></div><div>-----</div><div><br></div><div>I can follow all of Std&Doc rules and all of the VO-DML std rules and produce PhotDM 1.2 with entirely different VODML-IDs - It is not sensible, but it is legal, as the standard only says that they must be unique within the document, and does not relate them to the <name> elements, so the IDs could be just random generated strings - much as happens with the XMI produced by UML modelling tools. I want to update the standard to say that it there is the structure in the VODML-IDs that many other things implicitly rely on when referring to model elements from outside the file.</div><div><br></div><div>I am not sure why the VO-DML standard does not address this - possibly because as generated by the tooling the VODML-IDs look a lot like another definition of UType (<a href="https://www.ivoa.net/documents/Notes/UTypesUsage/" target="_blank">https://www.ivoa.net/documents/Notes/UTypesUsage/</a>) and it was “easier” to avoid that issue, and just treat it as a “new” way to reference data model elements. I think that was a mistake as the rigorous way that they are produced would have been the opportunity to say this is the “best” UTYPE.</div><div><br></div><div>Of course because the VODML-IDs are mechanically constructed it is possible to remove them….</div><div><br></div><div><br></div><div>Paul.</div><div><br></div><div><br></div><br></div><div><br></div><br></div></blockquote></div>
</div></blockquote></div><br></body></html>