Versioned standardIDs for standard vocabularies? Also, including IVOA attributes in Avro schemas

Dubois-Felsmann, Gregory P. gpdf at ipac.caltech.edu
Thu Mar 19 04:43:56 CET 2026


Dear colleagues,

I'm working on a proposal for the annotation of Apache Avro schemas with IVOA-ish metadata such as units, UCDs, and VODML references.

As you may know, the ZTF and Rubin projects are distributing alerts using Apache Avro.  The currently defined Rubin Avro schema for alerts does not include these sorts of annotations, which presents us with some challenges in designing services that take an alert and reflect its contents to a user with proper annotations.

Avro schema allows for additional user-defined attributes to be provided for elements of a schema, in addition to those in the core Avro "metaschema".

I have a mostly-finished proposal for how to use this to do the annotations I want, with which we may shortly start doing some prototyping, and which we'll share with you either on an appropriate list or at the June meeting, but right now I'm trying to understand how to make it as self-documenting as possible.  To that end, I'd like to include explicit references in the schema file to the vocabularies being used, and that seems to mean using `standardID` values.

I can certainly just include:

ivo://ivoa.net/std/VOUnits
ivo://ivoa.net/std/UCD1+ (or does the "+" have to be escaped?)

but there are a couple of issues.  For one thing, unlike, e.g., DataLink, neither of the above standards defines a `standardID`; it seems like that's because we only define `standardID`s for services that might appear in the Registry?

For another, I did some web searching on whether there was a way to include the version, as some other VO `standardID` values do, with a fragment identifier, but it looks like cases like the well-attested 

ivo://ivoa.net/std/DataLink#links-1.1

actually apply only to specific endpoints and not to the "standard as a whole".

There's whiff of "maybe the IVOA thinks it's a bad idea to have versioned `standardID`s" to what I'm finding.  I'm sorry that this corner of our work isn't one I've been carefully digesting over the years, so I'd be very happy to be schooled a bit!

Superficially it doesn't seem wrong to want to document "I'm using terms from version X of vocabulary Y", but, well, I've only thought about it superficially.

Also, if there's already been other discussion of how to add IVOA metadata to Avro, I'd be happy to not be starting from scratch!

Many thanks,
Gregory


More information about the semantics mailing list