Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The general structures is:

Text 

List

Table

 

  • Text contains all text for the dataset, this can be the description of the dataset and/or DOCUMENT blocks containing document parts representing string values op parameters in theTeLiTab. If only DOCUMENT blocks are used, the TeLiTab should start with an empty line;
  • List contains all the single-value parameters in a dataset;
  • Table contains all the multi-value parameters in the dataset (resulting in a table of cases for a parameter);

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



  •  is Text$ is optional and contains text between quotes for each line. If only DOCUMENT blocks are used, the TeLiTab should start with an empty line;

  •  indicates @DOCUMENT_ParName_CaseNumber  indicates the start of a document section which is related to  of to ParName  of case . So  is CaseNumber . So @DOCUMENT_B_1  is the starting tag for the document-value of the list parameter B , or its first case in a table;
  • Document$ contains text with CrLf's;

  •  indicates @END_DOCUMENT_ParName_CaseNumber  indicates the end of a document section which is related to  of to ParName  of case . So  is CaseNumber . So @END_DOCUMENT_B_1  is the ending tag for the document-value of the list parameter B , or its first case in a table;
  • The DOCUMENT block should always close with a  tag@END_DOCUMENTS tag;

  • Each DOCUMENT block is representing the documents on its own level in the TeLiTab (see the schematic recursive figure above).
  • The parameter containing a document  defined by  should have as document Document$  defined by @DOCUMENT_ParName_CaseNumber Document$@END_DOCUMENT_ParNam_CaseNumber  should have "\DOCUMENT" as value in the list or table;


  • ListNo% is an integer value indicating the number of parameters in the list;

  • ParName is the parameter name (between quotes and unique in that level of the TeLiTabSo, although the syntax shows several ParName items, they cannot have the same name!);
  • is ParVal is the value of the parameter;
  •  is TableNo% is an integer value indicating the number of parameters in the table, when using a negative value Quaestor expects a transposed TeLiTab with parameter on the rows and cases as columns;
  •  is ParName  is the parameter name (between quotes and unique in that level of the TeLiTabSo, although the syntax shows several 



    ParName  


     


     items, they cannot have the same name!); is


  • nr.cases is the maximun case row or column number;
  •  is ParVal is the value of the parameter;

  • For both list and table values, please note that string values should always be between double quotes;
  • A parameter should always be of the same type (either STRING, TeLiTab, VALUE or OBJECT) within the same TeLiTab structure;
  • Each nested telitab starts with  and with { and ends with , which should both be provided on a new line:


     

    ListNo%
    "ParName"
    {
     "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
    }



  • In a list TeLiTab or OBJECT values are provided at the end of the list. So they should not be followed by any additional string or value parameters;
  •  If If TeLiTab or OBJECT values have to be included in the table,   should TableNo% should be the total number of table parameters, including the TeLiTab or OBJECT parameters. This is not really surprising as the OBJECT or TeLiTab parameters for these values are indeed part of the Table. However, the structure is difference in only blocks with  and   divide with { and  divide the different values:


     "ParName"

    {
     "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
    }
    {
     ...
    }
    {
     "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
    }



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);

...

  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:

...

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.

...