resource identifiers
Tony Linde
ael at star.le.ac.uk
Fri May 23 01:16:42 PDT 2003
The '?', '&' and '=' were chosen to make the URI conform to the IETF
standard (http://www.ietf.org/rfc/rfc2396.txt).
I've just been re-reading the standard and I think we *do* need to change
the coding of the single string - but not in a way that Roy will like :(
The URI syntax is:
<scheme>://<authority><path>?<query>
where <scheme>://<authority><path> is the unique identifier for a resource
and <query> is 'a string of information to be interpreted by the resource'.
In this case, I'd like to propose the following changes to Ray's
document:...
============================================================================
===
The **unique ID for a resource** is:
<ResourceID>
<AuthorityID>ivo://www.ncsa.uiuc.edu/nvo/registry</AuthorityID>
<ResourceKey>ADIL/SIA/targeted</ResourceKey>
</ResourceID>
But to make this a single string, we use the <scheme>://<authority><path>,
where <authority> is the <AuthorityID> and <path> is the <ResourceKey> (but
catenated so that they are only ever separated by a single '/'). The above
ID would become:
ivo://www.ncsa.uiuc.edu/nvo/registry/ADIL/SIA/targeted
Note: *within* the authority (ie the registry), <path> can be used on its
own as a unique id.
If the resource has subcomponents, the unique ID becomes:
<ResourceID>
<AuthorityID>ivo://www.ncsa.uiuc.edu/nvo/registry</AuthorityID>
<ResourceKey>ADIL/SIA/targeted</ResourceKey>
<Query>
<p1>95.DR.01.01.fits</p1>
<p2>wibble</p2>
</Query>
</ResourceID>
where everything within the <Query> structure is *resource specific*, so it
can have zero, one or more tags.
To create a single string from this, we use the standard construct with '?',
'&' and '=' characters, so the above structure would become:
ivo://www.ncsa.uiuc.edu/nvo/registry/ADIL/SIA/targeted?p1=95.DR.01.01.fits&p
2=wibble
Or for a resource which only had a single query component, eg:
<ResourceID>
<AuthorityID>ivo://www.ncsa.uiuc.edu/nvo/registry</AuthorityID>
<ResourceKey>ADIL/SIA/targeted</ResourceKey>
<Query>
95.DR.01.01.fits
</Query>
</ResourceID>
the string would be:
ivo://www.ncsa.uiuc.edu/nvo/registry/ADIL/SIA/targeted?95.DR.01.01.fits
============================================================================
===
This does not solve Roy's problem but the above is according to the standard
and to accepted use of that standard and I don't think we should mess with
it.
If the OAI cannot cope with the above (eg by escaping the problematic
characters) then we need to look elsewhere for a harvesting standard.
Personally, I'd prefer an xml document-based and web services oriented means
of querying which would avoid the OAI GetRecord problem.
Cheers,
Tony.
> -----Original Message-----
> From: Roy Williams [mailto:roy at cacr.caltech.edu]
> Sent: 23 May 2003 00:05
> To: Ray Plante; registry at ivoa.net
> Subject: Re: resource identifiers
>
>
> > There will be many cases when one will want to refer to a
> ResourceID
> > as a single URI (such as in an OAI record). In general,
> this will be
> > done using the following syntax:
> >
> > <AuthorityID>?resourceKey=<ResourceKey>&recordKey=<RecordKey>
> >
> > That is, for the above two examples,
> >
> >
> ivo://www.ncsa.uiuc.edu/nvo/registry?resourceKey=ADIL/SIA/targeted
> >
> ivo://www.ncsa.uiuc.edu/nvo/registry?resourceKey=ADIL&recordKe
> y=95.DR.01.01.
> fits
> -------------------------------------------------------------------
> Ray
>
> I have been trying to make my OAI registry compliant with
> this identifier scheme, but it doesn't work because there is
> "=" and "&" in the identifier.
>
> Why this is bad:
> In the OAI protocol, there are times where the identifier is
> used as an argument. So look at this example, which does
> GetRecord in Dublin Core skin for the data collection called "adil".
>
> Example: http://mercury.cacr.caltech.edu/cgi-bin/OAI-XML/nvo/oai.pl?
> verb=GetRecord&
> identifier=ivo://mercury.cacr.caltech.edu/OAIprototype?resourc
> eKey=dc-adil&
> metadataPrefix=oai_dc
>
> But it doesn't parse right because there is an equals sign
> "=" in the identifier itself. There is a token that looks
> like key=value=value.
>
> Please can we have an identifier syntax which has neither "&"
> nor "=" in it?
>
> Suggestion:
> Can we use colons instead?
> ivo://www.ncsa.uiuc.edu/nvo/registry:ADIL/SIA/targeted
> ivo://www.ncsa.uiuc.edu/nvo/registry:ADIL:95.DR.01.01.fits
> ivo://mercury.cacr.caltech.edu/OAIprototype:dc-adil
>
> Roy
>
More information about the registry
mailing list