1 Adding parameters to Hydrostatics
- Create a new class alongside
Dimensions
and call itGeneral
. - Create the following parameters (all are values) within the Knowledge Browser:
Parameter name |
Dimension |
Determined by |
Reference |
In Class |
|
[-] (none!) |
VR: User only |
Block coefficient |
Dimensions |
|
[t] |
USR: User or System/equation |
Displacement of vessel at design draft |
Dimensions |
|
[t/m^3] |
VR: User only |
Density of water |
General |
|
[m] |
VR: User only |
Design draft of ship |
Dimensions |
|
[m^3] |
USR: User or System/equation |
Hull volume at design draft |
Dimensions |
- Next drag and drop the parameters:
Lpp
,Boa
,Cb
,Displacement
,Rho
,T_design
andVolume
from the Knowledge Browser into the entityHydrostatics
.
Incidentally, the parameters Displacement
and Volume
still have their red crosses because they are not completely defined. You will add relations for them in a minute.
- To show 3 decimal places for parameter
Rho
, change the number of decimals places into 3 in the Properties window of parameterRho
.
2 Creating a drop down box
Because there will only be two possible values for parameter Rho
(1.025 or 1.000 [t/m3]), it is useful to create a dropdown box. This can be done by providing a special reference.
- Select the Parameter tab of the Properties window for
Rho
. - In the Reference field type the following:
Density of water. Select water type;
1.025<EQ>Saltwater
1.000<EQ>Freshwater
3 Creating entity relations
In the Hydrostatics
entity, calculations need to be performed based upon information from Main Dimensions
and some relation. In order to achieve this, you have to create so called entity-relations. The first entity-relation to create will be for parameter Boa
in entity Hydrostatics
: the value of Boa
in entity Hydrostatics
should be equal to the value of Boa
in entity Main Dimensions
.
- Right-click on the parameter
Boa
in entityHydrostatics
in the Workbase and select Taxonomy > Create Relation or press Ctrl+T.
The Expression Editor opens:
Providing a relation in the (upper part of) the Expression Editor will add a relation to the system, which is only valid in entity Hydrostatics
.
Because the most common purpose of an entity-relation is to refer to other entities, the Expression Editor for entity relations is started up with the ENTITY#() function already there.
By providing the unique and correct QEntityId within the ENTITY#() function, you can refer to information in other entities. You will want to refer to information in Main Dimensions
. So, you need the unique QEntityId of this entity.
There are two ways to get this ID:
- Look-up the ID by browsing to the entity in the taxonomy and read the QEntityId: The QEntityId of Entity “Main Dimensions” is 12. Figure 53 shows that QEntityId = 12 for Entity “Main Dimensions”.
- Inside the Expression Editor, press Right-Arrow to initiate a “walk through” menu to navigate through all entity levels in your taxonomy (showing QEntityNames). Repeatedly scroll and press Right-Arrow until you have reached the entity you want, press Enter, and its ID will be filled in in the expression.
The value of QEntityID of Main Dimensions
as presented in this tutorial could differ from yours, because it depends on the sequence in which you have created entities.
After selecting/entering the correct ID, placing the closing bracket and placing the dot, Quaestor will show all available parameters in the selected entity. You can scroll to the correct parameter and press Enter to select the parameter.
- Enter the following relation and click Save.
Boa = ENTITY#(12).Boa
This means Boa
is equal to (will copy the value of) the Boa
of the entity with QEntityID = 12.
Hereafter, the cell colour of Boa
in Hydrostatics
has turned to yellow.
To reset a parameter with a relation back to a 'normal' one with an input value, Right-Click on it the Workbase and select Taxonomy > Value = Input or press Ctrl+T again.
To edit an entity relation, Right-Click on the pertaining parameter in the Workbase and select Taxonomy > Edit Relation or press Ctrl+M.
An entity relation is something special. If you have experience with creating Quaestor knowledge bases (see the Tutorials on Quaestor basics), you will know that a relation will be visible in the Knowledge Browser. Entity relations have the 'dimension' Taxonomy instead of None in the Knowledge browser.
- Create an entity relation for
Lpp
in entityHydrostatics
in the same way. This parameter must be equal to the value ofLpp
in EntityMain Dimensions
:
Lpp = ENTITY#(12).Lpp
Finally, relations must be provided to calculate Displacement
and Volume
in entity Hydrostatics
. The following calculations should be made:
Displacement = Cb * Lpp * Boa * T_design * Rho
Volume = Cb * Lpp * Boa * T_design
- Create an entity relation for
Volume
in the same way. DeleteENTITY#()
in the editor and enter the expression above.
There is another way to create an entity relation. One that is very convenient when you know that a particular relation might be used in several entities. You will use this next for parameter Displacement
.
4 Connecting existing relations to entities
By adding the relation to the Knowledge Browser, you can connect it several times to various parameters in various entities, saving a lot of time.
Start with creating a relation in the Knowledge Browser.
- Select parameter
Displacement
in the right window of the Knowledge Browser, then Right-Click, and select option New relation... (or press CTRL + N). The Expression Editor opens and you can type the expression for Displacement that is given above.
In this way the relation is added to the knowledge base. However, realise that it is not yet connected to the parameter in the entity of your taxonomy!
To connect the relation, in the Workbase, select the parameter Displacement
in entity Hydrostatics
. Then, select the right mouse button menu Taxonomy>Choose/create relation or press Ctrl+T. A window will open showing the available relations for the selected parameter in the Knowledge Browser.
You can browse through the available relations and select the relation you want to use to compute the parameter, see below. In this case select the relation you have just created. The same method can be used to include any available relation for any selected parameter.
Note that it is still possible to create a new taxonomy relation by selecting the first option in the popup window.
5 Strategy for adding relations in taxonomy type knowledge bases
Perhaps you would like to have a bit more insight in the creation of relations in taxonomy type knowledge bases. Above you encountered two different methods of adding relations to entities. Why are there two different methods?
- The general approach is to create entity relations in the taxonomy.
- The main reason to use normal (global) relations and connecting them to parameters in an entity is when you know that the relation will be used at more than one spot in the taxonomy. In that case you rather create one relation and connect it to the parameters in the relevant entities.
- Also use normal relations if you want to use the modeling/reasoning functionality of Quaestor. You might want to use the modeler when you want to execute complex models which make use of reasoning an advantage over a normal traditional fully hardcoded model (which a taxonomy is to some extent). This is the case when you want the structure (network of relations) of a model to be dependent on the choices made and input provided by the user. You then have a hybrid knowledge base (mix of taxonomy and classical).
Use the ENTITY# function only in combination with entity relations!
You can use this function in normal relations but this is not advisable. This is because the EntityID in the ENTITY# function will be renumbered when modifications are made to the taxonomy that cause entities to be renumbered. This renumbering will not take place for normal relations.