Contemplating qudt:symbol refactoring - requirements and options #895
Replies: 5 comments 8 replies
-
I believe it would be very helpful for me as a downstream user to know that every unit has a symbol, and that there can be only one. Zero hassle for choosing one or handling absence. No chance of confusing users by showing them different symbols at different times. |
Beta Was this translation helpful? Give feedback.
-
I've noted some unexpected symbols. For example, for |
Beta Was this translation helpful? Give feedback.
-
We discussed this in the QUDT Board and agreed that we do not want to make life difficult for downstream users and applications, so we are adopting Option 1, i.e. only 1 qudt:symbol per unit. It should be noted that sometimes we have multiple aliases for the same unit (unit:LB and unit:LB_M, for example), and sometimes distinct units commonly use the same symbol (unit:BARN and unit:BIT), so the qudt:symbol value cannot be considered a unique identifier. We are open to suggestions for a definitive source when choosing the symbol if there are multiple possibilities. The qudt:symbol will not carry a language tag. This discussion thread is a great place to have a last chance to make the case for a different decision! |
Beta Was this translation helpful? Give feedback.
-
Btw, we have recently also gotten duplicate qudt:ucumCode symbols, but it seems that they are systematically different, example:
could we devise a way of differentiating between them so we can query for the one that we want? |
Beta Was this translation helpful? Give feedback.
-
@fkleedorfer, I just noticed that in addition to the 3 units with multiple symbols, we have 11 QuantityKinds and 1 Currency with multiple values. Recognizing that these classes don't have the naming grammar that we have with Units, do these 12 occurrences cause problems with your software? |
Beta Was this translation helpful? Give feedback.
-
In a recent PR that introduces multiple qudt:symbol triples for a few units, @steveraysteveray suggests a refactoring of 'qudt:symbol' for units:
This PR and the suggestions on how to handle such cases in the future affect my use of QUDT in QUDTLib, and probably other downstream use cases.
For symbols, as they are implemented right now, the rules implicit in the values are very strict. They can be enforced using SHACL, and symbols for derived units can be generated if missing.
Labels are not quite as strict, so SHACL validation would produce too many false positives, but there still is a rather clear (language-dependent) way of generating them if they are not present (Note that there has been a proposal to standardize labels)
So, the situation is better wrt to symbols than with labels when it comes to maintenance. Suggestions 2 and 3 above put symbols in the same category as labels, which will eventually lead to higher maintenance effort and/or lower data quality. They are a good starting point for discussion though.
What would be your requirements for symbols, and what implementation options do you see?
Beta Was this translation helpful? Give feedback.
All reactions