Basic functionality

CG: "Do the minimum, but do it really well."

We're not exactly in a position to dictate requirements to anyone, but if we were, they might be drawn from the following list.

This page is more of a functional spec than a design document; for design ideas see elsewhere in the wiki starting from Discussion.

I (JAR) have tried to make this correspond to what the steering committee would like to happen, but of course it may be closer to what I would like to happen.


For an operational system

Redirection implemented somehow:

  • Should be doable using PURLZ software (perhaps other ways too)
  • System state (redirects + templates) to be kept in some repository (design TBD; ideally versioned; demo does PURLZ + wiki)

RDF templates and template-filling implemented somehow:

  • Small
  • Minimal ontology created
  • XSLT hack for human-friendly view

Sufficient coverage = the union of the databanks in dbxrefs occurring in:

For a reliable system

Monitoring mirrors:

  • if a server fails, system maintainers are alerted
  • the list of A records is easily modified


  • At least two redirect servers and two template-filling servers
  • Curation updates (changes to rules, changes to templates) pulled to all mirrors automatically, nightly


  • multiple A records -> multiple servers
  • server goes away -> easy to remove its A from the DNS record

Monitoring databanks:

  • dead redirection rules are detected, failures are tracked

For a participatory system

Easy for multiple people to curate redirect rules and templates:

  • curator experience "user interface" functionality TBD

Documentation - participation guide / HOWTO:

  • how to bring a new mirror into the pool
  • how to be a redirect / template curator
  • how to add new databanks