<div dir="ltr"><div><div><div>Markus,<br><br></div>Can you make a statement about how you think this proposed arrangement would effect<br></div>  1) Validation<br></div>  2) Interoperability<br><div><div><div><div>​<br></div><div>The Cube model has the following links to other models<br></div><div>  a) Dataset - defines itself as an extension of ObsDataset<br></div>  b) Coordsys - where coordinate system objects and the pattern for Frames are defined<br></div><div>  c) Coords - where the pattern for Coordinates is defined (and implemented for several domains, but that is not important here)<br></div><div>  d) Trans - where Transform mappings are defined.<br><br></div><div>  NOTE: Coordsys, Coords and Trans are the component models of the STC2 project<br><br></div><div>Let&#39;s look closer at one of these:<br><br></div><div>You say that cube should not import Coords to identify what a Coordinate is.. that it simply indicates that &#39;it has Coordinates&#39;.<br></div><div>It currently says that an Observable is a coords:DerivedCoordinate .. which is an abstract object restricted to <br></div><div>follow the pattern defined in that model.  Any model can implement the pattern and declare itself as that type of Coordinate,<br></div><div>and be instantly usable in a cube instance.<br><br></div><div>Without this explicit link, then one cannot validate across these boundaries.<br></div><div>An instance would have <br></div><div>   Element with role cube:DataAxis.observable<br></div><div>      Instance with type &lt;whatever implemented &quot;Coordinate&quot; type&gt;  ie: spec:FluxCoord<br><br></div><div>But a validator cannot check if FluxCoord is actually a Coordinate... (I could put a ds:Curation  instance<br></div><div>there.. the role and the instance would be individually valid, but the combination is nonsense).<br><br></div><div>With the link, a validator can see that the Instance must be a child of coords:DerivedCoordinate<br></div><div>and poll the spec:FluxCoord to see that it is.<br><br></div><div>And.. without the link, there is no binding the various implementations of Coordinate to the pattern.<br></div><div>Interoperability would suffer because there would be no guarantee of compatibility of different Coordinate types.<br></div><div>My code that understands the Coords pattern would have no hope of understanding any portion of <br></div><div>independently defined Coordinates.<br><br></div>Mark<br><br></div><div><div><br></div><div><br></div><div><br><br><br><br></div></div></div></div>