[QUANTITY] Pulling it all together

Ray Plante rplante at poplar.ncsa.uiuc.edu
Wed May 21 22:35:39 PDT 2003


Hi all,

First, thanks to Arnold for firing up the discussion on quantities.  I 
think we got a good summary from everyone about how this is not trivial 
(an intended outcome of my simple-minded proposal ;-).  Thanks also to 
those (David B, Gerard, Steve L., Jonathan, Brian) who posted links to 
related white papers and such.  I recommend we try to digest these so that 
we're not starting from square zero.

Second, for the benefit of those who weren't in Cambridge, the DMWG has 
identified a "work package" to develop a general, re-usable model for 
quantities.  I have created a page on the Twiki for posting materials on 
this work:

  http://www.ivoa.net/twiki/bin/view/IVOA/QuantityModel

I have posted most of the materials cited so far on this page, including
my presentation from last week.  Please feel free add other materials.  
(You must first register at 
http://www.ivoa.net/twiki/bin/view/TWiki/TWikiRegistration.)

Now that we know how complicated this can be, I want to attempt to try to 
pull the major issues together into a semi-concise listing to consider and 
use them to make progress.  

  1.  Use.   

      Important uses of this model:
        *  building a metadata schema (in XML)
	*  creating software interfaces
      When we propose model components, have some sense of how it
      might appear in these contexts.  

  2.  Simplicity vs. Complexity.  

      Scientifically, we all understand that simply quoting a flux as
      "5 Jy" or a frequency as "1.4 GHz" does not give us the entire
      story.  This is evident when we want to precisely compare, say,
      this frequency with another.  Nevertheless, in practice, we
      often render a frequency in these simple terms, normally because
      the rest of the story is somehow implied (or is not important
      for the implied level of precision).  Thus, our practice
      indicates that we need to support a simplified model too.

      The general approach we've tried to endorse within the NVO is
      provide models that can capture the complexity (or be extended
      to do so), but which reduces sensibly to the simple case.  That
      is, we should be able to just say "1.4 GHz" (with a small amount
      of mark-up).  We might call this a kind of "dumb-down" rule.

  3.  Quantity as a Building Block

      An important motivation for this model is to allow its re-use in
      creating more complicated models.  Some ramifications are:

       *  Different quantities will be used in combination.  We want
          to avoid redundancy of information.  
       *  It's appropriate that we think about and describe how a
          quantity could/should be used in the for describing more
          complex things.

  4.  Where to put things: Inside Quantity vs. Beside it.

      This is a fundemental modeling question that does not
      necessarily have one right answer.  On the one hand, we can
      encapsulate everything into a "Quantity".  This has the
      advantage that a quantity instance could potentially have
      everything one needs to know to do any kind of conversion
      properly. 

      On the other hand, we can pull some of that information out to
      be held at a higher level.  In this case, a Quantity is defined
      to be a much simpler thing, as simple as a value and a unit (as
      some have suggested).  I like to go to the flux example as it
      simpler in concept than frequency or position.

         <Photometry>
           <Flux>
	     <Value>5</Value>
	     <Unit>Jy</Unit>
	   </Flux>
	   <Freq>
	     <Value>1.667</Value>
	     <Unit>GHz</Unit>
	   </Freq>
         </Photometry>

      Here Flux & Freq are simple Quantities; however, we can define
      a higher level-object, Photometry, that carries more contextual
      information about the flux.  

      This is similar to the AIPS++ model David B. mentioned.  A
      quantity is very simple: a value (possibly a vector) plus a
      unit.  Context-blind combinations & comparisons can be done with
      quantities.  A "Measure" is a quantity + a "frame".  The frame
      provides the context for doing precise conversions for
      quantities where context is important.

      You could pull Error out of Quantity and handle it as part of
      the context.  This might be a little tricky, though, as it may
      be harder to make clear which quantity an error is associated
      with.

  5.  Scalars and Vectors.  

      We need consider both cases.  In particular, I think we need to
      be able to render Vectors in an unwieldy way when the context is
      sufficiently simple.  

Well, I left people stew & comment on these a bit.  Then what I would
like to do is pose some directed, concrete questions--perhaps some
alternate models--and try to reach some concensus on them.

cheers,
Ray




More information about the dm mailing list