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