Params cannot carry descriptions in VOEvent 1.1

Rob Seaman seaman at noao.edu
Mon Mar 29 14:02:19 PDT 2010


  Roy Williams wrote:

> Bob Denny wrote:
>>
>>    * We should ask ourselves if a <Description> and/or <Reference  
>> inside a <Param> makes sense.
>>
> Documentation is always a good thing. If the event author wants to  
> say what this Param means, we should allow them to.

XML is chatty.  Many VOEvent use cases benefit from (relative) brevity.

Better than documentation is an interface that is simple enough to be  
obvious from the context.  No technical standard will ever fully reach  
this goal, but we shouldn't simply add a feature because it "sounds  
good".  Are there proactive reasons to add <Description> and/or  
<Reference> to params?  I don't recall much clamoring for this  
previously.

Also, isn't the proper place to describe the meaning of params in the  
VOEventStream definitions hosted in (or through) the Registry?  We  
should be eager to identify reasons to push the registry work forward.

> Params are not (or should not) have the same names. If an event says  
> X=3 and also says X=4, then it does not seem to make any sense. Can  
> XML schema express that names should be unique?

Sure, by having elements tailored to the purpose.  Params are a way to  
obtain flexibility without require separate schemata for each flavor  
of packet (or contrarily without defining a VOEvent "theory of  
everything").

> (More precisely, it should be the combination of Group name and  
> Param name that is unique.)

We had discussed this previously and the normative prose specification  
can assert such, but it seems extremely unlikely that XML schema can  
impose restrictions on the combination of two elements.

> Description is natural language, so humans can know what it means,  
> like the comment string to describe a FITS keyword. The Reference  
> can be a link to further information, that allows semantic web and  
> linked data so that machines can also "understand" the meaning.

Right - these sound like Registry functions to me.  Classify the  
packet according to a stream, retrieve the description of the stream,  
not the individual packets (which shouldn't vary within a given  
stream).  This is E-R normalization 101.

> It may be more precise, but it is not the substance of the IVOA  
> standard (*). It is the natural-language document that is the  
> Recommendation, and the schema is not, rather it is considered a  
> "supplementary resource".

This is a theological discussion.  We engineers seek a normative  
standard that can be represented pragmatically as a coherent schema.   
One nice thing of having both is that the combination encourages us to  
continue to seek simplicity.  <ZenQuote/>

> One reason for this is that the schema may not be able to express  
> constraints that we do want, and yet also impose extra constraints  
> that we do not want. Examples: we want Param names to be unique; we  
> want the sum of probabilities to be <=1; we want AuthorIVORN to be  
> in the registry, but schema cannot handle these (can it?). On the  
> other hand, we may not be interested in the order of elements, yet  
> the schema complains when the order is not what it wants; or we may  
> want recursive elements, such as a INFO containing a INFO in  
> VOTable, yet the schema seems to have a problem with this.

XML schema are (is?) imperfect.  Perhaps we can achieve some of what  
you want with a purpose-built VOEvent validator, similar to the useful  
fitsverify program from GSFC.  Even so, VOEvent-aware applications  
(many of them) will be built on general-purpose schema-aware  
components, and will need to handle packets that are legal according  
to the schema even if the additional restrictions are not followed.

I also do not believe that all members of the WG are ready to embrace  
schema-based parsing.  The current packets are simple enough to  
interpret from first principles.  SimpleTimeSeries (and maybe  
SimpleTables) start to challenge this homebrew approach, but one could  
reasonably pattern match packets containing these complex data types  
for special handling (perhaps to /dev/null for certain short latency  
applications).

Our most complex subschema will remain STC, but if anything for v2.0  
we aspire to simplify the VOEvent realization of this.  (And orbital  
elements seem like the simplest realization of STC.)  We are loosening  
the constraints on references, but not appreciably making the syntax  
more complex.  Vocabularies basically plug into the strings we already  
have.

The chair is skeptical of making the hierarchical structure of the  
v2.0 packet more complex beyond what we've previously discussed for  
the features above.  If there are good (and pointed) arguments  
otherwise, now is the time to make them.

FITS keywords have comments.  I don't know that I've ever found one  
extremely helpful.  A FITS keyword dictionary can be very useful.  We  
need the equivalent for VOEvent.

Rob



More information about the voevent mailing list