Ticket #1073 (new enhancement)

Opened 9 months ago

Last modified 7 months ago

Allow Partial PURLs to be Defined by Regular Expressions

Reported by: david Assigned to: david
Priority: major Milestone:
Component: component1 Version:
Keywords: Cc:

Description

The Shared Names steering committee has requested:

1) Ability to have suffices on partial redirects, so that we can redirect when the id isn't the last thing on the redirects e.g. /n/uniprot/xml/ -> http://www.uniprot.org/uniprot/__.xml

2) Ability to dispatch off the suffix as if it was part of the path e.g. /n/uniprot/_.rdfxml -> http://www.uniprot.org/uniprot/__.rdf

We plan to address both requests by adding a general regexp parameter to the partial definition. The syntax is likely to be identical to the Java regexp engine's.

Change History

07/15/09 01:13:03 changed by david

The first of these issues ("Ability to have suffices on partial redirects") has been fixed in svn.

The second ("Ability to dispatch off the suffix as if it was part of the path") has been scoped, accepted and should be fixed in svn tomorrow or Thursday.

Both are expected to appear in the forthcoming v1.6 release.

07/15/09 01:13:21 changed by david

  • owner changed from davidf to david.
  • status changed from new to assigned.

07/16/09 22:00:56 changed by david

Short-term resolution to be implemented for PURL server 1.6:

1) A new partial PURL type that ignores file extensions: /record/xml/_.xml -> http://example1.com/get?format=xml&id=_ /record/html/_.html -> http://example.com/records/_

2) A new partial PURL type that ignores file extensions and also appends a new file extension: /record/htm/_.html -> http://example.com/records/_.htm

3) (already implemented) A new partial PURL type that appends a file extension given the source: /record/html/_ -> http://example.com/records/_.html

Names: #1 -> partial-ignore-extension #2 -> partial-replace-extension #3 -> partial-append-extension

07/16/09 22:54:01 changed by david

  • status changed from assigned to new.

Alan and I also discussed an alternative implementation, whereby a new type of partial PURL would be created that would work like this:

PURL: /record/.html Resolution request: /record/foo.html No PURL exists with id /record/foo.html Next, try: /record/.html (found match) Redirects to a target using the partial target + "foo"

So, Alan wants to hide from the end user that 'html' in the path means something. We decided that we could do that (and relatively quickly) but there is a serious impact on PURL resolution performance. Database hits would be doubled in the simplistic case for every PURL resolution. I suspect that OCLC and others would find that unacceptable at the moment.

So, we have kept the this enhancement request open, pending a broader solution.