VO-DML uri element

Markus Demleitner msdemlei at ari.uni-heidelberg.de
Tue Jun 13 21:50:36 CEST 2017


Hi DM,

On Tue, Jun 13, 2017 at 07:03:10AM -0400, Gerard Lemson wrote:
> On Tue, Jun 13, 2017 at 3:59 AM, Paul Harrison <
> paul.harrison at manchester.ac.uk> wrote:
> > I notice that a recent change to the VO-DML schema introduces a <uri>
> > element which is supposed to define a URI at which the data model can be
> > found - in my opinion this is not a good idea. I understand the desire to
[...]
> > Each data model already has a "namespace" which is the <name> element and
> > just having a rule such as the models being available at
> >
> > http://www.ivoa.net/dm/name
> >
> > would suffice for all "standard" models - though there could be a more
> > arbitrary mapping mechanism set up between namespace and model URL such as
> > is done with XML.
> >
> >
> Indeed this mechanism is what we're trying to follow. If the description in
> the document (still on volute, soon to be moved to IVOA doc library) is not
> clear enough though we need to improve the text.
> 
> The URI attribute is *not* intended to be location of the document, but to
> be dereferenced to the latest minor version. Different minor versions will
> have same URI, but different "version" attribute. So together , uri+version
> are a unique identifier of the actual version, uri only of the major
> version.
> 
> But I expect Markus can explain this better.

Not really, as what I've suggested so far just tried making proposed
practices work.  These, in turn, were inspired by XML Schema, where
the actual identifier of a schema is its URI.  In XML instances, this
URI is mapped to a (conceptually, if not in VO practice) arbitrary,
short prefix.  This sort of prefix mapping was even explicitly done
in early applications of utypes (you'll find it in early SSA, and
even in the current 1.1 you'll see remnants in the examples in the
appencides) -- which of course was an abomination.

Now, for VO-DML we claim that the prefix is unique per major version
of a data model (which I think is an excellent idea).  This means we
don't really need an XSD-style DM URI as an identifier any more, the
prefix is enough.

The only reason I wanted the DM URI in the VO-DML header is that in a
model declaration in an instance document it was still required, and
thus VO-DML writers would have had to maintain a prefix -> DM uri
mapping.  That's a pain.

Now, if nobody actually wants this identifying DM URI, I'd be totally
in favour of removing it (and saying the prefix identifies the DM,
and if you absolutely must know the minor version (for which you
should have no reason), look at @version), but it would have to go
from the mapping's model declaration, too.


But even if we decide there's no need for a DM URI to identify the
DM, I have to say there's something to be said for allowing the
declaration of URIs from where a writer would like a reader to pull
the model file (in VO XSD practice, the two URIs typically conincide,
but that's just a convention, and when there's not identifying URI,
this whole question goes away -- I don't think anyone will miss
@schemaLocation in VO-DML...).

At least for IVOA standard models, this dereferencable source URI
would be advisory, of course.  Hence, if the mapping document said
"Dump some URI into the model's URI child [or, if you ask me,
attribute] that people can derference to pull the VO-DML file from;
what exactly you use is up to you, but expect clients to use the
official IVOA files for validation for official IVOA DM names,"
that'd I think help quite a few applications, in particular with
non-IVOA models.

       -- Markus


More information about the dm mailing list