Figured out some meanings for category data.
[pspp] / spv-file-format.texi
index e7c3f888900bcdae677436f01d42cc70e64d248a..5ced97ce610131e2d93d40d20675836b2efd48c5 100644 (file)
@@ -517,6 +517,28 @@ for the first dimension, 1 for the second, and so on.  The latter is
 the case 98% of the time in the corpus.
 
 @example
-category := value i1
-            (00 | 01 (00 | 01 | 02) | 02) 00 00 00
+category := value[name]
+            (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{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{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!)