Figured out some meanings for category data.
[pspp] / spv-file-format.texi
index f6f8bb27dd116771c1df96cad66f7499867d60d6..5ced97ce610131e2d93d40d20675836b2efd48c5 100644 (file)
@@ -518,17 +518,27 @@ the case 98% of the time in the corpus.
 
 @example
 category := value[name]
-            01? 00? 00? 00?
-            (01 (i0 | i1 | i2) | i2)
+            (00 | 01)[merge] 00 (00 | 01)[unindexed] (i0 | i2)
             int[index] int[n-subcategories] category*[n-subcategories]
 @end example
 
 @code{category} can represent a terminal category.  In that case,
-@code{name} is the name of the category, @code{index} is a nonnegative
-integer less than @code{n-categories} in the @code{dimension} in which
-the @code{category} is nested (directly or indirectly), and
+@code{name} is the name of the category, @code{merge} is 00,
+@code{unindexed} is 00, @code{index} is a nonnegative integer less
+than @code{n-categories} in the @code{dimension} in which the
+@code{category} is nested (directly or indirectly), and
 @code{n-subcategories} is 0.
 
 Alternatively, @code{category} can represent a group of nested
 categories.  In that case, @code{name} is the name of the group,
-@code{index} is -1, and @code{n-subcategories} is positive.
+@code{unindexed} is 01, and @code{index} is -1.  Ordinarily a group
+has some nested content, so that @code{n-subcategories} is positive,
+but a few instances of groups with @code{n-subcategories} 0 has been
+observed.  If @code{merge} is 00, the most common value, then the
+group is really a distinct group that should be represented as such in
+the visual representation and user interface.  If @code{merge} is 01,
+however, the categories in this group should be shown and treated as
+if they were direct children of the group's parent group (or if it has
+no parent group, then direct children of the dimension), and this
+group's name is irrelevant and should not be displayed.  (Merged
+groups can be nested!)