Index: openacs-4/packages/assessment/www/doc/versioning.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/versioning.adp,v diff -u -N -r1.1.2.2 -r1.1.2.3 --- openacs-4/packages/assessment/www/doc/versioning.adp 25 Aug 2015 18:02:19 -0000 1.1.2.2 +++ openacs-4/packages/assessment/www/doc/versioning.adp 4 Jul 2016 11:33:12 -0000 1.1.2.3 @@ -5,9 +5,10 @@

Overview

This topic requires special mention because it is centrally important to Assessment and one of the most radical departures from -the current packages (in which "surveys" or "questionnaires" are -all one-shot affairs that at best can be cloned but not readily -modified in a controlled fashion).

+the current packages (in which "surveys" or +"questionnaires" are all one-shot affairs that at best +can be cloned but not readily modified in a controlled +fashion).

During its lifetime, an Assessment may undergo revisions in the midst of data collection. These revisions may be minor (change of a label on an Item or adddition of a new Choice to an Item) or major @@ -18,22 +19,23 @@ protocols change; teachers alter their exams from term to term. And still, there is a crucial need to be able to assemble and interpret data collected across all these changes.

-

Another type of "revision" occurs when a component (an Item -Choice, Item, Section, or the entire Assessment) needs to be +

Another type of "revision" occurs when a component (an +Item Choice, Item, Section, or the entire Assessment) needs to be translated into another language. Even if the semantics of the component are identical (and they should be or you need a better translator ;-), the Assessment package needs to handle this -situation correctly: an admin user needs to be able to "assign" the -right language version to a set of subjects, and the returned user -data need to be assembled into trans-language data sets.

+situation correctly: an admin user needs to be able to +"assign" the right language version to a set of subjects, +and the returned user data need to be assembled into trans-language +data sets.

Note that two orthogonal constructs are in play here:

Approach

@@ -48,8 +50,8 @@ cr_revisions. Thus we actually have, for instance, two tables for Items:

This pattern of dual tables is used for all components that need @@ -62,35 +64,35 @@ the entire hierarchy. Data collected after this change will be collected with a semantically different instrument. Whether the difference is large or small is immaterial; it is different, and -Assessment must handle this. And the CR doesn't do this for us +Assessment must handle this. And the CR doesn't do this for us automagically.

So what the package must do is version both the individual entities and also all the relationships over which we join when -we're assembling the entire Assessment (whether to send out to a -requesting user, to stuff the database when the form comes back, or -to pull collected data into a report).

-

This doesn't involve merely creating triggers to insert new +we're assembling the entire Assessment (whether to send out to +a requesting user, to stuff the database when the form comes back, +or to pull collected data into a report).

+

This doesn't involve merely creating triggers to insert new mapping table rows that point to the new components. We also need to insert new revisions for all components higher up the hierarchy -than the component we've just revised. Thus:

+than the component we've just revised. Thus:

Another key issue, discussed in this thread, involves the semantics of versioning. How big of a modification in some Assessment package entity needs to happen -before that entity is now a "new item" instead of a "new version of -an existing item"? If a typo in a single Item Choice is corrected, -one can reasonably assume that is merely a new version. But if an -Item of multiple choice options is given a new choice, is this Item -now a new one?

+before that entity is now a "new item" instead of a +"new version of an existing item"? If a typo in a single +Item Choice is corrected, one can reasonably assume that is merely +a new version. But if an Item of multiple choice options is given a +new choice, is this Item now a new one?

One possible way this could be defined would derive from the hierarchy model in the CR: cr_items -- but not cr_revisions -- can contain other entities; the parent_id column is only in cr_items. @@ -109,16 +111,16 @@

Specific Versionable Entities

Within each subsystem of the Assessment package, the following entities will inherit from the CR. We list them here now, and once -we've confirmed this selection, we'll move the information out to -each of the subsystems' pages.

+we've confirmed this selection, we'll move the information +out to each of the subsystems' pages.