Table of Contents

RegenCHOICE index

The essentials of RegenCHOICE processing

This is the shorter, denser version. I have also written a gentler explanation to explain in more detail.

An active enquiry is one that an enquirer created and maintained through the forming enquiry page, and is currently being tried. It contains two parts:

The system works only because some people have left their enquiry standing, waiting in the system. They contain the same parts, but we'll call them Other Answers, and Other Requirements.

When an active enquiry is tried, it is sent out to be compared with all the relevant standing enquiries, wherever they are held, and the enquiry results are presented to the enquirer. Here, outlined in the barest detail, is a sketchy outline of:

  1. the response given back to the user
  2. the results from each standing enquiry of the same type
  3. the results from comparing one enquirer's question requirement with one answer from a standing enquiry

The response given back to the user

The overall aim of the processing involved in trying an enquiry is

  1. to work out the number of fits among all the other standing enquiries
    1. if that's more than a few, to give the number found, or an estimate, but no details
    2. if that's a few, list key details of the corresponding standing enquiries
  2. if there is no fits, then
    1. if there are questions for the enquirer to answer which would increasing the chances of a fit, give a list of those questions
    2. if there are no such unanswered questions, give advice on what would need to give in order to find some fits; or alternatively encouragement to leave the enquiry standing ready to be found by others.

The result from one standing enquiry

The overall results will eventually come from any number of distributed servers. But for now, let's assume all the standing enquiries are held in one place.

The active enquiry is compared with every standing enquiry of the same type. Each enquirer question requirement is compared with its corresponding standing enquiry answer; and each other requirement is compared with its corresponding enquirer answer, if present.

The process for a single comparison

For each comparison between an active enquiry and one other standing enquiry, there are 4 possible outcomes – the Other's Answers can fit with the Enquirer's Question requirements, or not; and the Enquirer's Answers can fit with the Other's Question requirements, or not.

In practice, the last two can both be treated together as just a misfit, as if for any reason the other's answers are not within the Enquirer's Question requirements, the other is of no interest and can be passed over.

For Enquirer-met, where the Other's Answers are all within the Enquirer's Question requirements, there is an important difference between when some Enquirer's Answer is a misfit, or just absent for the relevant Other's Question requirement. If there is not quite correspondence, but also no explicit misfits, then if there is just one missing Enquirer's Answer, this is vitally useful information, as the question can be asked of the enquirer to resolve whether there is correspondence or not. If there are more gaps in the Enquirer's Answers, that may also be interesting, but not of such high priority.

The following information needs to be returned to the ongoing process:

Grouping the comparisons

This is most clearly done at the server level – the place where a set of standing enquiries are actually held. At any specific server, the results returned from each single comparison are put together:

This process can be repeated fractally down a tree of servers:

The final return to the enquirer

The enquirer gets to see:

Demo versions

Clearly for a demo we don't need multiple servers, so some of the above can be elided.

More about this in the development path.

Commentary