Versions Compared

Key

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

...

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]

2    Background information: TeLiTab data model and Questor object

...

In order to create the geometry of our ship, we'll need an object that contains frame numbers and relative, dimensionless widths. To keep the knowledgebase arranged logically, we will create a new class: “Geometry”.

Image Modified In the Knowledge Browser, create a new class named 'Geometry'.

Creating classes is covered in tutorial 1. Note that, when adding a new class, a proposal is made for the name of the class, containing the class you right-clicked. The proposal is used to make a sub class, for instance Main dimensions.Geometry creates Geometry as a sub-class of Main dimensions. We don’t want that this time.

...

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

 

   


Figure 1   Our waterline shape is defined by a mathematical function

The shape of the waterline is a polynomial, see figure 1. You can enter this function in the Geometry class in the same way as in tutorial 1.

Image Modified Add the relation above to the class geometry. The parameters are automatically created when entering a relation. Frame should be listed as a user defined (VR) parameter and Rel_B should be System defined (SYS). Don’t forget the dimensions (Rel_B and Frame are dimensionless), and a proper reference for the parameters.

Using the function defined above, we will put the shape in an object.

Image Modified Add the following relation to the class Geometry:

 

   

See figure 2.

Figure 2   Adding an object containing a function

...

Note that just after you have created the expression, Waterline appears as parameter in the knowledge base with dimension object (Obj). So, in Quaestor, a parameter can be seen as an object and objects can be used as functions to perform calculations in.

Image Modified Select Waterline as top goal by double clicking it, and start a solution. Click yes when asked if a new solution should be created.Quaestor will ask for the StartFrame, EndFrame and FrameStep. Enter for the StartFrame 0, for the FrameStep 2 and EndFrame 20, and press enter. Accept and continue.

The result is shown in figure 3.

...

The inbuilt text editor is opened, and the contents of the object Waterline are shown, see figure 4.

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 ("").

To clean up the Workbase from some of your trials, welect the solution in the Workbase you want to delete, and press del (or  -> solution -> delete), see figure 6. 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.

In this paragraph, an object is created that will be given contents later on. We will create the object Ships.

Image Modified In the knowledge browser, select the class Top Goals/Undefined. In the right hand side, Image Modified New Parameter/Function (or Ctrl+I). Name the Object Ships and select the type: Object.

 Unlike the Waterline object, which was defined by a function, the object Ships does not yet meet the validity conditions.

Image Modified In the Slots and Properties window, change the Determined by field to OBJ: Value from Object/Database.

Ships is now a valid object in the knowledgebase, but is not yet present in the dataset in the Workbase. We'll have to add it.

Image Modified In the Workbase, select the Dataset node. In the Knowledge BrowserImage Modified the object Ships and select Parameter to DataSet (or Ctrl+O), or drag the Ship object to the Dataset, see figure 7.

Note that you could also simple drag and drop the parameter to the dataset.

...

7   Adding content to a data object 

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

 Image Modified In the WorkbaseImage Modified the second DISP solution and select All to clipboard (or press F4). The Clipboard window now pops up (figure 8). In the workbase, select the object Ships in the Dataset and press Paste in the Clipboard window. Quaestor will ask you if you want to copy the parameters, select Yes to all and continue.

Figure 8   The clipboard window is used to copy and paste static data

The object ships is now filled with all the variations in length and width. You can close the Workbase clipboard. It will ask you whether it should be cleared, say yes because you do not need the data in the Clipboard anymore.

8   Accessing data in an object

Image Modified In the class Geometry, create a new relation:

 

...

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.

We'll use an alternative way of creating solutions. First we will add some attributes to the Ships object. Attributes are used to direct the behaviour of Quaestor in solutions. All available attributes are described here. We will apply two attributes: @DBENTRY and @DBOBJECT.

Image Modified Select the object Ships in the knowledge browser (it was created in Top Goals/Undefined). In the Frame Viewer, select data. In the large blank area, type: 

        See figure 8.

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.

...

Figure 8   Entering attributes in the frame viewer

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, we'll make sure our top goal B_Frame can be selected in the Process Manager.

Image Modified In the Knowledge Browserdrag the parameter B_Frame to the class Top Goals/Undefined.

Note that parameters can always be exchanged between classes, there is no influence on the behaviour of Quaestor except that parameters in the Top Goals/Undefined class are visible in the process manager. 

Let's start a solution by means of the process manager.

Image Modified In the workbase, click the button or press the "Process Manager" button ( Workbase buttons ) to start the Process Manager (figure 9).

 

Figure 9   The S button or "Process Manager" button opens the process manager 

The Process Manager starts (figure 10). The left hand side shows all available datasets, in this case only our Ships object. The right hand side shows the available tasks. The parameters in the Top Goals class are shown here, as well as existing solutions. A combination of a dataset and a task results in a solution.

...

Figure 10   The process manager with datasets (left) and solutions (right)

Image Modified In the Process Manager, select Ships:#1 as dataset and B_Frame as task. Click the Compute B_Frame button. Data that is available in the dataset is proposed together with data still to be given (figure 11).

Image Modified

Figure 11   Data that is available in the dataset is already filled in 

Because you can only give a range when you recalculated a solution, first provide one value for Frame and continue.

...

The process manager can also be used to just select a dataset, and top goals can be selected in the knowledge browser. We will start the same solution, but add the displacement to the table. 

Image Modified In the Process Manager, just select Ships:#1. Click the Select Ships button. In the class Main Dimensions of the Knowledge Browser, double click the parameter Disp to make it a top goal. In the class Top Goals/undefined also double click the parameter B_Frame (remember that multiple top goals are possible in Quaestor). Start a solution. Accept all proposed values (by pressing enter), for Frame first give a value and continue. Restart the solution and provide for Frame 0(2)20. Make a case matrix again and continue.

Now, the parameter Disp is shown in the output table too, together with its case depending parameter Lpp.

...

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 serveral multi case objects at once (this behaviour is suggested in earlier Quaestor version in situation where you use @DBOBJECT without @DBENTRY and as a result are able to select several or All Ships...).

8    Check 

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

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