Finish up with categories (for now).
[pspp] / spv-file-format.texi
index 5ced97ce610131e2d93d40d20675836b2efd48c5..c58723379517a7ddfd275184a96020313f147703 100644 (file)
@@ -517,28 +517,40 @@ 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[name]
-            (00 | 01)[merge] 00 (00 | 01)[unindexed] (i0 | i2)
-            int[index] int[n-subcategories] category*[n-subcategories]
+category := value[name] (terminal | group)
+terminal-category := 00 00 00 i2 int[index] i0
 @end example
 
+@code{name} is the name of the category (or group).
+
 @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!)
+@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).
+
+Alternatively, @code{category} can represent a @code{group} of nested
+categories:
+
+@example
+group := (00 | 01)[merge] 00 01 (i0 | i2)[data]
+         i-1 int[n-subcategories] category*[n-subcategories]
+@end example
+
+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!)
+
+@code{data} appears to be i2 when all of the categories within a group
+are terminal categories that directly represent data values for a
+variable (e.g. in a frequency table or crosstabulation, a group of
+values in a variable being tabulated) and i0 otherwise, but this might
+be naive.