Closed mgberg closed 9 months ago
@mgberg, I like the thorough descriptions and distinctions between Reflectivity and Reflectance. I do have a question concerning the applicableUnits. The way you have the skos:broader relations defined, Reflectance will have all the dimensionless ratio applicable units, even though your description states reflectance is always between 0.0 and 1.0. Is that OK with you, as a domain expert? The alternative is to have the suitable units just refer directly to Reflectance and to Reflectivity as appropriate.
If so, Would unit:FRACTION be the best one for Reflectance? Do you want to have explicit real and imaginary scalar units for Reflectivity? (We do that for electrical AC power: ActivePower and ReactivePower)
Eventually we plan to ramp up our use of datatypes beyond scalars...
What say you?
@steveraysteveray Good question. I guess it partially depends on how the different units are intended to be used. We have data in which some sources report "fractional" values (including for Reflectivity/Reflectance) as a unitless number (i.e. 0-1) and other sources report the same kind of values as a percent (i.e. 0-100). Consequently, I have internally defined that unit:PERCENT
has a conversion multiplier of 0.01
such that we can convert between unit:PERCENT
and unit:FRACTION
or unit:UNITLESS
as needed, as it currently has no conversion multiplier. I'd actually be curious to know what you think about adding that conversion multiplier (unless we're using it incorrectly😆).
Also, are some units intended to only have values between 0 and 1 (or 0 and 100, or some other range)? I don't seem to recall that being captured or described anywhere but I could be wrong. It could be a good capability.
As for inheriting all the units- as I mentioned above, we have lots of different sources reporting values in different units depending on the context (e.g. length scale), and dimensionless numbers are one of the worst offenders (which is why a while ago I had to add unit:PPTM
). For that reason, I tend to lean toward being more flexible than less. However, if the community disagrees with that premise, I'd be happy to apply a restricted set of units for Reflectance including at least UNITLESS
and PERCENT
.
As described here and here, reflectivity/reflectance should always be a positive real number.
Responding from the bottom up:
I'm leaning toward restricting the units for Reflectance, mostly because of the disconnect between the description and the applicableUnit values. Let's see if others have opinions. If we go that way, then you would need distinct references from Reflectivity to quantity kinds.
Regarding restricting values (0-1 or 0-100), we do have qudt:floatPercentage as a datatype. It's defined that way in the OWL schema, but the OWL stuff crept into the SHACL version as well, which needs fixing. We could do something similar for 0-1.
Finally, I support your suggestion of the conversion multiplier for unit:PERCENT to be 0.01. Makes perfect sense to me.
Yup, I missed qudt:floatPercentage
- that might be useful.
I have no problem with being more restrictive- I've updated this to include 3 units explicitly.
I also added the conversion multiplier to PERCENT
.
This includes the following changes:
Reflectivity
as a narrower Quantity Kind thanReflectance
.Reflectance
(and thereforeReflectivity
).quantitykind:Refectance
.unit:PERCENT
.