Ho un programma che elabora misure di diversi tipi, utilizzando unità diverse. Ad esempio, chilometri, miglia e metri. O sterline, chilogrammi e once. Ogni valore deve essere associato a un identificatore di unità.
Sto pensando di usare urna, invece di stringhe, per identificare l'unità. Ad esempio:
urn:mycompany.com:unit:distance:mile
urn:mycompany.com:unit:duration:second
urn:mycompany.com:unit:speed:knot
Ma che dire dei moltiplicatori?
urn:mycompany.com:unit:distance:meter
urn:mycompany.com:unit:distance:kilometer
urn:mycompany.com:unit:distance:centimeter
Non mi piace contrassegnare ciascuna di esse come un'urna separata, perché sono fondamentalmente la stessa unità, usando solo un fattore di moltiplicazione differente. E inoltre, significa che devo creare 13 diverse versioni di ciascuna unità in questo modo.
E per quanto riguarda le unità derivate, come mph?
urn:mycompany.com:unit:speed:mph
urn:mycompany.com:unit:speed:miles_per_hour
urn:mycompany.com:unit:speed:(unit:distance:mile/unit:duration:hour)
In qualche modo mi piace quest'ultimo, il migliore, ma è anche un'urna valida? E se no, come posso cambiarlo in modo che sia?
E questo è un semplice esempio. Prendiamo la definizione scientifica di Joule come kg * m ^ 2 / s ^ 2.
urn:mycompany.com:unit:energy:(unit:mass:kilogram*unit:distance:meter*unit:distance:meter/(unit:duration:second*unit:duration:second))