Problem statement
When we have a lot of classes, the labelling interface become very charged.
It's worste when we allow multiple choices because we need our objects to be from multiple categories at a time.
In the example, bellow, you can see an example of ontology with an asset (Airplane,Car,Truck,Bus...) that has a color (white,black,other,...).
In this case, we must use multiple choices :

But it doesn't prevent the user to label an Airplane that is a Car at the same time. What is not satisfying as well.
Describe the solution you'd like
A notion of subgroup available under "choice" at the Top level (PolygonLabels/KeypointLabels/RectangleLabels) :

At Label level, we have a new attribute "subgroup" :
- If it is filled, it will group all the possibility in a shared combobox (in the example, we would have a subgroup "color")
- If it is not, the label will be displayed as usual (in the example, we would have no subgroup for the asset type, it would remain displayed the same way)
The behavior is the following...
- One label without subgroup should be selected (at least) and a single one can be choosen
(Example : We have an Airplane, a Car, a Truck, a Bus, but it cannot be both).
- [Option] We can select an extra label from each subgroup (if we have multiple subgroup we can select one per subgroup)
For example, the ontology would look like that :
<View>
<View>
<PolygonLabels name="polygon" toName="images" choice='subgroup' showInline='true'>
<Label value="Airplane" background="Orange"/>
<Label value="Car" background="Red"/>
<Label value="Bus" background="yellow"/>
<Label value="Truck" background="yellow"/>
<Label value="White" subgroup='Color'/>
<Label value="Black" subgroup='Color'/>
<Label value="Other" subgroup='Color'/>
<Label value="A380" subgroup='PlaneType'/>
<Label value="A320" subgroup='PlaneType'/>
<Label value="A340" subgroup='PlaneType'/>
</PolygonLabels>
</View>
<View style='max-height:800px;overflow:auto;'>
<Image verticalAlignment='top' name="images" value="$images" inline="true" zoomControl="true" zoom="true" rotateControl="false"/>
</View>
</View>
Describe alternatives you've considered
We would be able to use something similar to taxonomy but it would requires to allow another object than a "Label" within a PolygonLabels what would be confusing.
Another solution would be to add another attribute to subgroup like "depends_on". For example, we would be able to say that Label value "A380" depends_on="Airplane", it means it would be visible as a combobox only when an Airplane is already selected.
The advantage of this approach is that we can have contextual combobox, popping only when we have already given the first label.
The drawback would be the difficulty to share a label between multiples "Root level" labels. It would also require to draw first the polygon before giving final classes because the context depends on it. The other difficulty would be the cleanup when we change the main class. We would have to verify dependancies what can be challenging.
Thank you for your help /remarks !
Problem statement
When we have a lot of classes, the labelling interface become very charged.
It's worste when we allow multiple choices because we need our objects to be from multiple categories at a time.
In the example, bellow, you can see an example of ontology with an asset (Airplane,Car,Truck,Bus...) that has a color (white,black,other,...).
In this case, we must use multiple choices :

But it doesn't prevent the user to label an Airplane that is a Car at the same time. What is not satisfying as well.
Describe the solution you'd like
A notion of subgroup available under "choice" at the Top level (PolygonLabels/KeypointLabels/RectangleLabels) :

At Label level, we have a new attribute "subgroup" :
The behavior is the following...
(Example : We have an Airplane, a Car, a Truck, a Bus, but it cannot be both).
For example, the ontology would look like that :
Describe alternatives you've considered
We would be able to use something similar to taxonomy but it would requires to allow another object than a "Label" within a PolygonLabels what would be confusing.
Another solution would be to add another attribute to subgroup like "depends_on". For example, we would be able to say that Label value "A380" depends_on="Airplane", it means it would be visible as a combobox only when an Airplane is already selected.
The advantage of this approach is that we can have contextual combobox, popping only when we have already given the first label.
The drawback would be the difficulty to share a label between multiples "Root level" labels. It would also require to draw first the polygon before giving final classes because the context depends on it. The other difficulty would be the cleanup when we change the main class. We would have to verify dependancies what can be challenging.
Thank you for your help /remarks !