VOSpace URIs
Paul Harrison
pharriso at eso.org
Tue May 2 05:10:17 PDT 2006
Early drafts of the VOSpace (or more accurately VOStore) standard
proposed defining locators for the space by dereferencing using the
"fragment" (#) extension of the IVOA standard identifier scheme ivo:
so for example a reference
ivo://org.astrogrid/vospace#my/pathto/mydata
would point to a particular data holding called mydata in a container
called "my/pathto/" on a vospace server the location of which could
be found by looking in the registry entry with identifier "ivo://
org.astrogrid/vospace"
For the particular case of VOSpace I would like to propose that
this practice is not followed. I believe that the because VOSpace is
a complete namespace of its own with locator style semantics, it
deserves its own URI scheme. There are the following advantages;
1. Client software and humans could immediately recognise that they
had been given a VOSpace URI by trivial inspection of the namespace
prefix, as opposed to having to do at least one dereferencing
operation in the registry to check if the URI does indeed refer to
VOSpace. The example given above could refer to a VOEvent for
instance if someone had been perverse enough to register a voevent
server with an identifier that looked more like a vospace. One of the
aims of VOSpace is to make it easy to share data, and so it should
also be easy to recognise and manipulate the locators for the data.
2. A VOSpace specific scheme could more closely follow the general
URI semantics and syntax as laid down in http://www.ietf.org/rfc/
rfc3986.txt so that they could be manipulated by generic URI parsing
software - i.e.
a) Use the general form that indicates a "/" to be interpreted as
part of a locator hierarchy - it is unfortunate that the ivo: scheme
allows the use of "/" in identifiers when there is no implied
hierarchy in that scheme.
b) Use the "fragment" and "query" parts of the URI directly in a
VOSpace scheme rather than these syntactic constructs having to be
used simply to delimit what belongs to the ivo: scheme and what it
part VOSpace reference. It was an early design aim of VOSpace that it
should be possible to reference parts of the the data objects - e.g.
columns in a VOTable file, and it would be beneficial if the URI
scheme could support this simply and directly.
With these advantages it remains only to define the VOSpace URL
scheme following the advice in http://www.ietf.org/rfc/rfc2718.txt ;
The general idea would be to have a scheme vos: that had similar
semantics to the http: scheme with general structure
vos://authority/path?query#fragment
The authority part is intended to be the ivoa identifier for a
VOSpace server so that the registry would play the same name lookup
service role that DNS typically does with http URLs. The main problem
here is the fact that the IVOA identifiers already use "/" as part of
the identifier which make the direct use of the unaltered IVOA
identifier impossible, as the "/" that was part of the IVOA
identifier would be interpreted as the start of the path part of the
vos: scheme. In this case the "/" needs to be replaced by another
reserved character - preferably without another common meaning (and
in the "discouraged" set of characters in the IVOA identifiers
standard - "!" or "$" would be candidates, so that the original
example above could be represented as
vos://org.astrogrid!vospace/my/pathto/mydata
it might even be a good idea to prefix the authority part with a "!"
also to make it clear that the authority should not be interpreted as
an ordinary IP DNS host name representation.
vos://!org.astrogrid!vospace/my/pathto/mydata
Paul Harrison
More information about the vospace
mailing list