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

TeLiTab is a term that will be used quite often in this tutorial. Therefore, an elaboration on the subject is in order in this very early stage fo the tutorials.

TeLiTab is an abbreviation of TextListTable (see TeLiTab for more detail). It is the standard format in which data is stored insideQuaestorinside 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.

 

...

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.

 

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 thirtiary 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 need not to be closed. 


Every level of a TeLiTab contains list items and an optional table. The table can be omitted, but if there are no list items present at a certain level, a '0' is required (like above in the resistance telitab). Parameters and case numbers are written between double quotes (""), values are not but strings with spaces in it should! For all syntax aspects please go to: TeLiTab


Quaestor Object

A Quaestor Quaestor ObjectQuaestor object contains a set of data, either static (only data, e.g. a speed power curve or a list of components) or dynamic, represented as TeLiTab. An object can operate as a computational model (requesting input and providing output) fulfilling the role of function or subroutine in an assembled model (a ‘Solution’ in the Quaestor workbasethe Quaestor workbase).

The use of the TeLiTab format and Quaestor objects and Quaestor objects is covered in this tutorial.

...

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”.

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

...

The General syntax used for Frame is @ParameterName:"Input". By using the intrinsic STR$ function with the parameters, you can give range input to the object, while for Quaestor it for Quaestor it appears as normal single value input. This solve the constrained that you cannot give range input while building a solution. The @ in front of the parameters is to indicate that Rel_B and Frame are to be calculated in the object. See also QuaestorSyntax.

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

 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 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 solution is the object Waterline, which is filled with values for Rel_B  for every case of Frame. Please note that the parameters are requested in alphabetical order. By using the @ORDER attribute in the data slot of the parameters you can manipulate this order (provide @ORDER:1 to StartFrame, @ORDER:2 to FrameStep and @ORDER:3 to EndFrame). Furthermore, please note that you cannot select Waterline as top goal when you are into the Waterline object in one of the solutions. The reason is that Quaestor assumes that Quaestor assumes you want to add a parameter to this level and does not allow you to do so.

Please also note that inside the Waterline node, the dimension of Waterline is stated a Function, which is the correct conclusion drawn byQuaestorby Quaestor.

5   Managing solutions

...

 In the solution Waterline, select the cell containing Object  (as in figure 3). Press F2, which is the shortkey for edit.

...

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.

...

In the dataset, an object can be used to store static data in Quaestor knowledgebasea 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.

...

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.

 In the Workbase, select the Dataset node. In the Knowledge Browser the object Ships and select Parameter toto 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.

...

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

  In the Workbase 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  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.

...

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 but Quaestor will still ask for it in a solution asRel_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 of Quaestor in solutions. All available attributes are described here. We will apply two attributes: @DBENTRY and @DBOBJECT.

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

...

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.

  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 of Quaestor except that parameters in the Top Goals/Undefined class are visible in the process manager. 

...

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

...

Finally, let's explain the attributes used. The @DBENTRY and @DBOBJECT are used to configure access to the Dataset containing objects. This is best experience by the difference in behaviour of the process manager.

The dataset of Quaestor can of Quaestor can only containt objects on its top level (below the Dataset node). When you want to use the data in the Dataset, you can either select the object or define the object as database entry so that the Process manager will show it's content. @DBENTRY defines this entry point for selection of data by Quaestor by Quaestor (and thus in the process manager).

...

Try running the process manager without @DBOBJECT. It's now possible to select the cases within the Ships object, instead of the whole object (all cases). The reason is that Quaestor now that Quaestor now expects there is only one relevant object, being the one specified as @DBENTRY, so only selections within this object are relevant to be shown 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 serveral multi case objects at once (this behaviour is suggested in earlier Quaestor version earlier Quaestor version in situation where you use @DBOBJECT without @DBENTRY and as a result are able to select several or All Ships...).

...