Hi Martin, +1 to:
keep the class names as they stand today (with "Range" name everywhere) and explain in the javadoc the relationship with the ISO 19123 concept of "ranges" Cheers, Chris On 2/15/13 1:18 PM, "Martin Desruisseaux" <[email protected]> wrote: >Hello all > >Reminder: the issue is about renaming "range" as "interval" in the >"org.apache.sis.measure" package [1] for avoiding name clash with the >ISO 19123 (Schema for coverage geometry and functions [2]) concept of >range. > >I have trouble finding proper class names. We currently have: > > * Range - a range of any kind of Comparables (not necessarily numeric). > * NumberRange - a range where Comparables are restricted to Numbers > * MeasurementRange - a NumberRange with a unit of measurement. > > >The word "Interval" seems a perfect match for the current "NumberRange". >The Wikipedia definition for "interval" [3] describes exactly the >"NumberRange" behaviour: including/excluding endpoints, infinite >endpoints, formatting... Even the discussion about whether infinite >endpoints are inclusive or exclusive matches the NumberRange >implementation choice :-). Problem is: "Interval" seems to be used >exclusively for interval of numbers. For example I could easily find >"character range" and "ordinal range" on Google, but have been unable to >find "character interval" (or the definitions that I found were >something completely different). While I found someone using the words >"Numeric Interval" [4], this usage seems to be rare and do not answer >the question "do non-numeric intervals exist?". > >Second problem: I couldn't find how to rename "MeasurementRange". >Apparently, almost everyone on the web use the term "measurement >interval" for another purpose (namely: the time elapsed between two >measurements in a time series). Furthermore many web sites use >"measurement range" for exactly what the "MeasurementRange" class is. >Consequently renaming "MeasurementRange" as "MeasurementInterval" would >probably cause a more severe confusion than the one we are trying to >solve. > >In summary: > > * Renaming "MeasurementRange" to "MeasurementInterval" seems out of > the question. > * Renaming "NumberRange" to "NumericInterval" would be okay. > * Renaming "Range" to "Interval" would be so-so, because "interval" > seems to imply "numeric interval" in the majority of cases. > > So I'm tempted to either keep the class names as they stand today >(with "Range" name everywhere) and explain in the javadoc the >relationship with the ISO 19123 concept of "ranges", or either rename >only "NumericRange" as "Interval" and leave all other names unchanged: > > * pro: > o Class names "Range", "Interval" and "MeasurementRange" are the > most accurate names I can see for what those classes are. > o On those 3 above classes, "NumberRange" was by far the most > frequently used one, and renaming that class as "Interval" give > him a lovely name which is both short and mathematically accurate. > o In particular, the class used in context of ISO 19123 > implementation will be mostly NumberRange, so renaming only that > class as "Interval" may be sufficient for avoiding a name clash > with the ISO 19123 concept of range. > * cons: > o The hierarchy would be "MeasurementRange extends Interval > extends Range". The "Interval" class name would look like a > foreigner in the middle of all those classes using the "Range" >word. > > >Any opinions? > > Martin > > >[1] >https://builds.apache.org/job/sis-jdk7/site/apidocs/org/apache/sis/measure >/package-summary.html >[2] http://www.opengeospatial.org/standards/as (topic 6) >[3] http://en.wikipedia.org/wiki/Interval_%28mathematics%29 >[4] http://www.gabormelli.com/RKB/Numeric_Interval >
