[Cube/vo-dml] ivoa datatypes

CresitelloDittmar, Mark mdittmar at cfa.harvard.edu
Fri May 30 11:02:25 PDT 2014


DMers,

Following up on this thread, (the URL portion anyway).
Gerard, Norman and I have had a short discussion on the ability to
distinguish between a URL and URI.. (included below)

Based on this, and earlier discussion on the topic, I will drop the URL
sub-type from the diagrams.
The base types model will include "anyURI", it will be left to the
attribute descriptions to provide clarifying
text if the expectation is that the URI should represent a resolvable
'Location' (URL).

---------------------------------------------------

Gerard and Mark, hello.

On 2014 May 30, at 07:58, "Gerard Lemson"  wrote:

> In the base ivoa data model, where we define some standard datatypes such
as string, boolean, real etc, we also define anyURI.
> This follows the XSD example. Mark is interested in also adding there a
sub-type, URL. He wants to use this type for attributes that should
represent a URL rather than just a generic URI.
> I have argued against this as I think there is no way to properly define
the URL type in the data model.
> As far as I understand it, one can only find out whether a string
following the URI spec is actually a URL by trying out whether it can be
resolved to some web location. One cannot find it out from the form of the
string itself.

The short answer is that URLs don't exist any more!

There used to be a distinction made between URIs, which identified things,
uniform resource _locators_ which were resolvable, and uniform resource
_names_ which named but specifically didn't locate things.  The conclusion
now appears to be that this is not a useful distinction, and it has been
abandoned (eg <http://www.ietf.org/rfc/rfc3305.txt>).  It's not useful for
broadly the reason that you mention, Gerard: you can't tell whether
something is a URI or a URL unless you dereference it.

There is of course the broad expectation one has, that an HTTP URI will be
dereferenceable.  However this doesn't actually help because (a) if a URL
breaks (404), does that magically make it a URI again?, and (b) it's
becoming commonish practice (examples: within RDF, and in the list of
IVORNs for capabilities) to use URIs to merely identify things,
irrespective of the scheme.  It is _good practice_ for a URI thus used to
be dereferenceable, so that what comes back if you dereferecence the
identifier is something which provides more information about the thing
named, but that's not a requirement.

So there is no syntactic difference between URIs and URLs (there aren't
'URL schemes' like HTTP and 'URN schemes' like "isbn:"), and no stable
differences in behaviour.

...as Gerard says:

> But that is what is necessary for a type definition. A primitive type
defines a set of instances, a sub type defines a subset of these. And in a
modelling language it should not be necessary to find out whether a certain
string is an instance of a certain type by asking the WWW whether it can be
resolved to an address.

...and I note the remarks about URLs not being a value type.

Therefore:

> My proposal is to make the definition on the attribute say that the value
should be resolvable.

I think that's the best that can be done.  You're probably going to have to
say _something_ about the thing at the end of this URI/URL (content-type,
availability, stability...), so you might as well include the stipulation
that it exists!

Does this help?

All the best,

Norman

---------------------------------------------------




On Tue, Apr 29, 2014 at 4:32 AM, Gerard Lemson <lemson at mpa-garching.mpg.de>
wrote:

> Hi Mark
> Leaving discussion on a "time quantity" type to others for now..
>
> > -----Original Message-----
> > From: CresitelloDittmar, Mark [mailto:mdittmar at cfa.harvard.edu]
> > Sent: 28 April 2014 21:19
> > To: Gerard Lemson
> > Cc: Data Models mailing list
> > Subject: Re: [Cube/vo-dml] ivoa datatypes
> >
> > ...
> >
> > So, I see certain cases, where you want to identify a particular item
> where a URL
> > would be appropriate, but not a URI.. to ensure you get the right thing.
> >
> >   examples:  DataID.logo , STC.STCBase.href, maybe some documentation
> links.
> >
> > For the majority of cases anyURI would be more appropriate.
> >
> In VO-DML, extension /inheritance of primitive types is assumed to
> indicate a restriction on the value represented by the super type.
> So if we would want to define ivoa:URL (anyURL?) as a subtype of
> ivoa:anyURI, we must define the restriction on its value.
> Is it something like: "Must start with 'http://' or 'ftp://' or 'https://'
> or ... "?
> There must be someone out there who knows about this.
>
> Cheers
> Gerard
> PS
> ivoa: ==>
> https://volute.googlecode.com/svn/trunk/projects/dm/vo-dml/models/ivoa/IVOA.vo-dml.xml
> .
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ivoa.net/pipermail/dm/attachments/20140530/af4b7c7e/attachment-0001.html>


More information about the dm mailing list