obdasystems / eddy

A graphical editor for the specification and visualization of Graphol ontologies
GNU General Public License v3.0
62 stars 7 forks source link

[FEATURE]: Allow selecting a preferred annotation assertion when rendering by annotation property #228

Open mnamici opened 2 years ago

mnamici commented 2 years ago

Description

Implement a way of allowing the user to select a preferred value to display by default when rendering by annotation properties when the annotation has more than one value associated for the same object, property name, and language tag.

Motivation

Annotation assertions are not functional, meaning the same object may be associated with any number of values (including the same language tag) for any annotation property. Currently, we have a way of dealing with such situation when the annotation value has a different associated language tag, however, when there are more than one value for the same language tag, we do not have a way for the user to state which one is the preferred one, and selecting rendering by annotation property will result in the system arbitrarily picking one of the available values without allowing the user to select among the available choices.

Notice that depending on how such feature gets implemented, there may be the need to store the selection in the project file, hence it may need a modification of the graphol file schema.

Example Use Cases

Consider for example the situation where you have several synonyms for the same resource:

my:Q123 rdfs:label "Car"@en, "Automobile"@en.

assuming the current preferred language is English, when selecting render by -> rdfs:label, the user has no way of selecting whether she prefers to view the resource my:Q123 with the value "Car" or "Automobile".

mnamici commented 1 year ago

I removed the graphol label to remark that if we end up implementing this feature we should do it in a way that does not cause interference if the project file is shared between multiple users, meaning it should not be saved in the graphol file.