Standard IVORNs, data model identifiers

Paul Harrison paul.harrison at manchester.ac.uk
Tue Feb 18 11:51:48 PST 2014


On 2014-02 -18, at 15:53, Markus Demleitner <msdemlei at ari.uni-heidelberg.de> wrote:

> Dear Colleagues,
> 
> I seem to run into IVORN related gotchas with alarming regularity
> these days, I'm afraid.  Really sorry about this.
> 
> Well, this time it's about StandardsRegExt and data model ids in
> TAPRegExt.  At the root of the problem is that I foolishly declared
> the ivo-id attribute on dataModel as vr:IdentifierURI (rather than
> xs:anyURI).  vr:IdentifierURI doesn't allow fragments, though.
> 
> Why is that bad?  Well, what do these identifiers reference?  Why,
> resource records of course.  No, not quite.  With StandardRegExt, the
> idea is to register a standard more or less like this:
> 
> <ri:Resource xsi:type="vstd:Standard" ...>
>  ...
>  <endorsedVersion status="rec">1.1</endorsedVersion>
>  <endorsedVersion status="wd">2.0</endorsedVersion>
>  <deprecated>1.0</deprecated>
> </ri:Resource>
> 
> After that, I thought it'd be clever to reference these version
> entities in there, for which there is the fragment identifier.
> Hence, version 1.0 of RegTAP would have been
> 
>  ivo://ivoa.net/std/RegTAP#1.0
> 
> I'd have liked that a lot, so I went ahead, put that change into my
> relational registry implementation, from where it went into
> TAPRegExt's dataModel and boom! This is not an IdentifierURI, service
> invalid.
> 
> This is not (only) about URI cosmetics. These identifiers are
> important for locating TAP services supporting, e.g., obscore, the
> relational registry, and more in the future.  How important is
> versioning in that process?
> 
> The answer will determine which of the two exits I can see is
> preferable:
> 
> (a) have unversioned standard identifiers in dataModels (and possibly
> other places like standardIDs) henceforth, i.e.,
> ivo://ivoa.net/std/RegTAP -- that kinda works as long as the standard
> evolves smoothly enough and we make a new record for a new major
> version ("std/RegTAP2").  But then there's no machine-readable way of
> figuring out the version actually found on the other end, which is
> probably not good.
> 
> (b) go on as we have so far and create a new standards record for
> every (even minor) version that we need in standardIDs and similar
> places.
> 
> On a longer run, we might want to fix VOResource to allow fragment
> identifiers in IdentifierURIs, but that's not an option right now.  I
> need to put the id people should be looking for into the RegTAP
> document now.
> 
> My feeling is that (a) would be nicer in priciple, but it would be
> basically impossible for a client to use any features introduced  in
> point versions.  That would throw us back to (b) with the implied
> inflation in records.
> 
> Opinions?  Elegant solutions, anyone?  Please?
> 

Is not the easiest/best solution to change the TAPRegExp schema and standard to expand the reference to be xs:anyURI as you need? What you want to do with the <ri:Resource xsi:type="vstd:Standard" …> as above is exactly what is the intention of the StandardsRegExt, so it would be better if the reference attribute were  xs:anyURI.  Doing this does not invalidate any existing records, therefore it should be a small technical update to the standard which need not go through the whole process.

As for changing the definition of IdentifierURIs in VOResource, I think that perhaps a new type could be introduced where the allowable references do include the fragment and query parts of the standard URI - I think that it was definitely envisaged originally that there would be cases where this more extended referencing was allowable - see the note in http://www.ivoa.net/documents/REC/Identifiers/Identifiers-20070302.html#formats - again being a small technical extension to the schema it need not require a full update of the standard.

In both cases I think that it is better to amend the schema to be closer to the intention of the standards than either of your workarounds.

Cheers,
	Paul.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2774 bytes
Desc: not available
URL: <http://www.ivoa.net/pipermail/registry/attachments/20140218/5b6e662a/attachment.bin>


More information about the registry mailing list