MCT - model document delivery.
CresitelloDittmar, Mark
mdittmar at cfa.harvard.edu
Tue Sep 22 16:22:49 CEST 2020
On Mon, Sep 21, 2020 at 4:51 AM Markus Demleitner <
msdemlei at ari.uni-heidelberg.de> wrote:
> Hi Mark,
>
> On Fri, Sep 18, 2020 at 11:00:03AM -0400, CresitelloDittmar, Mark wrote:
> [the following refers to this:]
> > > <INSTANCE type="ds:Target">
> > > <COLLECTION role="targetPosDef">
> > > <INSTANCE ref="RA"/>
> > > <INSTANCE ref="DEC"/>
> > > </COLLECTION>
> > > <ATTRIBUTE role="objectClass" value="Star"/>
> > > </INSTANCE>
>
> <snip>
> > * which is the latitude? the longitude? the frame?
>
> Target does not know about them, nor should it. A target is a
> target, whether it is identified by a coords spherical position or
> some other way to denote a location in. The good thing about keeping
> such details out of ds:Target is that it will just continue to work
> when we're moving into the solar system (where lat and long just
> isn't enough). Just say which fields and params belong to the target
> designation and leave their annotation to a specialised class.
>
In your vision then, what does the model element ds:Target contain?
I don't mean the annotation, the model. The current model has
ds:Target
+ name: ivoa:string
+ description: ivoa:string
+ position: meas:Position[0..1]
+ objectClass: ivoa:string
> In this particular case, that would be one of:
>
> > > <INSTANCE type="coords:Position" id="pos1">
> > > <ATTRIBUTE role="ref_frame" value="ICRS"/>
> > > <ATTRIBUTE role="latitude" ref="DEC"/>
> > > <ATTRIBUTE role="longitude" ref="RA"/>
> > > </INSTANCE>
>
> or
>
> > > <INSTANCE type="coords2:EquatorialPosition" id="pos2">
> > > <ATTRIBUTE role="ref_frame" value="ICRS"/>
> > > <ATTRIBUTE role="dec" ref="DEC"/>
> > > <ATTRIBUTE role="ra" ref="RA"/>
> > > </INSTANCE>
>
> (or both) -- you see that as long as a client understands any of
> coords and coords2, they are able to fully annotate RA and DEC, *and*
> work out that they are the position for the Target of something.
>
>
So, the client parsing Target,
* sees the attribute 'targetPosDef', and because they know the model,
know this is some sort of Position..
* so they scan all the other annotation snippets for a coords*:Position
class or subclass which also includes references to fields "RA" and "DEC".
* they find 2 "pos1" and "pos2" which are the same instance annotated to
2 different coords model versions.
* they select 1, whichever they prefer, and instantiate the
Target.targetPosDef.
This seems really inefficient to be doing this for every complex object in
the serialization.
Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ivoa.net/pipermail/dm/attachments/20200922/d3fc16d2/attachment.html>
More information about the dm
mailing list