Versions Compared

Key

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

...

Tutorial 2
Objects and TeLiTabs

Learning goals

  1. Learn about the TeLiTab data format
  2. Using an object as a function 
  3. Creating a multiple case solution
Prior knowledge



1    Objective

 

In this tutorial, you will create the shape of a ship's waterline in a table of frame numbers and relative, dimensionless widths. The dataset containing variations of the main dimensions of a ship from tutorial 1 is stored in a data object Ships in the dataset of the knowledge base, so it can be easily used in further calculations. This dataset combined with the dimensionless width table is used to calculate the width at the waterline at every other frame number for every variation.

Note

Note that the word frame is used here as a ship's frame, not as a frame in Quaestor.

 Start

For this tutorial, the knowledgebase from tutorial 1 is used. You can either use your own (verified) knowledgebase, or download it here: [Tutorial 2 Start]

...

TeLiTab is an abbreviation of TextListTable (see TeLiTab for more detail). It is the standard format in which data is stored inside Quaestor, the easiest way to use data inside a knowledge based systems and the easiest way to exchange data with external applications (see also Use of external or satellite programs). An example of a telitab is given below, the black text to the right is comment and is not present in the actual telitab.

 



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


Number of list items in primary Telitab
Name of List item
Opening secondary Telitab
Number of list items
List item 1, name + value
List item 2 name + value
List item 3, which is a Telitab
Opening tertiary Telitab
Number of list items (in this case zero)
Number of table parameters and their names
Dataset per case





Closing tertiary Telitab 
Closing secondary Telitab 
Primary Telitab does not need to be closed

...

The ship is defined mathematically, which makes it convenient to generate. The relation between the frame number (0 to 20) and relative width is:

Rel_B = 0.5 - 0.005 * (Frame - 10)^2

The shape of the waterline is a polynomial (a parabola). You can enter this function in the Geometry class in the same way as in tutorial 1.

...

  • Add the following relation to the class Geometry:

Waterline(@Rel_B,@Frame:STR$(StartFrame) + "(" + STR$(FrameStep) + ")" + STR$(EndFrame))

Upon saving the relation, the following questions will be asked: 

  1. You will be asked whether StartFrame is an Object. Say no;
  2. Hereafter you will be asked whether StartFrame is a Goal parameter or Input. Say no, because you want to provide this as input for the Waterline object;
  3. These questions are also asked for FrameStep and EndFrame. Say no to the Object question and no to the Goal parameter question. These values are input to the object.

...

  • Click on Preview and the contents of the clipboard are shown. These contents consist of the contents of the Waterline object: Click Cancel after this.

The TeLiTab format used to describe the contents of the object is clearly visible. There is 1 list item, named Waterline. This is a telitab (2nd level), containing 0 list items and a table with 2 parameters, Frame and Rel_B. The case numbers are shown between double quotes ("").

5   Managing solutions

To clean up the Workbase from some of your trials, select the solution in the Workbase you want to delete, right-click and select Solution -> Delete or press Del. Click yes to confirm. The solution has been deleted from the workbase.

...

6   Creating an object in the dataset

 In the dataset, an object can be used to store static data in a Quaestor knowledgebase. This can be very convenient, especially when large amounts of data need to be stored as input for calculations. An object can be created at any time and it can be filled with data later, either manually or as a result of calculations.

...

7   Adding content to a data object 

Our data object should contain all the ship variations produced in tutorial 1. Therefore, you are going to copy the results of the DISP solution (with the variations) to the object Ships using the clipboard.

  •  In the Workbase, right-click on the DISP  solution and select All to Clipboard (or press F4). The Workbase Clipboard now pops up. Click on Preview. The contents of the DISP solution are now displayed. You temporarily have to use a workaround now, because the Paste function is not yet implemented. Press Ctrl+A followed by Ctrl+C to copy the contents to the Windows clipboard. Click Cancel and close the clipboard. No need to save the values in there. Then right-click on the Ships object in the Dataset and select Database Input or press Shift+F3. In the pop-up window that appears, select Use Editor and click Continue. In the window that appears next, press Ctrl+V to paste the data in the object. Click OK. Select Yes to All and click Continue.

The object Ships is now filled with all the variations in length and width:

Image Modified

8   Accessing data in an object

  • In the class Geometry, create a new relation:

B_Frame = 2 * B * Rel_B

The dimension of B_Frame is meters (m).

This function states that the width of the ship at a certain frame number equals the relative width at that frame number multiplied with the total width of the ship. Notice that the frame number is no direct input in this relation, but Quaestor will still ask for it in a solution as Rel_B depends on that parameter.

There is an alternative way of creating solutions. First, you need to add some attributes to the Ships object. Attributes are used to direct the behaviour of Quaestor in solutions. All available attributes are described here. Two attributes are needed: @DBENTRY and @DBOBJECT.

...

Attributes are either separated by a space or by a hard return, not by a comma. The meaning of the entered attributes will be explained at the end of this tutorial.

Image Modified

9 The Process Manager

The main procedure to create solutions with an existing dataset is through the use of the Process Manager. In the Process Manager, datasets and top goals can be selected to create new solutions. Furthermore, existing solutions, macros or scenarios (these terms will be explained in another tutorial) can be restarted. First, make sure the top goal B_Frame can be selected in the Process Manager.

...

Please note that @DBOBJECT is an addition to @DBENTRY. So @DBENTRY should always be in the multi case object you want to use as entry point for your data in combination with @DBOBJECT
Furthermore, at this moment it is not possible to do calculations for several multi case objects at once (this behaviour is suggested in earlier Quaestor versions in situations where you use @DBOBJECT without @DBENTRY and as a result are able to select several or All Ships...).

12 Check 

You can verify your results by comparing it to [Tutorial 2 Finished] 

<< Back to tutorial 1 – Continue with tutorial 3 >>