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:
Normal TeLiTab,
Transposed TeLiTab,
Arguments
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 the start of a document section which is related to of case . So is the starting tag for the document-value of the list parameter , or its first case in a table;
indicates the end of a document section which is related to of case . So is the ending tag for the document-value of the list parameter , or its first case in a table;
The DOCUMENT block should always close with a tag;
The parameter containing a document defined by should have as value in the list or table;
is an integer value indicating the number of parameters in the list;
is the parameter name (between quotes and unique in that level of the TeLiTab. So, although the syntax shows several ParName items, they cannot have the same name!);
is the value of the parameter;
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 the parameter name (between quotes and unique in that level of the TeLiTab. So, although the syntax shows several
items, they cannot have the same name!);
is the maximun case row or column number;
is the value of the parameter;
Each nested telitab starts 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
}
Remarks
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:
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
"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