allegro
Background

Does anybody have to know anything?

This text attempts to provide insight into allegro in a new way. The intended audience are those who have yet little if any idea what  "parametrization" might mean but who do not like to work with a Black Box.

Data are invisible, that's the problem.
Otherwise the talking about data would be lots easier.
But one does see data on the screen? Those are just traces left by a zig-zagging electron beam, nothing more, controlled by a complex program. Those traces are not data, the screen image  is not the database. The image is painted by a program that accesses the database in ways not directly visible. The Windows screen (in programs a99 or alcarta) looks much different from a DOS image (in the program PRESTO; use the "File | DOS Program" menu command if you never saw it).  Here's an example Windows image of a record:

                                       Call number: 2580-1459
`Shakespeare, William:`
A midsummer night's Dream / William Shakespeare; Harold F. Brooks [ed.].
   London : Methuen, 1979. - CXLIII, 164 S.
(The Arden Shakespeare)
ISBN 0-416-17930-4 
                                              [Fig. 1]

The DOS version and the Windows version - that's  by no means  two different databases! They are just two different programs, each producing a different image of  the same database.
In yet other words: the data are not stored somehow inside the program or closely connected with it but data are stored in files which are totally unconnected with any program. That's why two different programs can access data simultaneously. And that's why a new software version does not mean that something has to be done with the data before the new version can be used. (The latter is not always true for any software, but it has been true for "allegro" for over 10 years.)

What, then,  is  actually stored in a database? In the case of our example, it looks a great deal different from the image seen above:

#00 804076
#20 ¬A¬ midsummer night's Dream
#40 Shakespeare, William
#41 Brooks, Harold F.
#74 London
#75 Methuen
#76 1979
#77 CXLIII, 164 S.
#85 ¬The¬ Arden Shakespeare
#87 0-416-17930-4
#90 2580-1459
#99e19880518
                                              [Fig. 2]

This is a  Record in the demo database's internal "format". More was not entered and more's not there, not even under Windows. Look it up in the demo database.
However, there's more than one way to tag a record internally! One has to decide, when setting up an allegro database, what system of tagging to use. If one opted for the MARC system, the same record might look like this:

#001 804076
#005 19880518
#008 871119q19001987nyusynn          1  N/A d
#100 10²aShakespeare, William,²d1564-1616
#245 12²aA midsummer night's dream /²cWilliam Shakespeare
#260 0 ²aLondon²bMethuen²c1979
#300   ²acxliii, 164 p.²c21 cm
#440  4²aThe Arden Shakespeare
                                              [Fig. 2a]

All records in an allegro database have to use the same tagging - there cannot be MARC records side by side with MAB records in one and the same database. But it is always possible to export records in any other format and to convert records from other formats into the one used for the database (more on this see further down).

A record is not a File. In the allegro context, every record resides in a file, side by side with many other records - like a catalog card rests in a drawer with hundreds of other cards. The drawer, that's the file. 
Normally, this internal form of a record is not visible, as seen in the above example [Fig. 1].
Or look at one of the index entries: (this is index 4 "Titles" in the demo database)
(Please note what's happened to the article and the single quote in "A midsummer night's dream"! Those are small examples of the many details that have to be taken care of)
   ...
   1  merry wives of windsor
   2  midsummer nights dream
   1  mikroprozessortechnik
   1  mister diamond
   1  morality of shakespeares drama illustrated
   1  mord braucht reklame
   1  mr irelands vindication of his conduct
   1  mr william shakespeares comedies histories + tragedies
   2  much ado about nothing
   ...
                                              [Fig. 3]

All of this is done by software. Such images look much different from the internal record with the tag numbers, and a curious user may well ask where they come from. How does a program "know" that tag 85 means "series title"? How does it know where it belongs in the other images, and that it belongs in parentheses when displayed: (The Arden Shakespeare)  - for these parentheses are not there at all in the record? Are all such details somehow built into the software? In now way! The programs, whether DOS or Windows, "know" nothing about such detail. The programs, however, can obey certain rules which specify that tag 85 means "Series title" and has to follow the 77 tag in the display (meaning  "collation"), on a new line and in parentheses.

We therefore have to distinguish between three different entities:
1.	The Data elements as input (records being lists of tagged elements, see Fig. 2 and 2a)
2.	The Programs accessing  these records and displaying them in different ways: sometimes with, mostly in diverse ways without the tags (Fig. 1). An index entry (Fig. 3) is also an image, showing parts of records and not the records themselves.
3.	Rules telling the programs  how  they are supposed to do all these things. 

Thus, the programs are neutral. Left alone with the naked records (tagged lists of elements) the programs are helpless - they need the rules, but every database can have its own rules. This is why the same allegro programs can operate databases of very different contentand even with Chinese and Japanese characters, although the allegro developers  understand nothing about these scripts and have made no special provisions for them. The rules are the real secret of the system : the rules make it flexible. 
To systems people: behind allegro there's no hidden `relational database management system` (RDBMS); allegro has its own, specifically developed concept of record storage and management. Tables for relational systems can, however, be easily produced and imported. 
Every database system has some system of rules for the handling of data, they are just seldom called "rules" not even in allegro. There are many names, like "syntax tables" or "scripts" or "templates" or "parameters". The latter is the term uset the most in allegro. 

An allegro database needs several kinds of parameters:

1.	For the data structure or "schema" : the Configuration, extension .CFG; this contains the list of tags or field labels a record in this database can use. Most users utilize the standard (and default) `A.CFG` (or $A.CFG) configuration. There is also a MARC configuration (the file is $U.CFG). The configuration, however, says nothing about the index or how a record is supposed to be displayed! There are different parameters for those jobs:

The following three types of parameters depend heavily on the configuration (though for one and the same configuration, one can have very different display or index parameters!):

2.	Export: (or "Output") such parameters are called Export parameters. A special case of export is the screen display of records as seen in the example above (Fig. 1). Other parameters are needed for conversion into other formats and for print outputs. Export parameter files all have the extension .APR, if A.CFG is used for configuration, or  .UPR if one uses U.CFG, etc.

3.	Indexes: Rules for the construction of the indexes of a database are called Index parameters and are in a file of type .API (or .UPI when U.CFG is used, etc.) These parameters tell the system what fields are to be indexed and in what way, and this can go into considerable detail. Indexing is the most complicated job in almost every  allegro database. 

4.	Conversion: For every external (non-allegro) data format a set of rules for conversion is needed, also called Import parameters. Those are files of type .AIM (or .UIM if U.CFG is being used, etc.)

?Shakespeare, William:=x index |1shake\help ?
?relational database management system=~start http://www.allegro-c.de/a-r.htm
?A.CFG=h acb-1