TeLiTab stands for "Text List Table" and is the generic fractal (see [fractal]) data model for Quaestor. It is used as standard format for exchange and storage of data.
The format can also used as I/O format between Quaestor and satellite applications.

The general structures is:

Text 

List

Table

 

It is a fractal model because every parameter in the list or table of the dataset can contain a TeLiTab itself:

 

Text

List

 

 Text

List

Table

Table

 

 Text

List

Table

Syntax

The syntax for the TeLiTab is as followed:

  1. Normal TeLiTab

     TableNo%>0:
    "Text$"
    "..."
    "Text$"
    @DOCUMENT_ParName_CaseNumber
    Document$
    @END_DOCUMENT_ParName_CaseNumber
    @END_DOCUMENTS
    ListNo%
    "ParName"   ParVal
    ...         ...
    "ParName"   ParVal
    TableNo%   "ParName" ...  "ParName"
    "1"         ParVal   ...   ParVal
    ...         ...      ...   ...
    "nr.cases"  ParVal   ...   ParVal


  2. Transposed TeLiTab,

     TableNo%<0:
    "Text$"
    "..."
    "Text$"
    @DOCUMENT_ParName_CaseNumber
    Document$
    @END_DOCUMENT_ParName_CaseNumber
    @END_DOCUMENTS
    "ParName"   ParVal
    ...         ...
    "ParName"   ParVal
    TableNo%     "1"      ...   "nr.cases"
    "ParName"    ParVal   ...    ParVal
     ...         ...      ...    ... 
    "ParName"    ParVal   ...    ParVal


Arguments

Remarks

  1. Parameter names, strings, documents and case numbers should always be between quotes;
  2. As mentioned: each parameter within the same TeLiTab should have a unique name;
  3. Because a parameter can be either a single value or an object with several values, a parameter can be an Object, and, an Object is also a parameter. However, a parameter should always be of the same type (either STRING, TeLiTab, VALUE or OBJECT) within the same TeLiTab structure;
  4. Moreover, an Object or TeLiTab has the same structure in a TeLiTab set;
  5. Parameters can have documents as values, in that case ParVal for this parameter should be replaced with 

    "\DOCUMENT". These document are defined as a block after the text part and prior to the list parameters. If the text part is NOT provided the TeLiTab should start with an empty line. This should be the case on any TeLiTab level. A document is basically a set of strings (text) with character returns;
  6. A telitab with a table but no list has to start with a 0, indicating that there are no list values;
  7. A transposed table has a negative values for the number of parameters (the cases become collums and the parameters rows);
  8. As shown, a multi-case object might have a different amount of parameters voor each case (and contain no optional stuff);

Examples

Assume a dataset for a ship, containing Length (Lpp), Beam (B) and Resistance data, being a table with Speed (V) and Resistance (R). Based on this discription you can make a TeLiTab:

  1. With list values Lpp and B;
  2. A table with V and R;


  2                       
       "Lpp"      100          
       "B"         20          
        2     "R"  "V"          
        "1"  1000  10          
        "2"  1200  11
        "3"  1300  12
        "4"  1400  13
        "5"  1500  14
        "6"  1600  15

 


You could consider to define a seperate object or TeLiTab "Resistance" that containt the resistance data. In that case the Resistance data is connected to a seperate parameter denominated "Resistance" which contains a TeLiTab with Speed (V) and Resistance (R). Based on this discription you can expect a two TeLiTabs:

  1. The TeLiTab with Lpp, B and Resistance;
  2. The TeLiTab within Resistance, with V and R;

 

The resulting TeLiTab looks as followed:

 

3                      
       "Lpp"      100          
       "B"         20          
       "Resistance"            
       {                       
        0                     
        2     "R"  "V"          
                               
        "1"  1000  10          
        "2"  1200  11
        "3"  1300  12
        "4"  1400  13
        "5"  1500  14
        "6"  1600  15
        }   

 


Finally you could assume that this information is part of the "Ship" object. In that case on the highest level their is one list parameter "Ship", containing the previous TeLiTab structure as value:

  1. The TeLiTab with one list value Ship;
  2. The TeLiTab within Ship with Lpp, B and Resistance;
  3. The TeLiTab within Resistance, with V and R;


1                        
      "Ship"                  
       {                      
       3                      
       "Lpp"      100          
       "B"         20          
       "Resistance"            
       {                       
        0                     
        2     "R"  "V"          
                                
        "1"  1000  10          
        "2"  1200  11
        "3"  1300  12
        "4"  1400  13
        "5"  1500  14
        "6"  1600  15
        }                       
       }        

 


All information between double quotes are parameters/objects.

Parameters and objects should always be between double quotes. String information has to be between double quotes when the string containts spaces. "Ships" and "Resistance" are objects in the dataset (they contain a Telitab set). The secondary Telitab (for object "Resistance") is the content of the List item "Ship" of the primary Telitab.

For syntax specific questions, see also QuaestorSyntax