License Wizard design, take 1

Justin Clift jclift at
Fri Apr 8 06:14:08 UTC 2005

Alex Rousskov wrote:
> Hi,
>     Here is an outline of a License Finder wizard design I promised.
> I tried to keep it relatively high-level, given this list audience. If
> this design is acceptable (after some polishing), it would be easy to
> implement it; we can reuse some of the Creative Commons XML schemas and,
> possibly, some of their rendering code.  If this design is bad, somebody
> else should take the lead and propose a better design.
> Design goals:
>    a) Fully configurable set of questions and licenses.

Ok.  I'm thinking "database driven" then.

>    b) Configurable effects of each answer to a given question:  what
>       license(s) now seem to match user preferences "better" or "worse",
>       and what questions to ask next

Ok.  Examples?

Ok, so weightings would be in several areas, i.e.:

Must distinguish between types of users: -100 through to +100

Patenting:  -100 through to +100

With 0 being "no effect" or "not considered"

>    c) Hard-coded algorithm for asking the next "best" question and
>       eventually recommending the "best" license(s).
>    d) Hard-coded HTML rendering engine (with CSS-configurable "skin"?)
> The wizard operates on the following "objects":
> 1. Licenses that the wizard may recommend. Each licenses has a URL for
>    the license text and a comment field rendered when the license is
>    recommended by the wizard. Licenses are assigned weights depending on
>    user answers to wizard questions.

Ok, I need a few examples here to really get a solid, concrete 
understanding.  When I was thinking about it before, I found it 
difficult to get an idea of what actual, practical weightings could be used.

 >    Licenses can be grouped (e.g., all
>    reciprocal licenses can be referred to by a single ID).
> 2. Questions that the wizard may ask. Each question has question text
>    and a comment field explaining the question. Questions are assigned
>    weights depending in user answers to wizard questions. Each question
>    has two or more possible answers.

Wouldn't it be the answers have weights?  I'm thinking "implementation" btw.

> 3. Each possible answer includes answer text and a comment field
>    explaining the answer effect or meaning. Each answer has a set of
>    actions that change weight of licenses and/or other questions. When
>    displaying a possible answer, the wizard may show the number of
>    licenses that would remain in the candidate pool if that answer is
>    selected by the user.

Displaying the number of licenses that would remain (etc) feels like a 
bad idea, as we want to have things appear (visually and mentally) 
straightforward.  "Clean and simple"

> 4. Weights are numbers ranging from 0 to 100. In addition to those
>    numbers, there are two special weights: "never" (the item will never
>    be used) and "always" (the item is guaranteed to be used).

What will the weight terms be?  (I'm thinking "how many dimensions?" but 
that may be a wrong viewpoint for your concept)

> Configuration: An administrator (e.g., OSI) can configure the wizard
> installation with arbitrary set of licenses, questions, and answer
> actions.  All via a simple XML file (or files). It should be easy to
> take one configuration and produce another by tweaking default weights,
> questions, or actions. The configuration does not have to include all
> OSI certified licenses, of course.

I'd just throw it in a database, with an interface of some sort for it.

i.e. PHP, form, or whatever.

Very easy.

> Overall operation: The wizard asks questions in their weight order. When
> there are no more questions with positive weight, the wizard recommends
> licenses in their weight order (with a reasonable cutoff algorithm).
> Starting weights are provided for questions and licenses.
> The above design should be a decent starting point, IMO. Eventually, the
> wizard interfaces and functionality can be made more powerful and
> feature-full: A user may be able to specify his certainty level when
> answering a question. Actions may depend on more than one past answer.
> The wizard can provide interesting stats. After recommending license(s),
> the wizard can print a list of weight-changing action comments to
> explain why a certain license was recommended [or not]. Etc., etc.
> IMO, it would take 10-20 hours of work to implement the above, without
> a fancy interface and without a well-thought set of actual questions.
> The latter can be done on this list, in parallel with the development
> effort.
> What do you think?

Um... I'm not convinced.

To *me* it feels like once of those "nice in theory" idea that is easily 
bogged down in details.

However, I'm quite willing and open to be proven wrong on this, and it 
could just be I need it to feel "more concrete" in terms I grok.

Thus my desire for some concrete, practical examples of what weightings 
we'd use and how they'd be weighted.

In another email, just a few minutes ago, you mentioned you can probably 
provide low level implementation details.  That would be helpful too, 
but only secondary to my above need for solid examples. :)

Regards and best wishes,

Justin Clift


Executive Director
Digital Distribution Global Training Services Pty. Ltd.
Premier and StarOffice Online Training providers

More information about the License-discuss mailing list