Labels as data I

Although labels often identify one or more fields, they do not have to be associated with a field at all. An example of this is the label "Blotched" that appears in this section of the ?TShirt model:

         Characteristics  Color Background Red
                                           Green
                                           Purple
                                           Grey
                                           Blue
                                Faded
                                Blotched
What meaning is implied by a standalone label?

One purpose served by standalone labels is that they can act as "flags", i.e., their presence or absence carries meaning. For example, a particular t-shirt called "sam1" happens to have blotches. Since blotching is important to my view of t-shirts I include it as a standalone label in the ?TShirt design. This makes it possible to specify the label as part of the data for "sam1":

TShirt : Sam1
Blotched
The user sees:

Another purpose served by such tags is to constitute a "controlled vocabulary" (CV) which can take on a limited range of values. An example in ?TShirt is the "Background" section which forks into five color labels. Any of the five labels could be entered but it would be an error to attempt to enter "Violet", which is not provided by the current model.

Right now a particular t-shirt could have more than one color; perhaps this should be limited. Maybe all of my t-shirts are "solid". An exclusive CV could be specified by UNIQUE as follows:

            Background UNIQUE  Red
                               Green
                               Purple
                               Grey
                               Blue
One important role played by flags is that they allow you to construct simple but powerful queries. For example, it would be trivial to identify all the t-shirts in a collection that specify "Red" as their color. The query tests for the presence of "Red":

     >?TShirt Red
As far as queries are concerned, any label can be used in this fashion. If you wanted to identify t-shirts that had been assigned a background color, you could simply query for the presence of "Background". (Recall that any time a label is used, the branch leading up to it is included automatically). Similarly a query for the presence of "Remarks" would identify any t-shirt in which a remark had been made. This general property can be used to design subclasses. Labels can also make the deletion of data more efficient (Appendix 4).

"Cascaded" labels can be used to represent hierarchical CV's as in this partial example, where broad terms are divided into narrower ones. A hierarchy like this can be extended arbitrarily as required. If an object is described by a particular term (e.g. Autopolyploidy) the broader terms above it will also be present (Polyploidy, Euploidy, Ploidy).

            Ploidy Aneuploidy Disomy
                              Monosomy
                              Nullisomy
                              Tetrasomy
                              Trisomy
                   Euploidy   Diploidy
                              Haploidy
                              Polyploidy Allopolyploidy
                                         Autopolyploidy


Show me the whole t-shirt model again.

Back to Table of Contents