[ZDP] Re: [Zope] object modification date - how ?

Martijn Faassen M.Faassen@vet.uu.nl
Tue, 16 Mar 1999 10:23:50 +0100

Christopher Petrilli wrote:

> Order of entries is an interesting problem, it's *normally* not an
> issue, but there are times, obviously, when it's critical to the
> intelligibility of the document.  You don't want to discuss an advanced
> problem prior to a basic one, so here's an idea:
> Grant each question a "difficulty" level:
>         * Beginner
>         * General
>         * Advanced
>         * Zen Revelation
> You then organize each section in that order.

I had this same idea independently last night; obviously it has
something to say for itself if it appears in two heads at the same time.
I was thinking in a vague analogy with user interface rendering systems;
often you don't lay out precisely where each widget will be, but instead
define some basic relationships and let the GUI figure it out and render
it into a window (same with HTML). 

A problem with difficulty levels appears when you have sections,
*especially* if these sections are just views on the FAQ, not internal
structure. Note that this an idea I actually like. :)

A question on writing products in Python may be considered 'Zen
Revelation' by someone who is a Zope beginner and dabbling in DTML, but
someone who is happily writing products already may think this question
'beginner' and trivial. We don't want *all* product development related
questions to end up Zen Revelation, otherwise the view on the product
development virtual section will not be structured.

We could of course also rate the *sections* something belongs to and
make something like an average difficulty level. For instance, if
something belongs in DTML and product development, where DTML is rated
'general' and Product Development as a category is rated 'zen
revelation', the average would be 'advanced' for this question/answer
pair. *then* we apply the intrinsic difficulty to it again (which we've
given), and we..I don't know. :)

We need some solid ideas here. Perhaps it's possible to toy around with
different systems once we have the basic system going, if the basic
system is flexible enough to cope with designs like this. We need ideas
on how to do *that*.

> Now this doesn't deal
> with internal order of each section, BUT... that's USUALLY not a
> problem, but you could have a concept based on dependency... in other
> words, one question depends on another... so they would be layed out in
> the right order.

Right, some question/answer pairs follow others in a natural
progression. The basic assumption of a FAQ is that question/answer pairs
are independent, and we should follow this, but sometimes you just want
to do things like this:

* How can I do foo?

Well, you can't.

* But I want to do foo, are you an idiot?

No, I'm not. Everybody who wants to do foo is actually nuts, because..

Therefore, we need a way to express 'this question follows that
question', in our FAQ view rendering system. :)

Problems occur if these questions are part of various nonoverlapping
sections. A question should have a *primary* section anyway, that the
default view of the FAQ will place the question inside.

What's also necessary is to place some questions on the top of their
main sections. For instance, 'what is DTML?' belongs at the top of the
DTML section of the FAQ. It doesn't belong at the top of the 'Zope
Overview' section of the FAQ, though (What is Zope? belongs on the top
of that particular section). Also nice (though less necessary) is to
place a question at the absolute bottom of a section. 

Then we need conflict resolution, etc..

> Too complex huh?  Just an idea.

I've just made it way more complex. It's a nice idea if we go for the
completely dynamic FAQ system, though, and since CoolFAQ is fast
becoming a complete killer app for FAQs...