Index: openacs-4/packages/assessment/www/doc/sequencing.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/sequencing.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/doc/sequencing.adp 7 Aug 2017 23:48:04 -0000 1.2 @@ -0,0 +1,118 @@ + +{/doc/assessment {Assessment}} {Assessment Item Checks} +Assessment Item Checks + +

Sequencing

+

Along with Data Validation and Versioning, probably the most +vexing problem confronting the Assessment package is how to handle +conditional navigation through an Assessment guided by user input. +Simple branching has already been accomplished in the "complex +survey" package via hinge points defined by responses to +single items. But what if branching/skipping needs to depend on +combinations of user responses to multiple items? And how does this +relate to management of data validation steps? If +branching/skipping depends not merely on what combination of +"correct" or "in range" data the user submits, +but also on combinations of "incorrect" or "out of +range" data, how the heck do we do this?

+

One basic conceptual question is whether Data Validation is a +distinct process from Navigation Control or not. Initially we +thought it was and that there should be a datamodel and set of +procedures for checking user input, the output of which would pipe +to a separate navigation datamodel and set of procedures for +determining the user's next action. This separation is made +(along with quite a few other distinctions/complexities) in the IMS +"simple sequencing" model diagrammed below). But to jump +the gun a bit, we think that actually it makes sense to combine +these two processes into a common "post-submission user input +processing" step we'll refer to here as Sequencing. (Note: +we reviewed several alternatives in the archived prior discussions + +here.

+ +So here is our current approach. We note that there are two scopes +over which Sequencing needs to be handled: + +

So how might we implement this in our datamodel? Consider the +"sequencing" subsystem of the Assessment package:
+

+

Data Modell Graphic

+

Specific Entities

+