semanticarts / gist

Semantic Arts gist upper enterprise ontology
Creative Commons Attribution 4.0 International
153 stars 18 forks source link

Magnitude has an infinite regress of precisions #980

Open uscholdm opened 11 months ago

uscholdm commented 11 months ago

Currently every Magnitude has a precision that is also a Magnitude. So if I weigh myself as 80kg on my scale at home that is accurate to 500g, then the precision is the Magnitude that represents 500g. But according to gist, that Magnitude also has a precision, which also has a precision, ad infinitum. I cannot think what it might mean for a precision to have a precision.

The problem is that the precision characterizes the weighing event and the accuracy of the scale, not the magnitude itself. The magnitude itself is just a number and a unit; it's a mathematical construct used to describe the physical world. If 10 different people weigh in at 80kg on 10 different scales, with different accuracies, there need only be a single magnitude instance for 80kg, and the 10 measuring events would each have a precision based on the scale and possibly other factors.

Proposal:

skos:scopeNote "the event of measuring a person's weight at the doctor's office may have an associated precision of 1 pound"^^xsd:string ; 
dylan-sa commented 10 months ago

Yes, I agree that precisions aren't inherent to magnitudes; it's probably particular measurements (like weighing events) that have precisions, as you suggest. I'd be in favor of removing the restriction.

I see some discussion of a gist:Measurement class here: https://github.com/semanticarts/gist/issues/18. I'm not advocating that we add the class, but may be worth considering.

sa-bpelakh commented 9 months ago

Agree w/ @dylan-sa , precision is an aspect of a measurement (or even a sensor, in an IoT world), and does not belong on every Magnitude. In case of use case where measurements vary widely in precision, a sub-class PreciseMagnitude can be defined which bakes precision into every instance.

philblackwood commented 4 months ago

Precision is actually precision of the measurement method, but can also be interpreted as likelihood of error in the value of the measurement.

I think this is resolved by the interpretation given with hasPrecision in the new Units of Measure:

skos:scopeNote "A typical way to use precision is to have it represent 2 standard deviations of the distribution of measurement errors. With this convention, when the measurement method is well-calibrated (has an average error of zero), there is a 95% chance that the actual error in measurement, in either direction, is less than the precision.

(also implies the measurement method results in a normal distribution of errors)

uscholdm commented 4 months ago

Precision is actually precision of the measurement method, but can also be interpreted as likelihood of error in the value of the measurement.

"Can be" is one thing, which is fine. However, that is optional. Putting a precision restriction on a magnitude seems to be incorrectly forcing that view.

uscholdm commented 4 months ago

Copied from https://github.com/semanticarts/gist/pull/1064

@philblackwood comments and asks:

To which I reply:

philblackwood commented 4 months ago

Michael, my question was if there are any negative consequences to the fact that precision can have a precision. It seems to be a fact, even though in practice it is probably almost never done. If you think the object of hasPrecision is not a magnitude, then what should it be?

philblackwood commented 4 months ago

Does anybody disagree with the following scope note for hasPrecision?

A typical way to use precision is to have it represent 2 standard deviations of the distribution of measurement errors. With this convention, when the measurement method is well-calibrated (has an average error of zero), there is a 95% chance that the actual error in measurement, in either direction, is less than the precision.

uscholdm commented 4 months ago

Michael, my question was if there are any negative consequences to the fact that precision can have a precision. It seems to be a fact, even though in practice it is probably almost never done.

I don't think it is a fact that a precision can have precision, frankly I cannot think of what that might mean. Even it it could have a precision, that is different from requiring every precision in principle to always have a precision.

If you think the object of hasPrecision is not a magnitude, then what should it be?

I presume you mean range? I think it makes sense for the property to have range as gist:Magnitude. I think it is incorrect to require every magnitude used a precision to itself have a precision. Others have agreed with the idea that precision is a property of the measuring, not of the magnitude that results. So to repeat, my proposal is:

skos:scopeNote "the event of measuring a person's weight at the doctor's office may have an associated precision of 1 pound"^^xsd:string ; 

Keeping the precision restriction on Magnitude is controversial and not obviously correct, so the conservative approach is to leave it off. This causes no harm to anyone, who may for practical reasons choose to add a precision to a magnitude, despite the idea of precision being a property of the measuring, not the resulting magnitude as others have noted in this thread.

Given there are no practical downsides of leaving the restriction out, to include it requires some theoretical and or practical benefits to justify its inclusion. I can't think of any.

philblackwood commented 4 months ago

"Doctors say that Nordberg has a 50-50 chance of living, though there's only a 10 percent chance of that."

uscholdm commented 4 months ago

Does anybody disagree with the following scope note for hasPrecision?

A typical way to use precision is to have it represent 2 standard deviations of the distribution of measurement errors. With this convention, when the measurement method is well-calibrated (has an average error of zero), there is a 95% chance that the actual error in measurement, in either direction, is less than the precision.

This is quite technical, after reading it a few times, I'm still not entirely sure I get it. How about something simple like: skos:scopeNote "the event of measuring a person's weight at the doctor's office may have an associated precision of 1 pound"^^xsd:string ;

kchastain703 commented 4 months ago

When I was working with scientific instrument/measurement modelling, we had the precision as a property of the instrument used to take the measurement. With the water quality sensors, they would often list the precision in the user manual, or could be found online. So, that might be another way to handle it? I do agree that having the precision on the Magnitude doesn't quite feel right to me, though.

philblackwood commented 4 months ago

I removed hasPrecision from the class equivalence statement for Magnitude.

The precision is a characteristic of the measurement method, and if that is not modeled it is also valid to use hasPrecision with a Magnitude.