next up previous index
Next: 2.3 Database Schema for Up: 2 DEIMOS Database Schema Previous: 2.1 Overview

2.2 Database Schema for Keywords (memes)

 

2.2.1 Legend

 
MemeName (Context) RW Sybase_Type F77_fmt C_fmt [Units]
The attributes displayed here if available are: the Meme name, context, access (read/write/both), datatype, FORTRAN format, C format, and the value's units and legitimate range (if any). A table may also have a FITS EXTNAME. This text is the Semantics.

2.2.2 Regular Memes

 
KTLgrp (Memes) table table (EXTNAME = 'KTLgrp')
Table defining KTL message groups or broadcast groups. Roughly speaking this means a bundle of memes which are applicable to a single hardware subsystem. See URI for more information. KTLgrp consists of elements:
 
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
sidlist (DataBase) char(80) A80 %s
List of service IDs for a KTL broadcast group. This is a space separated list of obscure all-caps symbolic names relevant only when inside music/traffic code.  
style (DataBase) char(12) A12 %s
KTL style (a jargon word from inside CARA) indicates the type of communication used to acquire or set a keyword. Note this is an enum meme. Valid values of style are:
  • music : Music-style keywords
  • CA : Channel Access
  • RPC : RPC protocol
  • CCX : Some other protocol
 
bcast (DataBase) int I6 %d
Broadcast group code: used to define groups of keywords for continuous monitoring

 

Mbundles (Memes) table table (EXTNAME = 'Mbundles')
Table of bundles or associations of memes; each master mid (tmid) is associated with several elements (emid). Mbundles consists of elements:
 
mbid (DataBase) int I11 %d
Unique Record ID (primary key) of the Mbundles table.  
tmid (DataBase) int I4
The MID of a compound meme (table, header, or tuple) which is associated with multiple other memes in the Mbundles table. Is an instance of mid:
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
emid (DataBase) int I4
The MID of an element meme which is associated with multiple other memes under one compound meme (table, header, or tuple) in the Mbundles table. Is an instance of mid:
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
eordr (DataBase) smallint I6 %d
Establishes the fixed order of elements in a meme bundle. This enables us to define predictable, repeatable FITS headers and Sybase schema.  
einkey (DataBase) char(2) A2 %s
special characteristics of an element of a bundle of memes. Valid values of einkey are:
  • I : indexed field
  • P : primary key component
  • N : may be NULL
  • T : interpret as table
  • O : optional?
 
opt (DataBase) char(1) A1 %s
This field indicates whether a keyword is Optional in a bundle. All keywords not Optional are Required.  
uid (DataBase) smallint I5 %d
(Sybase) ID code of database Key Entry person. This tells us who entered the record in the table. The stamp field tells us when.  
stamp (DataBase) smalldatetime A20 %s
date on which record was entered (or updated) in database

 

Mcontexts (Memes) table table (EXTNAME = 'Mcontexts')
Table of meme contexts and their meanings. Each context name is associated with an author, date, and meaning. 'Context' is a wholly arbitrary attribute for the developers' convenience. It enables us to disambiguate memes of identical name, for example. Mcontexts consists of elements:
 
mcontext (DataBase) char(16) A16 %s
Context code; the context code is attached to a meme to distinguish that meme from other memes which might happen to have the same name. See AZ in context HIRES vs AZ in context KECK1DCS, for example. The Mcontexts table defines meme contexts.  
descrip (DataBase) varchar(255) A255 %s
Descrip is a generic text field in which one can add brief descriptive information to an database entity (record). The description is relevant to the table in which the field appears.  
author (DataBase) varchar(40) A20 %s
Various MemesWorld items can have authors. Software agents have authors. Meme contexts also (who invented the context?). Path contexts (drawings) also have authors. Although the product is different, the author field always indicates authorship.  
stamp (DataBase) smalldatetime A20 %s
date on which record was entered (or updated) in database  
instrument (DataBase) char(12) A12 %s
Instrument name abbreviation for identifying contexts.  
subsystem (DataBase) char(20) A20 %s
Instrument subsystem (for identifying contexts)  
org (DataBase) char(20) A20 %s
Organization abbreviation (for identifying contexts). This might be UCOLick or Keck or CARA or NOAO . . . it indicates the general locus of authority for this context.  
doc (DataBase) char(40) A40 %s
Document (RFC, paper, etc) for identifying a meme context. This should probably be a URI. It's intended to point you to an official document (RFC, KSD, LOTR) describing the information in this context.  
authority (DataBase) varchar(40) A40 %s
String indicating authority over a context. This should be a person's name or email address. It answers the question, 'Who really knows what the memes in this context mean?'

 

Memes (Memes) table table (EXTNAME = 'Memes')
Table of memes (meaning units); FITS keywords, syntactic subunits of FITS keywords, and database fields are all memes. Memes consists of elements:
 
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
name (DataBase) char(16) A16 %s
The name of a Meme (a FITS keyword, database column or table name, FITS HDU name, Map, or any other meme).  
alt_name (DataBase) varchar(80) A80 %s
Mostly for KTL, but could be useful elsewhere; this attribute allows us to establish a lengthier alias for these short and sometimes cryptic 8-char FITS keyword names.  
context (DataBase) char(16) A16
Arbitrary attribute for grouping memes into related families, such as keywords relevant to an instrument, keywords relevant to a test phase, etc. It also disambiguates keywords with the same name but different meaning or format., e.g. PARANG. Is an instance of mcontext:
mcontext (DataBase) char(16) A16 %s
Context code; the context code is attached to a meme to distinguish that meme from other memes which might happen to have the same name. See AZ in context HIRES vs AZ in context KECK1DCS, for example. The Mcontexts table defines meme contexts.  
iscounter (Obsolete) char(1) A1 %s
If the keyword is a counter (controls the indexing or instantiation of other keywords) then this flag should be Y. OBSOLETE - this function can be sensed by the meme's presence as a ctrl_mid.  
units (DataBase) char(40) A40 %s
If the keyword value is expressed in known units, the units are stored here. IAU standard style is recommended.  
semantics (DataBase) varchar(255) A255 %s
The semantics (meaning and usage) of the entity are stored here. In the case of a meme, this is the meaning of the meme (or keyword); in the case of an enumerated value, it is the meaning of the value.  
syty (DataBase) varchar(40) A40 %s
The 'sybase type' or ''system type'' is the host datatype, as opposed to the FORTRAN format. Host datatypes map well to sybase datatypes, such as real, float, int, smallint, etc. Valid values of syty are:
  • tinyint : 8-bit integer
  • smallint : 16-bit integer
  • int : 32-bit integer
  • real : 32-bit float
  • float : 64-bit float
  • tuple : multi-component value
  • char : fixed length string
  • varchar : variable length string
  • map : a map type
  • header : FITS header or subset thereof
  • datetime : 8 bytes, good to 3.33ms
  • smalldatetime : 4 bytes, good to 1 min
  • table : FITS/Sybase table bundle
  • file : bundle of FITS HDU
  • schema : a bundle of RDB tables
 
ffmt (DataBase) char(12) A12 %s
The FORTRAN format type of a FITS keyword value or table column. For compatibility with keywords and TABLEs these should be F77 formats, but a keyword used exclusively in BINTABLEs could use F90.  
cfmt (DataBase) varchar(80) A80 %s
the printf format, as opposed to the FORTRAN format, in which the keyword value would be expressed in a FITS header. There are some fields, especially sub-fields in tuple values, which cannot be expressed using Fortran formats.  
delim (DataBase) char(2) A2 %s
If a keyword is a complex or simple value which is delimited (from other values in a tuple, for example) then delim is one instance of the delimiting character. One parenthesis would indicated that the value appears in parentheses.  
isa_mid (DataBase) int I4
The MID of a known, canonical, re-usable meme which serves as a typedef for other memes. The purpose of the typedef may be to refer to the same meme by various names with different functions, or to convert/reformat a meme. Is an instance of mid:
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
ctrl_mid (DataBase) char(12) A
Control MID: the MID of a counter keyword which controls the instantiation of an indexed keyword (FITS). This is actually a list of mids, as a keyword can be multiply indexed. Is an instance of mid:
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
ifmt (DataBase) char(24) A24 %s
The printf format for the index part of a an indexed keyword name. Note that it is generally not possible to describe this using a Fortran format.  
rpt_mid (DataBase) int I4
Repeat MID: the MID of a counter keyword which controls the repetition of a group in a tuple keyword (FITS) Is an instance of mid:
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
separ (DataBase) char(1) A1 %s
If the keyword has a tuple value whose members have identical semantics and occur N times, separ is the character which separates the members of the tuple, as in 1:2:3. As of May 97, this field should only be used in Map memes.  
minv (DataBase) float E20.12 %.12E
If a keyword value is numeric, then minv is the minimum permissible value for that keyword.  
maxv (DataBase) float E20.12 %.12E
If a keyword value is numeric, then maxv is the maximum permissible value for that keyword.  
nmin (DataBase) float E20.12 %.12E
If a keyword value is numeric, then minv is the nominal minimum value for that keyword.  
nmax (DataBase) float E20.12 %.12E
If a keyword value is numeric, then minv is the nominal maximum value for that keyword.  
defv (DataBase) char(40) A40 %s
If the keyword is missing from the header, but a defv value exists, the keyword may be inserted into the header with that value.  
nulv (DataBase) char(40) A40 %s
If the keyword exists in the header with a missing value, and a nulv values exists for that keyword, the missing value can be replaced with the nulv value. In a FITS table this string fills NULL values.  
access (DataBase) char(2) A2 %s
Keyword access can be RW, R, or W (this is mostly useful in the context of KTL, but could be used for database access control as well).  
comment (DataBase) varchar(80) A80 %s
In a FITS keyword/value record this comment text should appear following the / that follows the value. If the maintainer wishes to attach a very brief comment, which is not part of the semantics, this field is provided for convenient annotation.  
uri (DataBase) varchar(255) A255 %s
If the keyword cannot be documented adequately via semantics and comments, a URI can be attached referring the reader to other online documentation, source code, etc.  
startd (DataBase) smalldatetime A20 %s
Beginning date at which the use of this meme in this context is valid. Should apply to bundles, not to normal memes, for the purpose of establishing dated FITS header and KTL service definitions.  
endd (DataBase) smalldatetime A20 %s
Ending date at which the use of this meme in this context is valid. See startd; this applies to bundles, not normal memes.  
uid (DataBase) smallint I5 %d
(Sybase) ID code of database Key Entry person. This tells us who entered the record in the table. The stamp field tells us when.  
stamp (DataBase) smalldatetime A20 %s
date on which record was entered (or updated) in database  
wildcard (DataBase) char(20) A20 %s
This field of the Memes table was developed to document the value that a portion of a tuple meme should take on if its values is given as a wildcard instead of as an explicit value. The only use so far is for meme 1352.  
tolv (DataBase) float e20.12 %.12E
Tolerance value: for numeric keywords representing such quantities as stage position, this means the 'close enough' value. An actual value that is within +- tolv of the target value will be accepted as a successful move.  
map_mid (DataBase) int I
In the Memes table, the map_mid points to a Map Type meme (context should be MapTypes). The Map Type meme may or may not have a Bundle of parameters. In any case, the Mmaps table will tell us about the map. Is an instance of mid:
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.

 

Mmaps (Memes) table table (EXTNAME = 'Mmaps')
The Mmaps table describes the mapping of meme values. Unit coversions, lookup tables, and lists of legal values are the customary types of map. See the context MapTypes for more information. Mmaps consists of elements:
 
mmid (DataBase) int I %d
Primary key field (record ID) of table Mmaps. This field numbers each record for easy identification.  
res_mid (DataBase) int I
Result MID of map table. The Result MID is the MID of the meme whose value resulted from the mapping, i.e. whose isa_mid points to a meme whose value is converted or mapped into its own. Just remember that this meme ISA something else. Is an instance of mid:
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
res_val (DataBase) varchar(100) A %s
Result Value of a meme map record. The result value is the value taken on by the res_mid meme as a result of the map transforming the value of the meme which this meme ISA.  
par_mid (DataBase) int I
Parameter MID of a meme map record. This is NULL if the map is a simple lookup on a table of values of the ISA meme. If this is not null, then the map type must have been algorithmic rather than table driver and mmaps contains a list of parm values. Is an instance of mid:
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
par_val (DataBase) varchar(100) A %s
Parameter value of the par_mid meme. This is either a value of the 'deeper' meme which the mapped meme ISA (internal representation), or the value of the meme (coefficient) stored in par_mid.  
mcomment (DataBase) varchar(255) A %s
Comment field for explicating the mysteries of the Mmaps records.

 

Mpinouts (Memes) table table (EXTNAME = 'Mpinouts')
A table associating emids (memes in their incarnation as KTL bundle members, to be precise) with Lick drawing numbers, signal types, access types, r/w sense, etc. Intended for engineering support: instant reference from any KTL kw to the as-builts. Mpinouts consists of elements:
 
tmid (DataBase) int I4
The MID of a compound meme (table, header, or tuple) which is associated with multiple other memes in the Mbundles table. Is an instance of mid:
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
emid (DataBase) int I4
The MID of an element meme which is associated with multiple other memes under one compound meme (table, header, or tuple) in the Mbundles table. Is an instance of mid:
mid (DataBase) int I11 %d
Unique ID of a meme. Many of the memes are FITS keywords, but others are FITS tables, meme bundles, etc.  
dwgno (DataBase) char(12) A12 %s
Lick Observatory drawing number. This refers to the PCAD drawings documenting the control electronics.  
sense (DataBase) char(3) A3 %s
Is the signal read or write, from the controller's perspective?  
ctrltype (DataBase) char(12) A12 %s
Type of controller, as in Galil servo motor controller vs Piezo, Bar Code Reader, etc.  
sigtype (DataBase) char(6) A6 %s
Signal type, as in analog, digital, channel.  
sigid (DataBase) char(4) A4 %s
ID of the signal on the prints, as in 7, 2w, etc.  
acctype (DataBase) char(6) A6 %s
Type of access point for signal, e.g. cable, tblock, slot.  
accid (DataBase) char(4) A4 %s
Identifier of access point for signal, like J5 or P100.  
pinid (DataBase) char(4) A4 %s
ID of a pin on which a signal becomes accessible, as in 100, CC, etc.  
descrip (DataBase) varchar(255) A255 %s
Descrip is a generic text field in which one can add brief descriptive information to an database entity (record). The description is relevant to the table in which the field appears.  
uid (DataBase) smallint I5 %d
(Sybase) ID code of database Key Entry person. This tells us who entered the record in the table. The stamp field tells us when.  
stamp (DataBase) smalldatetime A20 %s
date on which record was entered (or updated) in database

2.2.3 Map Definitions

 
ForeignKey (MapTypes) map map
A map meme which indicates that its meme can be used as a foreign key into another table. The foreign occurrence of the meme is indicated by the isa_mid.


next up previous index
Next: 2.3 Database Schema for Up: 2 DEIMOS Database Schema Previous: 2.1 Overview

DEIMOS Software Team <deimos@ucolick.org>
1997-06-14T06:59:55 UTC