STC in VOTable"> Embedding STC in VOTableThe result of the discussions sketched below is 2.0 of the Note.History | ||||||||
Changed: | ||||||||
< < | At the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the STC in VOTable Note specifying how to embed STC in VOTables. | |||||||
> > | At the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the STC in VOTable Note specifying how to embed STC in VOTables. | |||||||
There's been quite a bit of work going on since then; older items have been
moved to STCInVOTableArchive, which doesn't necessarily mean the issues are
settled; if something discussed there still bugs you, feel free to resurrect
it here. Please use add your comments in the section on the most recent draft.
Draft of 2010-06-01I've put up a new draft at http://vo.ari.uni-heidelberg.de/docs/note_stc_20100601.pdf. Most changes are cosmetic; in particular, the tables with STC utypes are gone. Instead, there is an appendix enumerating the more useful ones.Change: Epoch is a floatBy popular request, the value of the Epoch utype is now a simple float, and there is a stc:AstroCoords.Position2D.Epoch.yearDef utype that can be B to signify the Epoch is given in Besselian years.No change: Area utypesArnold has asked below what content there would be in columns with utypes like stc:AstroCoordArea.Circle -- well, the representation of complex data is not really what data models are about; both the TAP and the ADQL document suggest some form, but others are conceivable. It is, admittedly, somewhat unfortunate that STC-S carries its own metadata to some extent, and thus all kinds of confusion is possible when additional and potentially conflicting metadata is added from outside. I'm afraid that cannot be fixed at that point, and I'd suggest that protocol clients "should" discard one or the other (and I'd suggest they should ignore what's in STC-S, but that's a different discussion). Let's just separate data and metadata in future protocols, shall we?Draft of 2010-04-20I've put up a new draft at http://vo.ari.uni-heidelberg.de/docs/note_stc_20100420.pdf. This is basically a rewrite (while, I believe, maintaining the spirit of the old note). Below, I've opened up Level 3 discussion spaces for what I believe a the most sweeping changes against the ''previous draft'' (not the current version of the note; see STCInVOTableArchive for the other changes). -- MarkusDemleitner - 20 Apr 2010Change: One groupMD: Rather than having one AstroCoordSystem and one AstroCoord group per system, all utypes dealing with one coordinate system is now contained in one group of (typically) utype stc:ObservationLocation. While this means you can no longer re-use coordinate system definitions within a VOTable, I believe the advantages in implementation simplicity far outweigh this drawback.Change: AbsoluteTime substitution group gets yet another special treatmentMD: STC-X unfortunately has the AbsoluteTime substituion group that gives what in VOTable is xtype's job (and even if that weren't so, having serialization details in utypes is a pain anyway). So, a new special rule was inserted into the utype generation algorithm to divert ISOTime, JDTime and MJDTime into some special utype, and there's a recommendation to drop that particular utype. Nasty special-casing all over the place, but all alternatives (some of which are discussed in STCInVOTableArchive, search for xtype) seemed worse to me.Change: DataModel.URIMD: Many people want some versioning of the data models, preferably connecting data models to URLs. After some consultation with Mireille, I propose to transmit this URL in DataModel.URI. It doesn't help to make instance documents much prettier but is IMHO a rather non-invasive method of making explicit what data model was used.CommentsI have a few residual comments: p. 6, table 3:LSR, LSRD, LSRK should only be allowed in spectral and redshift frames. p. 8, table 5: I could grumble about the IDs, but they can be reconstructed when taking the utypes and turning them into a proper STC-X document. However, the units are a bit more problematic. I'll grant you that there could be conflicts arising, but banning them makes it very hard to reconstruct the STC-X version. p. 10, top: I just want to register my disagreement, for the record, with this definition of epoch. p. 10, sec. 4.1: I am not clear how that region is going to be represented in the table; wouldn't it need center and radius columns? However, it raises another issue that we probably should have addressed: how to represent STC-S strings. The nice thing about them is that they are fully self-contained. Should they be string columns that have an xtype="stc:STCS", for instance? p. 11, end of sec. 4.2: I'm not enamored of the name "Ephem"; why not Time or ISOTime? And I would suggest that xtype="stc:ISOTime" might be more fitting. -- ArnoldRots - 19 May 2010
|
STC in VOTable"> Embedding STC in VOTable | ||||||||
Added: | ||||||||
> > | The result of the discussions sketched below is 2.0 of the Note.
History | |||||||
At the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the STC in VOTable Note specifying how to embed STC in VOTables.
There's been quite a bit of work going on since then; older items have been
moved to STCInVOTableArchive, which doesn't necessarily mean the issues are
settled; if something discussed there still bugs you, feel free to resurrect
it here. Please use add your comments in the section on the most recent draft.
Draft of 2010-06-01I've put up a new draft at http://vo.ari.uni-heidelberg.de/docs/note_stc_20100601.pdf. Most changes are cosmetic; in particular, the tables with STC utypes are gone. Instead, there is an appendix enumerating the more useful ones.Change: Epoch is a floatBy popular request, the value of the Epoch utype is now a simple float, and there is a stc:AstroCoords.Position2D.Epoch.yearDef utype that can be B to signify the Epoch is given in Besselian years.No change: Area utypesArnold has asked below what content there would be in columns with utypes like stc:AstroCoordArea.Circle -- well, the representation of complex data is not really what data models are about; both the TAP and the ADQL document suggest some form, but others are conceivable. It is, admittedly, somewhat unfortunate that STC-S carries its own metadata to some extent, and thus all kinds of confusion is possible when additional and potentially conflicting metadata is added from outside. I'm afraid that cannot be fixed at that point, and I'd suggest that protocol clients "should" discard one or the other (and I'd suggest they should ignore what's in STC-S, but that's a different discussion). Let's just separate data and metadata in future protocols, shall we?Draft of 2010-04-20I've put up a new draft at http://vo.ari.uni-heidelberg.de/docs/note_stc_20100420.pdf. This is basically a rewrite (while, I believe, maintaining the spirit of the old note). Below, I've opened up Level 3 discussion spaces for what I believe a the most sweeping changes against the ''previous draft'' (not the current version of the note; see STCInVOTableArchive for the other changes). -- MarkusDemleitner - 20 Apr 2010Change: One groupMD: Rather than having one AstroCoordSystem and one AstroCoord group per system, all utypes dealing with one coordinate system is now contained in one group of (typically) utype stc:ObservationLocation. While this means you can no longer re-use coordinate system definitions within a VOTable, I believe the advantages in implementation simplicity far outweigh this drawback.Change: AbsoluteTime substitution group gets yet another special treatmentMD: STC-X unfortunately has the AbsoluteTime substituion group that gives what in VOTable is xtype's job (and even if that weren't so, having serialization details in utypes is a pain anyway). So, a new special rule was inserted into the utype generation algorithm to divert ISOTime, JDTime and MJDTime into some special utype, and there's a recommendation to drop that particular utype. Nasty special-casing all over the place, but all alternatives (some of which are discussed in STCInVOTableArchive, search for xtype) seemed worse to me.Change: DataModel.URIMD: Many people want some versioning of the data models, preferably connecting data models to URLs. After some consultation with Mireille, I propose to transmit this URL in DataModel.URI. It doesn't help to make instance documents much prettier but is IMHO a rather non-invasive method of making explicit what data model was used.CommentsI have a few residual comments: p. 6, table 3:LSR, LSRD, LSRK should only be allowed in spectral and redshift frames. p. 8, table 5: I could grumble about the IDs, but they can be reconstructed when taking the utypes and turning them into a proper STC-X document. However, the units are a bit more problematic. I'll grant you that there could be conflicts arising, but banning them makes it very hard to reconstruct the STC-X version. p. 10, top: I just want to register my disagreement, for the record, with this definition of epoch. p. 10, sec. 4.1: I am not clear how that region is going to be represented in the table; wouldn't it need center and radius columns? However, it raises another issue that we probably should have addressed: how to represent STC-S strings. The nice thing about them is that they are fully self-contained. Should they be string columns that have an xtype="stc:STCS", for instance? p. 11, end of sec. 4.2: I'm not enamored of the name "Ephem"; why not Time or ISOTime? And I would suggest that xtype="stc:ISOTime" might be more fitting. -- ArnoldRots - 19 May 2010 <--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the STC in VOTable Note specifying how to embed STC in VOTables. There's been quite a bit of work going on since then; older items have been moved to STCInVOTableArchive, which doesn't necessarily mean the issues are settled; if something discussed there still bugs you, feel free to resurrect | ||||||||
Changed: | ||||||||
< < | it here. | |||||||
> > | it here. Please use add your comments in the section on the most recent draft. | |||||||
Added: | ||||||||
> > |
Draft of 2010-06-01I've put up a new draft at http://vo.ari.uni-heidelberg.de/docs/note_stc_20100601.pdf. Most changes are cosmetic; in particular, the tables with STC utypes are gone. Instead, there is an appendix enumerating the more useful ones.Change: Epoch is a floatBy popular request, the value of the Epoch utype is now a simple float, and there is a stc:AstroCoords.Position2D.Epoch.yearDef utype that can be B to signify the Epoch is given in Besselian years.No change: Area utypesArnold has asked below what content there would be in columns with utypes like stc:AstroCoordArea.Circle -- well, the representation of complex data is not really what data models are about; both the TAP and the ADQL document suggest some form, but others are conceivable. It is, admittedly, somewhat unfortunate that STC-S carries its own metadata to some extent, and thus all kinds of confusion is possible when additional and potentially conflicting metadata is added from outside. I'm afraid that cannot be fixed at that point, and I'd suggest that protocol clients "should" discard one or the other (and I'd suggest they should ignore what's in STC-S, but that's a different discussion). Let's just separate data and metadata in future protocols, shall we? | |||||||
Draft of 2010-04-20I've put up a new draft at http://vo.ari.uni-heidelberg.de/docs/note_stc_20100420.pdf. This is basically a rewrite (while, I believe, maintaining the spirit of the old note). Below, I've opened up Level 3 discussion spaces for what I believe a the most sweeping changes against the ''previous draft'' (not the current version of the note; see STCInVOTableArchive for the other changes). -- MarkusDemleitner - 20 Apr 2010Change: One groupMD: Rather than having one AstroCoordSystem and one AstroCoord group per system, all utypes dealing with one coordinate system is now contained in one group of (typically) utype stc:ObservationLocation. While this means you can no longer re-use coordinate system definitions within a VOTable, I believe the advantages in implementation simplicity far outweigh this drawback.Change: AbsoluteTime substitution group gets yet another special treatmentMD: STC-X unfortunately has the AbsoluteTime substituion group that gives what in VOTable is xtype's job (and even if that weren't so, having serialization details in utypes is a pain anyway). So, a new special rule was inserted into the utype generation algorithm to divert ISOTime, JDTime and MJDTime into some special utype, and there's a recommendation to drop that particular utype. Nasty special-casing all over the place, but all alternatives (some of which are discussed in STCInVOTableArchive, search for xtype) seemed worse to me.Change: DataModel.URIMD: Many people want some versioning of the data models, preferably connecting data models to URLs. After some consultation with Mireille, I propose to transmit this URL in DataModel.URI. It doesn't help to make instance documents much prettier but is IMHO a rather non-invasive method of making explicit what data model was used.CommentsI have a few residual comments: p. 6, table 3:LSR, LSRD, LSRK should only be allowed in spectral and redshift frames. p. 8, table 5: I could grumble about the IDs, but they can be reconstructed when taking the utypes and turning them into a proper STC-X document. However, the units are a bit more problematic. I'll grant you that there could be conflicts arising, but banning them makes it very hard to reconstruct the STC-X version. p. 10, top: I just want to register my disagreement, for the record, with this definition of epoch. p. 10, sec. 4.1: I am not clear how that region is going to be represented in the table; wouldn't it need center and radius columns? However, it raises another issue that we probably should have addressed: how to represent STC-S strings. The nice thing about them is that they are fully self-contained. Should they be string columns that have an xtype="stc:STCS", for instance? p. 11, end of sec. 4.2: I'm not enamored of the name "Ephem"; why not Time or ISOTime? And I would suggest that xtype="stc:ISOTime" might be more fitting. -- ArnoldRots - 19 May 2010 <--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the STC in VOTable Note specifying how to embed STC in VOTables. There's been quite a bit of work going on since then; older items have been moved to STCInVOTableArchive, which doesn't necessarily mean the issues are settled; if something discussed there still bugs you, feel free to resurrect it here.Draft of 2010-04-20I've put up a new draft at http://vo.ari.uni-heidelberg.de/docs/note_stc_20100420.pdf. This is basically a rewrite (while, I believe, maintaining the spirit of the old note). Below, I've opened up Level 3 discussion spaces for what I believe a the most sweeping changes against the ''previous draft'' (not the current version of the note; see STCInVOTableArchive for the other changes). -- MarkusDemleitner - 20 Apr 2010Change: One groupMD: Rather than having one AstroCoordSystem and one AstroCoord group per system, all utypes dealing with one coordinate system is now contained in one group of (typically) utype stc:ObservationLocation. While this means you can no longer re-use coordinate system definitions within a VOTable, I believe the advantages in implementation simplicity far outweigh this drawback.Change: AbsoluteTime substitution group gets yet another special treatmentMD: STC-X unfortunately has the AbsoluteTime substituion group that gives what in VOTable is xtype's job (and even if that weren't so, having serialization details in utypes is a pain anyway). So, a new special rule was inserted into the utype generation algorithm to divert ISOTime, JDTime and MJDTime into some special utype, and there's a recommendation to drop that particular utype. Nasty special-casing all over the place, but all alternatives (some of which are discussed in STCInVOTableArchive, search for xtype) seemed worse to me.Change: DataModel.URIMD: Many people want some versioning of the data models, preferably connecting data models to URLs. After some consultation with Mireille, I propose to transmit this URL in DataModel.URI. It doesn't help to make instance documents much prettier but is IMHO a rather non-invasive method of making explicit what data model was used. | ||||||||
Added: | ||||||||
> > | CommentsI have a few residual comments: | |||||||
Added: | ||||||||
> > | p. 6, table 3: LSR, LSRD, LSRK should only be allowed in spectral and redshift frames. p. 8, table 5: I could grumble about the IDs, but they can be reconstructed when taking the utypes and turning them into a proper STC-X document. However, the units are a bit more problematic. I'll grant you that there could be conflicts arising, but banning them makes it very hard to reconstruct the STC-X version. p. 10, top: I just want to register my disagreement, for the record, with this definition of epoch. p. 10, sec. 4.1: I am not clear how that region is going to be represented in the table; wouldn't it need center and radius columns? However, it raises another issue that we probably should have addressed: how to represent STC-S strings. The nice thing about them is that they are fully self-contained. Should they be string columns that have an xtype="stc:STCS", for instance? p. 11, end of sec. 4.2: I'm not enamored of the name "Ephem"; why not Time or ISOTime? And I would suggest that xtype="stc:ISOTime" might be more fitting. -- ArnoldRots - 19 May 2010 | |||||||
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the STC in VOTable Note specifying how to embed STC in VOTables. There's been quite a bit of work going on since then; older items have been moved to STCInVOTableArchive, which doesn't necessarily mean the issues are settled; if something discussed there still bugs you, feel free to resurrect it here.Draft of 2010-04-20I've put up a new draft at http://vo.ari.uni-heidelberg.de/docs/note_stc_20100420.pdf. This is basically a rewrite (while, I believe, maintaining the spirit of the old note). Below, I've opened up Level 3 discussion spaces for what I believe a the most sweeping changes against the ''previous draft'' (not the current version of the note; see STCInVOTableArchive for the other changes). -- MarkusDemleitner - 20 Apr 2010Change: One groupMD: Rather than having one AstroCoordSystem and one AstroCoord group per system, all utypes dealing with one coordinate system is now contained in one group of (typically) utype stc:ObservationLocation. While this means you can no longer re-use coordinate system definitions within a VOTable, I believe the advantages in implementation simplicity far outweigh this drawback.Change: AbsoluteTime substitution group gets yet another special treatmentMD: STC-X unfortunately has the AbsoluteTime substituion group that gives what in VOTable is xtype's job (and even if that weren't so, having serialization details in utypes is a pain anyway). So, a new special rule was inserted into the utype generation algorithm to divert ISOTime, JDTime and MJDTime into some special utype, and there's a recommendation to drop that particular utype. Nasty special-casing all over the place, but all alternatives (some of which are discussed in STCInVOTableArchive, search for xtype) seemed worse to me.Change: DataModel.URIMD: Many people want some versioning of the data models, preferably connecting data models to URLs. After some consultation with Mireille, I propose to transmit this URL in DataModel.URI. It doesn't help to make instance documents much prettier but is IMHO a rather non-invasive method of making explicit what data model was used.<--
| ||||||||
Added: | ||||||||
> > |
| |||||||
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the STC in VOTable Note specifying how to embed STC in VOTables. | ||||||||
Changed: | ||||||||
< < | There's been quite a bit of work going on since then; more ancient items have been moved to STCInVOTableArchive. | |||||||
> > | There's been quite a bit of work going on since then; older items have been | |||||||
Added: | ||||||||
> > | moved to STCInVOTableArchive, which doesn't necessarily mean the issues are settled; if something discussed there still bugs you, feel free to resurrect it here. | |||||||
Added: | ||||||||
> > | Draft of 2010-04-20 | |||||||
Changed: | ||||||||
< < | Change 1: Reverse References | |||||||
> > | I've put up a new draft at | |||||||
Added: | ||||||||
> > | http://vo.ari.uni-heidelberg.de/docs/note_stc_20100420.pdf. This is basically a rewrite (while, I believe, maintaining the spirit of the old note). Below, I've opened up Level 3 discussion spaces for what I believe a the most sweeping changes against the ''previous draft'' (not the current version of the note; see STCInVOTableArchive for the other changes). | |||||||
Changed: | ||||||||
< < | Instead of having utype and ref on FIELD, put groups into the AstroCoords group: | |||||||
> > | -- MarkusDemleitner - 20 Apr 2010 | |||||||
Changed: | ||||||||
< < | ||||||||
> > | Change: One group | |||||||
Deleted: | ||||||||
< < | <GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> | |||||||
Changed: | ||||||||
< < | (or use FIELDrefs that, I'm told, can now take utypes as well). | |||||||
> > | MD: Rather than having one AstroCoordSystem and one AstroCoord group per | |||||||
Added: | ||||||||
> > | system, all utypes dealing with one coordinate system is now contained in one group of (typically) utype stc:ObservationLocation. While this means you can no longer re-use coordinate system definitions within a VOTable, I believe the advantages in implementation simplicity far outweigh this drawback. | |||||||
Changed: | ||||||||
< < | Rationale: | |||||||
> > | Change: AbsoluteTime substitution group gets yet another special treatment | |||||||
Changed: | ||||||||
< < | ||||||||
> > | MD: STC-X unfortunately has the AbsoluteTime substituion group that gives what in VOTable is xtype's job (and even if that weren't so, having serialization details in utypes is a pain anyway). So, a new special rule | |||||||
Added: | ||||||||
> > | was inserted into the utype generation algorithm to divert ISOTime, JDTime and MJDTime into some special utype, and there's a recommendation to drop that particular utype. Nasty special-casing all over the place, but all alternatives (some of which are discussed in STCInVOTableArchive, search for xtype) seemed worse to me. | |||||||
Changed: | ||||||||
< < | Impact on Functionality: | |||||||
> > | Change: DataModel.URI | |||||||
Changed: | ||||||||
< < | As far as I can see, None. You need one AstroCoords group per what
set of coordinates either way. -- MD
Comments | |||||||
> > | MD: Many people want some versioning of the data models, preferably connecting data models to URLs. After some consultation with Mireille, I propose to transmit this URL in DataModel.URI. It doesn't help to make instance documents much prettier but is IMHO a rather non-invasive method of making explicit what data model was used. | |||||||
Deleted: | ||||||||
< < | I agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page.
-- ArnoldRots - 01 Dec 2009
I agree and think that FIELDref-s SHOULD be used. Is most logical way to add extra information about a field. The utype on the field is then freed up for pointing into other possibly more samntically meaningful models, such as "is a position of a galaxy".
-- GerardLemson - 11 Mar 2010
Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010 Comment Arnold: I wasn't suggesting that scattering outside the containers be allowed, so Markus's second point does not hold water. -- ArnoldRots - 16 Mar 2010 Comment Markus: So, Arnold: You are fine with dropping the id/ref mechanism and forbid referencing of AstroCoordSystem groups across your container groups? I'd like that a lot, and in that case I'd propose to just flatly dump all utypes belonging to that coordinate system into one group. That would really make implementations a lot easier. What do the others think? -- 2010-03-31EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010 Comment Arnold: This is a weak argument - why don't we consider everything a string and do away with all other datatypes? The fact that VOTable has a, in my opinion, poor representation for epochs does not mean that all other standards need to use the same. -- ArnoldRots - 16 Mar 2010 Comment Markus: We have types to denote the domains of variables and define the operators available for them. The domain of astronomical epochs represented by literals matching [JB][0-9]+(.[0-9]+) for quite some time now. By the way, even in the operators you see that astronomical epochs just aren't floats. If you say ~AstroCoords.Position.Epoch is a float, shouldn't I be perfectly entitled to just add them? And: What is the concrete utility of splitting the value? Does it reduce implementation effort? Will it help code correctness? --- 2010-03-31ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010 Comment Arnold: With all dues respect, Markus's argument is incorrect. In STC-S the referencing is defined (implied) in the syntax and the referencing is part of the standard. Since we are connecting STC elements together, we should be using STC's referencing mechanism. -- ArnoldRots - 16 Mar 2010 Comment Markus: The argument about a significantly increased implementation effort is hardly incorrect -- you'll have to write all the code to handle the parallel referencing, don't you? But either way: Arnold, you still have not pointed out what the use of a second, parallel referencing is. Does it prevent errors? Will it help readers or writers? Does it decrease the file size? -- 2010-03-31Time utypesYet another thing I'd like to change is the representation of the encoding in the time utypes. As the standards is written now, there are utypes ...TimeInstant.ISOTime, ...TimeInstant.JDTime, and ...TimeInstant.MJDTime and analogously for some other such utypes. That is bad for at least three reasons:
| |||||||
<--
|
STC in VOTable"> Embedding STC in VOTable | ||||||||
Changed: | ||||||||
< < | At the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. | |||||||
> > | At the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the STC in VOTable Note specifying how to embed STC in VOTables. | |||||||
Deleted: | ||||||||
< < | He's volunteered to work on the note to fix what he thinks is broken. | |||||||
Changed: | ||||||||
< < | This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading. | |||||||
> > | There's been quite a bit of work going on since then; more ancient items have been moved to STCInVOTableArchive. | |||||||
Added: | ||||||||
> > | ||||||||
Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentsI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009 I agree and think that FIELDref-s SHOULD be used. Is most logical way to add extra information about a field. The utype on the field is then freed up for pointing into other possibly more samntically meaningful models, such as "is a position of a galaxy". -- GerardLemson - 11 Mar 2010Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010 Comment Arnold: I wasn't suggesting that scattering outside the containers be allowed, so Markus's second point does not hold water. -- ArnoldRots - 16 Mar 2010 Comment Markus: So, Arnold: You are fine with dropping the id/ref mechanism and forbid referencing of AstroCoordSystem groups across your container groups? I'd like that a lot, and in that case I'd propose to just flatly dump all utypes belonging to that coordinate system into one group. That would really make implementations a lot easier. What do the others think? -- 2010-03-31EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010 Comment Arnold: This is a weak argument - why don't we consider everything a string and do away with all other datatypes? The fact that VOTable has a, in my opinion, poor representation for epochs does not mean that all other standards need to use the same. -- ArnoldRots - 16 Mar 2010 Comment Markus: We have types to denote the domains of variables and define the operators available for them. The domain of astronomical epochs represented by literals matching [JB][0-9]+(.[0-9]+) for quite some time now. By the way, even in the operators you see that astronomical epochs just aren't floats. If you say ~AstroCoords.Position.Epoch is a float, shouldn't I be perfectly entitled to just add them? And: What is the concrete utility of splitting the value? Does it reduce implementation effort? Will it help code correctness? --- 2010-03-31ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010 Comment Arnold: With all dues respect, Markus's argument is incorrect. In STC-S the referencing is defined (implied) in the syntax and the referencing is part of the standard. Since we are connecting STC elements together, we should be using STC's referencing mechanism. -- ArnoldRots - 16 Mar 2010 Comment Markus: The argument about a significantly increased implementation effort is hardly incorrect -- you'll have to write all the code to handle the parallel referencing, don't you? But either way: Arnold, you still have not pointed out what the use of a second, parallel referencing is. Does it prevent errors? Will it help readers or writers? Does it decrease the file size? -- 2010-03-31Time utypesYet another thing I'd like to change is the representation of the encoding in the time utypes. As the standards is written now, there are utypes ...TimeInstant.ISOTime, ...TimeInstant.JDTime, and ...TimeInstant.MJDTime and analogously for some other such utypes. That is bad for at least three reasons:
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentsI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009 I agree and think that FIELDref-s SHOULD be used. Is most logical way to add extra information about a field. The utype on the field is then freed up for pointing into other possibly more samntically meaningful models, such as "is a position of a galaxy". -- GerardLemson - 11 Mar 2010Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010 Comment Arnold: I wasn't suggesting that scattering outside the containers be allowed, so Markus's second point does not hold water. -- ArnoldRots - 16 Mar 2010 Comment Markus: So, Arnold: You are fine with dropping the id/ref mechanism and forbid referencing of AstroCoordSystem groups across your container groups? I'd like that a lot, and in that case I'd propose to just flatly dump all utypes belonging to that coordinate system into one group. That would really make implementations a lot easier. What do the others think? -- 2010-03-31EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010 Comment Arnold: This is a weak argument - why don't we consider everything a string and do away with all other datatypes? The fact that VOTable has a, in my opinion, poor representation for epochs does not mean that all other standards need to use the same. -- ArnoldRots - 16 Mar 2010 Comment Markus: We have types to denote the domains of variables and define the operators available for them. The domain of astronomical epochs represented by literals matching [JB][0-9]+(.[0-9]+) for quite some time now. By the way, even in the operators you see that astronomical epochs just aren't floats. If you say ~AstroCoords.Position.Epoch is a float, shouldn't I be perfectly entitled to just add them? And: What is the concrete utility of splitting the value? Does it reduce implementation effort? Will it help code correctness? --- 2010-03-31ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010 Comment Arnold: With all dues respect, Markus's argument is incorrect. In STC-S the referencing is defined (implied) in the syntax and the referencing is part of the standard. Since we are connecting STC elements together, we should be using STC's referencing mechanism. -- ArnoldRots - 16 Mar 2010 Comment Markus: The argument about a significantly increased implementation effort is hardly incorrect -- you'll have to write all the code to handle the parallel referencing, don't you? But either way: Arnold, you still have not pointed out what the use of a second, parallel referencing is. Does it prevent errors? Will it help readers or writers? Does it decrease the file size? -- 2010-03-31 | ||||||||
Added: | ||||||||
> > |
Time utypesYet another thing I'd like to change is the representation of the encoding in the time utypes. As the standards is written now, there are utypes ...TimeInstant.ISOTime, ...TimeInstant.JDTime, and ...TimeInstant.MJDTime and analogously for some other such utypes. That is bad for at least three reasons:
| |||||||
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentsI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009 I agree and think that FIELDref-s SHOULD be used. Is most logical way to add extra information about a field. The utype on the field is then freed up for pointing into other possibly more samntically meaningful models, such as "is a position of a galaxy". -- GerardLemson - 11 Mar 2010Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010 Comment Arnold: I wasn't suggesting that scattering outside the containers be allowed, so Markus's second point does not hold water. -- ArnoldRots - 16 Mar 2010 Comment Markus: So, Arnold: You are fine with dropping the id/ref mechanism and forbid referencing of AstroCoordSystem groups across your container groups? I'd like that a lot, and in that case I'd propose to just flatly dump all utypes belonging to that coordinate system into one group. That would really make implementations a lot easier. What do the others think? -- 2010-03-31EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010 Comment Arnold: This is a weak argument - why don't we consider everything a string and do away with all other datatypes? The fact that VOTable has a, in my opinion, poor representation for epochs does not mean that all other standards need to use the same. -- ArnoldRots - 16 Mar 2010 Comment Markus: We have types to denote the domains of variables and define the operators available for them. The domain of astronomical epochs represented by literals matching [JB][0-9]+(.[0-9]+) for quite some time now. By the way, even in the operators you see that astronomical epochs just | ||||||||
Changed: | ||||||||
< < | aren't strings. If you say AstroCoords.Position.Epoch is a float, shouldn't I be perfectly entitled to just add them? See, they simply are not plain floats. And: What is the concrete utility of splitting the value? Does it | |||||||
> > | aren't floats. If you say ~AstroCoords.Position.Epoch is a float, shouldn't I be perfectly entitled to just add them? And: What is the concrete utility of splitting the value? Does it | |||||||
reduce implementation effort? Will it help code correctness? --- 2010-03-31
ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010 Comment Arnold: With all dues respect, Markus's argument is incorrect. In STC-S the referencing is defined (implied) in the syntax and the referencing is part of the standard. Since we are connecting STC elements together, we should be using STC's referencing mechanism. -- ArnoldRots - 16 Mar 2010 Comment Markus: The argument about a significantly increased implementation effort is hardly incorrect -- you'll have to write all the code to handle the parallel referencing, don't you? But either way: Arnold, you still have not pointed out what the use of a second, parallel referencing is. Does it prevent errors? Will it help readers or writers? Does it decrease the file size? -- 2010-03-31<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentsI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009 I agree and think that FIELDref-s SHOULD be used. Is most logical way to add extra information about a field. The utype on the field is then freed up for pointing into other possibly more samntically meaningful models, such as "is a position of a galaxy". -- GerardLemson - 11 Mar 2010Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010 Comment Arnold: I wasn't suggesting that scattering outside the containers be allowed, so Markus's second point does not hold water. -- ArnoldRots - 16 Mar 2010 | ||||||||
Added: | ||||||||
> > | Comment Markus: So, Arnold: You are fine with dropping the id/ref mechanism and forbid referencing of AstroCoordSystem groups across your container groups? I'd like that a lot, and in that case I'd propose to just flatly dump all utypes belonging to that coordinate system into one group. That would really make implementations a lot easier. What do the others think? -- 2010-03-31 | |||||||
EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010 Comment Arnold: This is a weak argument - why don't we consider everything a string and do away with all other datatypes? The fact that VOTable has a, in my opinion, poor representation for epochs does not mean that all other standards need to use the same. -- ArnoldRots - 16 Mar 2010 | ||||||||
Added: | ||||||||
> > | Comment Markus: We have types to denote the domains of variables and define the operators available for them. The domain of astronomical epochs represented by literals matching [JB][0-9]+(.[0-9]+) for quite some time now. By the way, even in the operators you see that astronomical epochs just aren't strings. If you say AstroCoords.Position.Epoch is a float, shouldn't I be perfectly entitled to just add them? See, they simply are not plain floats. And: What is the concrete utility of splitting the value? Does it reduce implementation effort? Will it help code correctness? --- 2010-03-31 | |||||||
ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010 Comment Arnold: With all dues respect, Markus's argument is incorrect. In STC-S the referencing is defined (implied) in the syntax and the referencing is part of the standard. Since we are connecting STC elements together, we should be using STC's referencing mechanism. -- ArnoldRots - 16 Mar 2010 | ||||||||
Added: | ||||||||
> > | Comment Markus: The argument about a significantly increased implementation effort is hardly incorrect -- you'll have to write all the code to handle the parallel referencing, don't you? But either way: Arnold, you still have not pointed out what the use of a second, parallel referencing is. Does it prevent errors? Will it help readers or writers? Does it decrease the file size? -- 2010-03-31 | |||||||
<--
|
STC in VOTable"> Embedding STC in VOTable | ||||||||
Deleted: | ||||||||
< < | [Scroll down to see the current discussion. The current draft of the note is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf; note, however, that using INFO as a carrier element for the utypte-value pairs was badly misguided (see note at the very bottom). -- MarkusDemleitner 2010-03-18] | |||||||
At the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables.
He's volunteered to work on the note to fix what he thinks is broken.
This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.
Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentsI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009 I agree and think that FIELDref-s SHOULD be used. Is most logical way to add extra information about a field. The utype on the field is then freed up for pointing into other possibly more samntically meaningful models, such as "is a position of a galaxy". -- GerardLemson - 11 Mar 2010Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009 | ||||||||
Changed: | ||||||||
< < | Change 3b: Define DM Version using utypes | |||||||
> > | Change 3b: Define DM Version using UCDs | |||||||
In every AstroCoordSystem group, declare what version of the DM you are
using. We may make that optional or a strong recommendation or something like
that.
The version of the AstroCoords group would be implied via its ref.
<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010 | ||||||||
Added: | ||||||||
> > | Comment Arnold: I wasn't suggesting that scattering outside the containers be allowed, so Markus's second point does not hold water. -- ArnoldRots - 16 Mar 2010 | |||||||
EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010 | ||||||||
Added: | ||||||||
> > | Comment Arnold: This is a weak argument - why don't we consider everything a string and do away with all other datatypes? The fact that VOTable has a, in my opinion, poor representation for epochs does not mean that all other standards need to use the same. | |||||||
Added: | ||||||||
> > | -- ArnoldRots - 16 Mar 2010 | |||||||
ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010 | ||||||||
Added: | ||||||||
> > | Comment Arnold: With all dues respect, Markus's argument is incorrect. In STC-S the referencing is defined (implied) in the syntax and the referencing is part of the standard. Since we are connecting STC elements together, we should be using STC's referencing mechanism. | |||||||
Changed: | ||||||||
< < | Carrier element trouble | |||||||
> > | -- ArnoldRots - 16 Mar 2010 | |||||||
Deleted: | ||||||||
< < |
During discussions at the 5th EuroVO tech forum, it was noticed that the
choice of the carrier element for the utype/value pairs (INFO) was bad
since INFOs are not allowed within groups, plus they require name attributes,
so even if they went to, e.g., RESOURCEs (which can take INFOs), they are
not the optimal carriers for key/value-pairs.
So, we need a new carrier element. Candidates are:
| |||||||
<--
|
STC in VOTable"> Embedding STC in VOTable | ||||||||
Added: | ||||||||
> > | [Scroll down to see the current discussion. The current draft of the note is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf; note, however, that using INFO as a carrier element for the utypte-value pairs was badly misguided (see note at the very bottom). -- MarkusDemleitner 2010-03-18] | |||||||
At the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables.
He's volunteered to work on the note to fix what he thinks is broken.
This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.
Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentsI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009 I agree and think that FIELDref-s SHOULD be used. Is most logical way to add extra information about a field. The utype on the field is then freed up for pointing into other possibly more samntically meaningful models, such as "is a position of a galaxy". -- GerardLemson - 11 Mar 2010Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using utypesIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010Carrier element troubleDuring discussions at the 5th EuroVO tech forum, it was noticed that the choice of the carrier element for the utype/value pairs (INFO) was bad since INFOs are not allowed within groups, plus they require name attributes, so even if they went to, e.g., RESOURCEs (which can take INFOs), they are not the optimal carriers for key/value-pairs. So, we need a new carrier element. Candidates are:
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentsI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009 I agree and think that FIELDref-s SHOULD be used. Is most logical way to add extra information about a field. The utype on the field is then freed up for pointing into other possibly more samntically meaningful models, such as "is a position of a galaxy". -- GerardLemson - 11 Mar 2010Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009 | ||||||||
Changed: | ||||||||
< < | Change 3b: Define DM Version using UCDs | |||||||
> > | Change 3b: Define DM Version using utypes | |||||||
In every AstroCoordSystem group, declare what version of the DM you are
using. We may make that optional or a strong recommendation or something like
that.
The version of the AstroCoords group would be implied via its ref.
<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010Carrier element troubleDuring discussions at the 5th EuroVO tech forum, it was noticed that the choice of the carrier element for the utype/value pairs (INFO) was bad since INFOs are not allowed within groups, plus they require name attributes, so even if they went to, e.g., RESOURCEs (which can take INFOs), they are not the optimal carriers for key/value-pairs. So, we need a new carrier element. Candidates are:
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentsI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009 I agree and think that FIELDref-s SHOULD be used. Is most logical way to add extra information about a field. The utype on the field is then freed up for pointing into other possibly more samntically meaningful models, such as "is a position of a galaxy". -- GerardLemson - 11 Mar 2010Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010 | ||||||||
Added: | ||||||||
> > |
Carrier element troubleDuring discussions at the 5th EuroVO tech forum, it was noticed that the choice of the carrier element for the utype/value pairs (INFO) was bad since INFOs are not allowed within groups, plus they require name attributes, so even if they went to, e.g., RESOURCEs (which can take INFOs), they are not the optimal carriers for key/value-pairs. So, we need a new carrier element. Candidates are:
| |||||||
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MD | ||||||||
Changed: | ||||||||
< < | Comment | |||||||
> > | Comments | |||||||
I agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009 | ||||||||
Added: | ||||||||
> > | I agree and think that FIELDref-s SHOULD be used. Is most logical way to add extra information about a field. The utype on the field is then freed up for pointing into other possibly more samntically meaningful models, such as "is a position of a galaxy". -- GerardLemson - 11 Mar 2010 | |||||||
Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. | ||||||||
Added: | ||||||||
> > | CommentI vote for the first version - since VOTable's referencing system is doing a good job here, more complications (even if they could achieve self-containedness) are not necessary. -- KristinRiebe - 10 Mar 2010 | |||||||
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- It creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing completely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. CommentInventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has negligible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. | ||||||||
Added: | ||||||||
> > |
CommentI agree with Markus - aren't Astronomical epochs practically always written with a leading character? So they should be defined as type astroYear and thus no confusion with numbers/strings can occur. Besides, it looks more concise and simpler to understand. -- KristinRiebe - 10 Mar 2010 | |||||||
ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. <--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. | ||||||||
Changed: | ||||||||
< < | Comment Markus: I don't really like this -- I creates an additional element for | |||||||
> > | Comment Markus: I don't really like this -- It creates an additional element for | |||||||
no apparent benefit since you still need to resolve the references. If, on the | ||||||||
Changed: | ||||||||
< < | other hand, we'd abandon referencing compeletely, it would definitely be worth | |||||||
> > | other hand, we'd abandon referencing completely, it would definitely be worth | |||||||
it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. | ||||||||
Added: | ||||||||
> > | Comment | |||||||
Added: | ||||||||
> > | Inventing an additional parent element doesn't look necessary to me - especially since you are still allowed to scatter the information and put the AstroCoords and AstroCoordSystem information separately. I vote for the version without a parent. -- KristinRiebe - 10 Mar 2010 | |||||||
EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. | ||||||||
Changed: | ||||||||
< < | Comment Markus: Splitting that perfectly understandable literal has neglible | |||||||
> > | Comment Markus: Splitting that perfectly understandable literal has negligible | |||||||
benefits at considerable cost. Plus, the votable schema already contains an
appropriate type (astroYear). So, I can see no reason to double the amount
of serialization and handling effort.
ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. <--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2 | ||||||||
Changed: | ||||||||
< < | After some feedback from Arnold, I've prepared a second draft. Contentious points between Arnold and me include: | |||||||
> > | After some feedback from Arnold, I've prepared a second draft. Some contentious points remaining below. | |||||||
Deleted: | ||||||||
< < |
| |||||||
Deleted: | ||||||||
< < | My take on (1) is: A common container doesn't help since there's all kinds of referencing going on anyway. If we were to introduce a common container, I'd say we should drop the referencing between AstroCoords and AstroCoordSystem entirely and mandate each container has both, and they belong together. That would greatly help implementors, but it's an intrusive change, so I'd be reluctatnt to go this way. Without that, the containers just make everyone's lives harder. On (2), I'd say splitting has neglible benefits at considerable cost, so let's express epochs in astroYear. | |||||||
The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above). -- MarkusDemleitner - 17 Feb 2010 | ||||||||
Added: | ||||||||
> > |
Issues left in Draft 2STC containerArnold's suggestion is to give the AstroCoordSystem and the AstroCoords groups have a common parent. So, instead of having<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>you would have <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> <group utype="stc:AstroCoords" ref="sys1"/> </group>Still, constructs like <group utype="???"> <group utype="stc:AstroCoordSystem" id="sys1"/> </group> [other stuff] <group utype="???"> <group utype="stc:AstroCoords" ref="sys1"/> </group>would be allowed. Comment Markus: I don't really like this -- I creates an additional element for no apparent benefit since you still need to resolve the references. If, on the other hand, we'd abandon referencing compeletely, it would definitely be worth it, but people may resent the idea of not being able to reuse coordinate system definitions within a VOTable (though probably only a small fraction of the existing VOTables would actually suffer from not being able to do so). So, from me: Either referencing or top-level STC container. Comment Arnold: It keeps the STC stuff neatly together and if there ever is a need to add the observer's location, it can be done. It does make it easier to interpret the information in terms of an STC metadata object, which will come in handy when we finally have an STC library. And I don't particularly care for scattered metadata. EpochShould an epoch like B1950.0 be encoded as<info utype="stc:AstroCoords.Position.Epoch" value="B1950.0"/>or as <info utype="stc:AstroCoords.Position.Epoch" value="1950.0"/> <info utype="stc:AstroCoords.Position.Epoch.whatever" value="B"/>Comment Arnold: Epoch is a number, not a string. If there were a limited number of values, one might consider to represent them with an enumerated list of strings, but that is not the case. It is a foolish hack to represent a numeric value with a string parameter; this a properly a numeric quantity with an attribute that says whether it is Julian or Besselian. Comment Markus: Splitting that perfectly understandable literal has neglible benefits at considerable cost. Plus, the votable schema already contains an appropriate type (astroYear). So, I can see no reason to double the amount of serialization and handling effort. ReferencingShould the referencing between AstroCoords groups and AstroCoordSystem groups be done using VOTable referencing, viz.,<group utype="stc:AstroCoordSystem" id="sys1"/> [other stuff] <group utype="stc:AstroCoords" ref="sys1"/>or rather using utypes, viz., <group utype="stc:AstroCoordSystem"> <info utype="stc:AstroCoordSystem.id" value="sys1"/> </group> [other stuff] <group utype="stc:AstroCoords"> <info utype="stc:AstroCoords.coord_system_id" value="sys1"/> </group>Comment Arnold: If STC provides a referencing mechanism to tie its components together, that should be used to do so, not a VOTable mechanism. And if you encapsulate the whole thing in an STC container (see above), it is the natural, neatly self-contained way to do it. Comment Markus: STC doesn't really provide a referencing mechanism. There's some mechanism in STC-X but, e.g., none in STC-S. We really, really should use native referencing. Referencing is messy to get right without additional complications of having two different identifier systems (e.g., you need to get referential integrity and uniqueness right, and you need to catch cases when they are violated, and you need to tell the user that something went wrong, etc). Self-containedness is nice, but not at the cost of doubling the implementation effort in a tricky spot. So: Since we're writing VOTables, we should be using VOTable's referencing. | |||||||
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2010Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Contentious points between Arnold and me include: | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
My take on (1) is: A common container doesn't help since there's all kinds of referencing going on anyway. If we were to introduce a common container, I'd say we should drop the referencing between AstroCoords and AstroCoordSystem entirely and mandate each container has both, and they belong together. That would greatly help implementors, but it's an intrusive change, so I'd be reluctatnt to go this way. Without that, the containers just make everyone's lives harder. | ||||||||
Changed: | ||||||||
< < | On (2), I'd say splitting as neglible benefits of considerable cost, so let's express epochs in astroYear. | |||||||
> > | On (2), I'd say splitting has neglible benefits at considerable cost, so let's express epochs in astroYear. | |||||||
The current draft is at http://vo.ari.uni-heidelberg.de/docs/note_stc.pdf (and the (ugly) sources are still in the svn mentioned above).
-- MarkusDemleitner - 17 Feb 2010
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() | ||||||||
Changed: | ||||||||
< < | Revision, Draft 1 | |||||||
> > | Revision, Draft 1 | |||||||
I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. | ||||||||
Changed: | ||||||||
< < | -- MarkusDemleitner - 21 Jan 2009 | |||||||
> > | -- MarkusDemleitner - 21 Jan 2010 | |||||||
Added: | ||||||||
> > |
Revision, Draft 2After some feedback from Arnold, I've prepared a second draft. Contentious points between Arnold and me include:
| |||||||
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009Change 2: Flat systemsJust have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() | ||||||||
Added: | ||||||||
> > |
Revision, Draft 1I have prepared a revision of the note, and while doing so I realized that things become quite a bit simpler if the utype-value pairs are serialized into INFOs rather than PARAMs. Otherwise, it more or less reflects the changes proposed here. You check out the document from svn at http://svn.ari.uni-heidelberg.de/svn/gavo/stcvotable/trunk/ (read-only). For commit privileges, contact me. -- MarkusDemleitner - 21 Jan 2009 | |||||||
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDCommentI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009Change 2: Flat systems | ||||||||
Changed: | ||||||||
< < | Just have all utype/value params as direct children of the AstroCoordSystem group. | |||||||
> > | Just have all utype/value (belonging to one coordinate system definition) params as direct children of the AstroCoordSystem group. | |||||||
<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDCommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 | ||||||||
Added: | ||||||||
> > | Uh -- I notice I was not particularly clear. There is one group each for every AstroCoordSystem, of course. I'm just suggesting to drop the subgroups within (XFrame). For the CSC example, I can't see where that would fail, and actually, it should not in any setting, by virtue of the data model requriring zero or one of each XFrame and the frame name being a part of the utype already. -- MD 2009-12-02 | |||||||
Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDCommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
CommentSounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() <--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP>(or use FIELDrefs that, I'm told, can now take utypes as well). Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MD | ||||||||
Added: | ||||||||
> > | CommentI agree with this proposed change. As a matter of fact, it is the way STC was intended to function in VOTable (albeit as an imported schema, not through utypes). See the examples I post at the bottom of the page. -- ArnoldRots - 01 Dec 2009 | |||||||
Change 2: Flat systemsJust have all utype/value params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MD | ||||||||
Added: | ||||||||
> > | CommentI don't think this will work, except for the simplest tables.It does not allow for multiple coordinate systems, reusing coordinate systems, or using elements that contain AstroCoordSystem elements. See the CSC example that I will be posting at the bottom of the page. -- ArnoldRots - 01 Dec 2009 | |||||||
Change 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MD | ||||||||
Added: | ||||||||
> > | CommentI have no(t yet an) opinion on this. It does sound reasonable. -- ArnoldRots - 01 Dec 2009 | |||||||
Change 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
| ||||||||
Added: | ||||||||
> > | Comment | |||||||
Added: | ||||||||
> > | Sounds reasonable; but you need a name and a datatype as well. -- ArnoldRots - 01 Dec 2009 | |||||||
Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality | ||||||||
Added: | ||||||||
> > | CommentI haven't thought about the repercussions of this, yet. On the face of it, it sounds not unreasonable, but on the other hand, since the data type has to be given as a parameter, I don't see allowing more data types as much of a complication. I only wish that PARAM were more reasonable in the types it allows - particularly 'string' would be useful - and, of course, ISO-8601. -- ArnoldRots - 01 Dec 2009CSC Cone Serch ExamplesAs it so happened, I had recently prepared the STC-specific stuff for a VOTable 1.1/1.2 that presents data returned by a simple cone search query to the Chandra Source Catalog. Then I modified that one to comply with Changes 1 and 3 above. There is nothing like a real life example to bring out the problems![]() | |||||||
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP> | ||||||||
Added: | ||||||||
> > | (or use FIELDrefs that, I'm told, can now take utypes as well). | |||||||
Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDChange 2: Flat systemsJust have all utype/value params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDChange 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDChange 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
<--
|
STC in VOTable"> Embedding STC in VOTableAt the Garching Interop, Markus has uttered some gripes with version 1.1-20090612 of the Note specifying how to embed STC in VOTables. He's volunteered to work on the note to fix what he thinks is broken. This page is intended as a discussion space for the proposed changes (and possibly others as well). Please give every suggested change a level-3 heading.Change 1: Reverse ReferencesInstead of having utype and ref on FIELD, put groups into the AstroCoords group:<GROUP ID="lltoush_coo" ref="lltoush" utype="stc:AstroCoords"> <GROUP ref="alpha" utype="stc:AstroCoords.Position2D.Value2.C1" /> <GROUP ref="rv" utype="stc:AstroCoords.Redshift.Value" /> </GROUP> Rationale:
Impact on Functionality:As far as I can see, None. You need one AstroCoords group per what set of coordinates either way. -- MDChange 2: Flat systemsJust have all utype/value params as direct children of the AstroCoordSystem group.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> <PARAM arraysize="*" datatype="char" value="ICRS" utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" /> </GROUP> Rationale
Impact on FunctionalityNone that I can see. Were these groups meant a service for humans? -- MDChange 3a: Do not abuse xml namespace declarationsDon't pretend the stc: in the utype has anything to do with an XML namespace. So, strike the xmlns:stc declaration on VOTABLE:<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2 xmlns="http://www.ivoa.net/xml/VOTable/v1.2"> Rationale
Impact on FunctionalityThe VOTable has no way to define which version of the STC data model the utypes refer to. I would say this is desirable since versioned meanings will lead to hell either way, but see Change 3b for a fix. -- MDChange 3b: Define DM Version using UCDsIn every AstroCoordSystem group, declare what version of the DM you are using. We may make that optional or a strong recommendation or something like that. The version of the AstroCoords group would be implied via its ref.<GROUP ID="lltoush" utype="stc:AstroCoordSystem"> <PARAM utype="stc:" value="http://.../stc-v1.30#"/> <PARAM arraysize="*" datatype="char" value="VELOCITY" utype="stc:AstroCoordSystem.RedshiftFrame.value_type" /> Rationale
Impact on Functionality
Change 4: Only allow string valuesDefine that all STC PARAMs aredatatype="char" arraysize="*" .
Rationale
Impact on Functionality
<--
|