next up previous
Next: Information Flow Up: Practical Applications of a Previous: Introduction

Keywords and Memes

The first challenge was to determine the list of attributes necessary to document a FITS keyword. Some, such as name, FORTRAN datatype, semantics, and min/max values, were obvious. Others were more subtle, and the list of attributes was revised several times as we explored the syntax and semantics of existing FITS headers and our proposed DEIMOS instrument keywords.

FITS keywords have provenance or context (i.e. an institution, instrument, author, or standards document which defines their valid use). Knowing the context is essential, given the lack of constraint on duplication in FITS namespace.

FITS keywords have relationships to other keywords in the same dataset (for example, the value of NAXIS controls the occurrence of NAXISn). We developed attributes for a generalized description of these relationships.

FITS keywords occur in groups or ``bundles''; a standard set of required keywords must appear in a valid table extension header, for example. A FITS header itself is a special case of such a bundle, as is a FITS table. We established ancillary tables to describe the grouping or bundling of keywords.

We found it necessary to establish special types of keywords called ``tuple keywords,'' whose values are actually a list or other parsable structure of subvalues. We established a general-purpose way of documenting such tuple values, which handles any such keyword by defining subsemantics and subformats, separators, delimiters, etc. We accommodated the case where identical semantics are repeated N times, and the case where N sub-elements have distinct semantics.

Given that our instrument and telescope control systems use a keyword/value architecture, we needed to establish access control for keywords (not all of which ever appear in FITS headers); some are writable, some readable, some are both. The access control attributes of keywords are needed for the configuration of dynamically-generated graphical user interfaces. This was an extension to ``strict'' FITS keyword attributes.

We found it necessary to establish a special relationship between certain keywords and an ``archetypal'' keyword of the same semantics. For example, one instrument system may format a value as F8.4 where another will format it as F6.4 or as a string. It's evident that (where the semantics are identical) these are really ``the same'' keyword. We included attributes for defining and documenting this type of relationship, so that only one fully-defined archetypical keyword need be established, with minor variants which inherit most of their attributes from the original.

As we struggled with subsemantics and archetypes, it became clear that we were documenting something more abstract than ``a FITS keyword.'' We borrowed the term ``meme'' to describe ``a unit of meaning,'' a more general-purpose name for the entities we were manipulating.

This generalization led swiftly to the use of the ``Memes'' database to document itself, since the fields (columns) of a database table are memes with a large subset of the attributes of a FITS keyword (such as name, datatype, semantics, etc.) (The ``archetypical'' relationship described above was obviously ideal for expressing foreign keying between database tables.) Exploration of the relationship between database tables and Meme bundles led equally swiftly to automated translation between these formats.

In other words, we are able to extract (outload) a Sybase table as a FITS table extension, and to import (inload) a defined FITS table extension to a Sybase table. We are able to generate Sybase table definitions for any meme bundle, including standard FITS headers and FITS table extensions. There are many practical applications for these abilities, e.g. the automatic creation and population of database tables for user-defined event and telemetry logs, during instrument operation,

Although we cannot adequately discuss the Memes schema within the present page limit, we invite the FITS community to investigate the Memes table definition and related tables, using the demo reports available at

http://www.ucolick.org/~de/deimos/Memes/demos.html
If you choose ``Documentation of Memes by Name'' and enter the name Memes, the resulting report will be the current Memes table definition. We propose these attributes as the first draft of a standard set of attributes of FITS keywords, and invite comments from the FITS community.


next up previous
Next: Information Flow Up: Practical Applications of a Previous: Introduction

De Clarke
Wed Jul 23 12:53:46 PDT 1997