UCDS vs DM - Peacekeeping

martin hill mchill at dial.pipex.com
Fri Oct 17 09:05:45 PDT 2003


I've been trying to sort out in my own head the differences between UCD2s and 
data models.  Particularly as one doesn't seem to work entirely without the 
other.  So donning my UN peacekeepers hat (which in the British case is a 
tatty gardeners hat in a rather trendy camouflage, not a kevlar helmet):

It strikes me that data models are about structure, and UCDs about describing 
elements in that structure. 

Now it is probably possible that the way data models are defined could include 
naming elements to define what they mean.  I suggest that these should be (or 
include as attributes) UCDs, at the very least so that we can compare data 
items that have been formally modelled with those that haven't.

For example, we can say (simplistically) that a coordinate is an RA, DEC, 
error, and refers to some co-ordinate frame, and might look like this in XML:

<CatalogueObject ucd2="sky.galaxy">
  <WorldCoordinate ucd2="pos" frame="J2000">
     <RA ucd2="pos.wcs.ra">
        <VALUE units="degrees">42</VALUE>
        <ERROR ucd2="error" units="arcSeconds">23</ERROR>
     </RA>
     <DEC ucd2="pos.wcs.dec">
        <VALUE units="degrees">42</VALUE>
        <ERROR ucd2="error" units="arcSeconds">23</ERROR>
     </DEC>
  </WorldCoordinate>

  <Brightness ucd2="phot" type="SomeObscureOptical">
      <Magnitude ucd2="phot.mag.vega">72.3</Magnitude>
      <Error ucd2="error">1</Error>
  </Brightness>

  etc
</CatalogueObject>

Now this is a horribly simple example (sorry about the mixed-up case 
conventions) - how do people feel about it? It means that we should avoid 
trying to describe structure/context in UCDs (which has the potential of 
making them horribly long and complicated) and gives us an immediately useful 
way of giving wider meaning to our data structures.

It kind of implies that we then have a method for appending our UCDs up a data 
model tree if we need to get more context for them.  Thus we don't have to 
have src.galaxy;phot.mag.ObscureOptical;error *as a defined UCD*.  Instead 
such strings are constructed out of individual UCDs as required by the program 
that is investigating the data.

It also means that UCDs don't have to be specific (which the UCD group are 
avoiding cos it's a horrible task, small wonder) and yet I as a developer can 
assemble specifics for doing cross comparisons.

I've only had a pint and it still seems a good idea. It was a big pint though.


-- 
Martin Hill
07901 55 24 66
www.mchill.net



More information about the dm mailing list