Spectrum data model
Norman Gray
norman at astro.gla.ac.uk
Thu Sep 14 05:59:10 PDT 2006
Hello, Doug and Mark,
> On Wed, 13 Sep 2006, Mark Taylor wrote:
>> The reason is that there may be multiple different and incompatible
>> serializations which share the same Data Model and MIME type.
It might be worth pointing out, here, that MIME types (or rather the
Content-Type headers in which they're used) admit of
parameterisation. Thus
Content-Type: image/fits; serialization=http://www.ivoa.net/...
is syntactically acceptable. No parameters are specified as required
or optional by the FITS MIME-type RFC, but the MIME RFC requires that
implementations ignore any parameters they do not recognise, so that
the above Content-Type header would I think be irreproachable. The
data model of which this is the serialization would be specified
elsewhere in the transaction, and in any case might well be implicit
in the serialization, so that wouldn't have to be indicated here.
It's arguably the wrong layer for that, anyway.
On 2006 Sep 13 , at 20.29, Doug Tody wrote:
> The intention was that for
> Spectrum only the documented serializations would be used, but I agree
> that we do not yet have a way yet to fully specify the serialization
> and that this would be a useful thing to add.
Probably the most web-friendly place to put this is, as you indicated
in an earlier message, within the access/transport protocol --
possibly as a parameterized MIME type.
If, however, the object being transported (FITS file or VOTable or
XML) is seen as something that would be stored for a time, rather
than being merely a rather high-level transport encoding, then the
serialization would have to be indicated within the object as well.
Or would it? A way round this is to avoid mandating any specific
serialisation format (though have specific formats as `good practice'
or strong suggestions), but instead make it rigourously required to
associate utypes with the data in the serialisation, and expect the
client to use these alone to reconstruct the original model instance.
That is, if I see
<PARAM name="Equinox"
utype="spec:Spectrum.CoordSys.SpaceFrame.Equinox"
ucd="time.equinox;pos.eq"
datatype="float"
value="2000.0" />
then I don't really have to have read Jonathan's section 8 to know
that I'm going to have to put 2000.0 wherever
spec:Spectrum.CoordSys.SpaceFrame.Equinox things usually go in the
deserialised object. As far as I can see, the same applies to
everything else in Jonathan's example VOTable.
It would also be immediately true for FITS files, if the keyword-
>utype mapping of Jonathan's section 9.1 were included in a table
within the FITS file, or referred to by some retrievable (and
cacheable) URL. Once the client has read that table, it has all the
information it might need to reconstruct the original object, piece
by piece.
This involves less standardisation cost, and it would be robust
against both deliberate and accidental variations in the
serialisation format. It also opens the way for clients to glean
information from a serialisation even if they don't (or don't need
to) understand all of it.
All the best,
Norman
--
------------------------------------------------------------------------
----
Norman Gray / http://nxg.me.uk
eurovotech.org / University of Leicester, UK
More information about the dm
mailing list