About dependencies
Dependencies are logical relationships between Features such that a State of one Feature controls the presence (or absence) of another Feature in Features Available.
Consider, for example, the following Features:
Wing colour and Wing shape only have meaning when wings are present – if wings are absent, they are logically inappropriate in the key.
Lucid provides two ways of accommodating logical dependencies of this kind. In the Lucid Builder, you may set a negative dependency such that, in the Player, if a user chooses the state Wings: absent, then the features Wing Colour and Wing Shape will be removed from Features Available. Alternatively, you may set a positive dependency such that Wing Colour and Wing Shape are initially hidden and only appear if a user chooses the state Wings: present.
Dependencies can help to keep the list of Features Available cleaner and less cluttered, and help make some Features, such as Best, work better.
Tip
If a Feature has been given both a Positive and Negative dependency, the negative dependency will be given preference.
How to set dependencies
To set dependencies, click the Dependencies score button on the right hand score toolbar. In dependency scoring mode, two buttons will appear to enable the setting of positive and negative dependencies.
You may set the dependent Features for a given controlling State, or the controlling states for a given dependent Feature.
To set dependent Features for a controlling State, first specify the ‘Controlling State’ by selecting the state in the Features tree then using the right-click context menu: the selected State will be highlighted, indicating that dependencies are currently being set for this State. Round dependency score boxes will appear alongside Features that may be controlled by this State.
To score a dependency, select the dependency type (positive or negative) and click the appropriate dependency score boxes.
Setting positive dependencies for a State. With Wings: present selected, positive dependencies have been set for Wing colour and Wing Shape. If the user of the key chooses Wings: present, these Features will appear in Features Available.
Setting negative dependencies for a State. With Wings: absent selected, negative dependencies have been set for Wing colour and Wing Shape. If the user of the key chooses Wings: absent, these Features will disappear from Features Available.
Setting a positive dependency for a Feature. With Wing shape selected, a positive dependency has been set on the controlling state Wings: present. If the user of the key chooses Wings: present, Wing Shape will appear in Features Available.
Setting a negative dependency for a Feature. With Wing shape selected, a negative dependency has been set on the controlling State Wings: absent. If the user of the key chooses Wings: absent, Wing Shape will disappear from Features Available.
To set controlling states for a dependent Feature, first select the Feature you wish to control by selecting it in the Features tree and using the right-click context menu: the selected feature will be highlighted, indicating that dependencies are currently being set for this feature. Round dependency score boxes will appear alongside States that may control this feature.
When to use positive and negative dependencies
The choice as to whether to set positive or negative dependencies will depend on the circumstances of the key and the likely key users.
In a key with all negative dependencies, at start-up (or when the key is restarted) all features will be displayed. Features that are logically inappropriate will be progressively removed from the key as the user proceeds. In the example used in the previous topic, a user with a specimen with blue wings would be able to address the Wing colour Feature at the beginning of the key, even before they have addressed the Wing presence Feature. This may be advantageous for your key. The disadvantage is that, at times, there may be many features at start-up that are not relevant to the specimen being identified.
By contrast, in a key with all positive dependencies, many Features will be hidden at start-up. You will effectively be constraining the choices your user may make: to be able to address the Feature Wing Colour they will need to first address the Feature Wing presence. The key will progressively unfold, becoming more applicable as the identification proceeds. This may be advantageous for your key. The disadvantage is that some Features will not be immediately available for use.
Note
It is possible to mix positive and negative dependencies in one key. Be aware, though, that dependencies may clash, or even contradict other dependencies. In all cases of conflict between dependencies, a negative dependency has priority over a positive dependency.
Positive dependencies, feature scopes and unfolding keys
Both positive dependencies and feature scopes may be used to create unfolding keys in which some features are hidden at start-up and are progressively added to Features Available as they become useful for the identification.
For more information on feature scopes, see the topic Not Scoped. For more on positive dependencies see the topic How to set dependencies above.
The difference between an unfolding key built using positive dependencies and one built using feature scopes lies in how the appearance of the hidden features is controlled. A hidden feature controlled using a positive dependency will be added into Features Available when its controlling state has been chosen, no matter what set of entities remains in Entities Remaining. By contrast, a hidden feature controlled using feature scopes will be added into Features Available whenever all entities in Entities Remaining are scored for the feature, no matter what set of states have been chosen from Features Available.
For example, consider an unfolding key to arthropods created using positive dependencies. Some features concerning wings are controlled by a positive dependency on the state Wings: present. These wing features will unfold into the key as soon as Wings: present is chosen, no matter which entities remain in Entities Remaining.
Consider the same key created using feature scopes. Some features concerning wings are scored only for the winged entities (that is, all wingless entities have been given the score Not Scoped for these features, while the winged entities have been given normal scores such as Absent, Common, Rare etc). These features will unfold into the key as soon as only winged entities remain in Entities Remaining, no matter which states were chosen to get there.
The choice of whether to use positive dependencies or feature scopes to create an unfolding key depends on personal preference and the likely way in which key users will approach an identification.
Report Dependencies
Reports on positive and negative dependencies contained within the key. Within large, complex keys with multiple dependencies set it is sometimes easier to view a report on dependencies, rather than selecting them individually, via the dependency scoring interface, to see what they may affect.
This option can be accessed via the ‘Keys…Scores…View Dependencies’ menu.
The Dependency Reporter reports positive and negative dependencies in two ways –
- By the controlling State and;
- By Feature.
By Controlling States
A controlling State is a Feature State that contains a Positive or Negative Dependency that will cause other Features to be added (positive) or removed (negative) upon its selection.
Within the report all controlling states are listed with the Features each controlling state will add or remove if the user selects that state.
By Feature
Lists all Features that have a positive or negative dependency set against it, along with the Features/State controlling that Feature.