miledrousset / Opentheso

Nouvelle version du logiciel Opentheso avec un nouveau design
Other
26 stars 11 forks source link

Ordering Terms #100

Closed jpadfield closed 4 months ago

jpadfield commented 4 months ago

Hi,

I was looking at how one might order lists of terms. Alphabetically on pref-label is the obvious one, but I have a use case where I want to order a short list of terms in a different way and I wanted to ask if there is a recommendation for this.

The options I have identified are making use of the following skos properties:

  1. Use skos:notation: This property can be used to assign a code or an identifier to a concept that can be used for sorting.
  2. Use skos:sortLabel: This property can be used to assign a label specifically intended for ordering purposes.

However, Although Opentheso allows "Synonyms" but these are added as altLabels so the sortLabel option would probably not work.

These obviously relate to the core term, alternatively would it be possible to do anything in relation to ordering a specific "Collection"?

So, it looks like using skos:notation would be the most realistic option but I just wanted to check.

Thanks

Joe

miledrousset commented 4 months ago

Hello, The two sorting methods integrated into Opentheso are alphabetical and by notation. AltLabels are sorted alphabetically by default.

I don't know the property (skos:sortLabel), if you have any documentation on this, I'd be interested.

Best regards Miled

jpadfield commented 4 months ago

Hmm, it seems sortLabel may not actually be "standard" ... just something some people have used .. which is a shame as it looked useful .. I will continue to use "notation"

Thanks

miledrousset commented 4 months ago

After that, you can always try to improve things by adding properties other than Skos, but to help me, I'd need examples to see if it's feasible or not.

jpadfield commented 4 months ago

I think the notation should work. One thing to consider I suppose, is have you used "notation" for anything else?

I am basically working on a simplified/re-formatted output of group data from OpenTheso so it can be directly pushed into controlled list fields in JSON Schema documents.

I just had a request to re-order one of the lists today and I wanted to avoid the simple option of sticking a number at the front of the label for the obvious reasons.

I have just about got the code working with notation now, though I need to fix an extra option which "promotes" special values, if they are present in the list, such as "other" or "non applicable", which I seem to have broken when adding the notation option. :-)

If you are interested the code is at: https://github.com/E-RIHS/controlled-lists With the live version at: https://hdl.handle.net/21.11158/0003-a375-bce0-4571

I have tried to pull all of the configuration details out into a config file so it could be pointed at any instance of OpenTheso

jpadfield commented 4 months ago

OK, I have found a potential problem with this - the system only allows unique values for notation - so simple numbers can not be used to reorder more than one group.

miledrousset commented 4 months ago

The notation is a unique classification code for thesauri, defined by the standard. So, in effect, you can only find this code once in a thesaurus.

miledrousset commented 4 months ago

I think the notation should work. One thing to consider I suppose, is have you used "notation" for anything else?

I am basically working on a simplified/re-formatted output of group data from OpenTheso so it can be directly pushed into controlled list fields in JSON Schema documents.

I just had a request to re-order one of the lists today and I wanted to avoid the simple option of sticking a number at the front of the label for the obvious reasons.

I have just about got the code working with notation now, though I need to fix an extra option which "promotes" special values, if they are present in the list, such as "other" or "non applicable", which I seem to have broken when adding the notation option. :-)

If you are interested the code is at: https://github.com/E-RIHS/controlled-lists With the live version at: https://hdl.handle.net/21.11158/0003-a375-bce0-4571

I have tried to pull all of the configuration details out into a config file so it could be pointed at any instance of OpenTheso

I looked at it, and it's a bit difficult to understand the system that's in place and how it's used. But I managed to follow the links and relationships.