asciimath2unitsml 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +14 -0
- data/README.adoc +4 -1
- data/asciimath2unitsml.gemspec +1 -1
- data/lib/asciimath2unitsml/conv.rb +48 -17
- data/lib/asciimath2unitsml/parse.rb +14 -22
- data/lib/asciimath2unitsml/render.rb +12 -5
- data/lib/asciimath2unitsml/unit.rb +1 -1
- data/lib/asciimath2unitsml/version.rb +1 -1
- data/lib/unitsdb/dimensions.yaml +31 -31
- data/lib/unitsdb/quantities.yaml +26 -19
- data/lib/unitsdb/units.yaml +27 -217
- data/lib/unitsdb_ruby/unitsdb.rb +1 -0
- data/spec/conv_spec.rb +339 -109
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfcf63b9b9f9f447f63f744608bb19423025756a5f174a123acb5fbecb2143a4
|
4
|
+
data.tar.gz: a45ba18eb0b8090ba886453bedf91ed18f531afc31061a90e9f33a6bc6e0085b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61c26594d8ab5b4ab07439085ce23de798b8f4e38c0272790a60d64a247f10a19778e4d0cbdb37b9a3a79d6994a6a14ebf97c0dd031551366019ebe2905c5612
|
7
|
+
data.tar.gz: e60ff3e91ff37a31ac3d5ac0beccb30c5f05c9c9590e1cc0dd01915ff1c9b57520af1d11b14c1b718173d7258a41b318f67db4a509ccd3ed3b4af43501b50d87
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
.rubocop-https--*
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# This project follows the Ribose OSS style guide.
|
2
|
+
# https://github.com/riboseinc/oss-guides
|
3
|
+
# All project-specific additions and overrides should be specified in this file.
|
4
|
+
inherit_from:
|
5
|
+
- https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
|
6
|
+
|
7
|
+
# local repo-specific modifications
|
8
|
+
|
9
|
+
AllCops:
|
10
|
+
DisplayCopNames: false
|
11
|
+
StyleGuideCopsOnly: false
|
12
|
+
TargetRubyVersion: 2.4
|
13
|
+
Rails:
|
14
|
+
Enabled: true
|
data/README.adoc
CHANGED
@@ -53,6 +53,8 @@ from UnitsDB. For example, `unitsml(cal_th/cm^2, name: langley)`.
|
|
53
53
|
The unit-string gives the canonical representation of the unit, but SYMBOL is what will be rendered.
|
54
54
|
For example, `unitsml(cal_th/cm^2, name: langley, symbol: La)`, or `unitsml(mm*s^-2, symbol: mm cdot s^-2)`.
|
55
55
|
(All variables in SYMBOL are rendered upright, as is the default for units.)
|
56
|
+
* `unitsml(unit-string, multiplier: SYMBOL)` provides an alternate symbol for the multiliper of
|
57
|
+
units. The options are an XML entity, or the values `space` or `nospace` (for which see discussion under _Usage_).
|
56
58
|
|
57
59
|
Standalone prefixes can be recognised by replacing the unit with hyphen; so `unitsml(p-)` corresponds
|
58
60
|
to the standalone prefix "pico" (and is rendered as "p").
|
@@ -230,7 +232,7 @@ This table can be generated (in Asciidoc format) through `Asciimath2UnitsML::Con
|
|
230
232
|
| ton | ton of TNT (energy equivalent): `ton_TNT` | ton of refrigeration (12 000 Btu_IT/h): `ton_refrigeration` | | | |
|
231
233
|
| tsp | teaspoon: `tsp` | teaspoon (FDA): `tsp_label` | | | |
|
232
234
|
| yd | yard: `yd` | yard (based on US survey foot): `yd_US_survey` | | | |
|
233
|
-
| &#
|
235
|
+
| ° | degree (degree of arc): `deg` | | | | |
|
234
236
|
| γ | gamma: `gamma` | | | | |
|
235
237
|
| μ | micron: `micron` | | | | |
|
236
238
|
| Ω | ohm: `Ohm` | | | | |
|
@@ -258,3 +260,4 @@ This table can be generated (in Asciidoc format) through `Asciimath2UnitsML::Con
|
|
258
260
|
| °R | degree Rankine: `degR` | | | | |
|
259
261
|
| ƛ~C~ | natural unit of length: `lambda-bar_C` | | | | |
|
260
262
|
|===
|
263
|
+
|
data/asciimath2unitsml.gemspec
CHANGED
@@ -57,7 +57,7 @@ Gem::Specification.new do |spec|
|
|
57
57
|
spec.add_development_dependency "guard-rspec", "~> 4.7"
|
58
58
|
spec.add_development_dependency "rake", "~> 12.0"
|
59
59
|
spec.add_development_dependency "rspec", "~> 3.6"
|
60
|
-
spec.add_development_dependency "rubocop", "
|
60
|
+
spec.add_development_dependency "rubocop", "~> 1.5.2"
|
61
61
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
62
62
|
spec.add_development_dependency "timecop", "~> 0.9"
|
63
63
|
spec.add_development_dependency "rexml"
|
@@ -10,21 +10,25 @@ require_relative "unit"
|
|
10
10
|
|
11
11
|
module Asciimath2UnitsML
|
12
12
|
MATHML_NS = "http://www.w3.org/1998/Math/MathML".freeze
|
13
|
-
UNITSML_NS = "
|
13
|
+
UNITSML_NS = "https://schema.unitsml.org/unitsml/1.0".freeze
|
14
14
|
|
15
15
|
class Conv
|
16
16
|
def initialize(options = {})
|
17
|
-
@dimensions_id = read_yaml("../unitsdb/dimensions.yaml").
|
17
|
+
@dimensions_id = read_yaml("../unitsdb/dimensions.yaml").
|
18
|
+
each_with_object({}) do |(k, v), m|
|
18
19
|
m[k.to_s] = UnitsDB::Dimension.new(k, v)
|
19
20
|
end
|
20
|
-
@prefixes_id = read_yaml("../unitsdb/prefixes.yaml").
|
21
|
+
@prefixes_id = read_yaml("../unitsdb/prefixes.yaml").
|
22
|
+
each_with_object({}) do |(k, v), m|
|
21
23
|
m[k] = UnitsDB::Prefix.new(k, v)
|
22
24
|
end
|
23
25
|
@prefixes = flip_name_and_symbol(@prefixes_id)
|
24
|
-
@quantities = read_yaml("../unitsdb/quantities.yaml").
|
26
|
+
@quantities = read_yaml("../unitsdb/quantities.yaml").
|
27
|
+
each_with_object({}) do |(k, v), m|
|
25
28
|
m[k.to_s] = UnitsDB::Quantity.new(k, v)
|
26
29
|
end
|
27
|
-
@units_id = read_yaml("../unitsdb/units.yaml").
|
30
|
+
@units_id = read_yaml("../unitsdb/units.yaml").
|
31
|
+
each_with_object({}) do |(k, v), m|
|
28
32
|
m[k.to_s] = UnitsDB::Unit.new(k.to_s, v)
|
29
33
|
end
|
30
34
|
@units = flip_name_and_symbols(@units_id)
|
@@ -48,7 +52,7 @@ module Asciimath2UnitsML
|
|
48
52
|
<PrefixSymbol type="ASCII">#{@prefixes[p].ascii}</PrefixSymbol>
|
49
53
|
<PrefixSymbol type="unicode">#{@prefixes[p].unicode}</PrefixSymbol>
|
50
54
|
<PrefixSymbol type="LaTeX">#{@prefixes[p].latex}</PrefixSymbol>
|
51
|
-
<PrefixSymbol type="HTML">#{
|
55
|
+
<PrefixSymbol type="HTML">#{htmlent @prefixes[p].html}</PrefixSymbol>
|
52
56
|
</Prefix>
|
53
57
|
END
|
54
58
|
end.join("\n")
|
@@ -63,9 +67,26 @@ module Asciimath2UnitsML
|
|
63
67
|
END
|
64
68
|
end
|
65
69
|
|
70
|
+
U2D = {
|
71
|
+
"m" => { dimension: "Length", order: 1, symbol: "L" },
|
72
|
+
"g" => { dimension: "Mass", order: 2, symbol: "M" },
|
73
|
+
"kg" => { dimension: "Mass", order: 2, symbol: "M" },
|
74
|
+
"s" => { dimension: "Time", order: 3, symbol: "T" },
|
75
|
+
"A" => { dimension: "ElectricCurrent", order: 4, symbol: "I" },
|
76
|
+
"K" => { dimension: "ThermodynamicTemperature", order: 5,
|
77
|
+
symbol: "Theta" },
|
78
|
+
"degK" => { dimension: "ThermodynamicTemperature", order: 5,
|
79
|
+
symbol: "Theta" },
|
80
|
+
"mol" => { dimension: "AmountOfSubstance", order: 6, symbol: "N" },
|
81
|
+
"cd" => { dimension: "LuminousIntensity", order: 7, symbol: "J" },
|
82
|
+
"deg" => { dimension: "PlaneAngle", order: 8, symbol: "Phi" },
|
83
|
+
}.freeze
|
84
|
+
|
66
85
|
def units2dimensions(units)
|
67
86
|
norm = decompose_units(units)
|
68
|
-
return if norm.any?
|
87
|
+
return if norm.any? do |u|
|
88
|
+
u[:unit] == "unknown" || u[:prefix] == "unknown" || u[:unit].nil?
|
89
|
+
end
|
69
90
|
norm.map do |u|
|
70
91
|
{ dimension: U2D[u[:unit]][:dimension],
|
71
92
|
unit: u[:unit],
|
@@ -75,7 +96,8 @@ module Asciimath2UnitsML
|
|
75
96
|
end
|
76
97
|
|
77
98
|
def dimension1(u)
|
78
|
-
%(<#{u[:dimension]} symbol="#{u[:symbol]}"
|
99
|
+
%(<#{u[:dimension]} symbol="#{u[:symbol]}"
|
100
|
+
powerNumerator="#{float_to_display(u[:exponent])}"/>)
|
79
101
|
end
|
80
102
|
|
81
103
|
def dim_id(dims)
|
@@ -84,9 +106,11 @@ module Asciimath2UnitsML
|
|
84
106
|
dimsvector = %w(Length Mass Time ElectricCurrent ThermodynamicTemperature
|
85
107
|
AmountOfSubstance LuminousIntensity PlaneAngle)
|
86
108
|
.map { |h| dimhash.dig(h, :exponent) }.join(":")
|
87
|
-
id = @dimensions_id&.values&.select { |d| d.vector == dimsvector }&.
|
109
|
+
id = @dimensions_id&.values&.select { |d| d.vector == dimsvector }&.
|
110
|
+
first&.id and return id.to_s
|
88
111
|
"D_" + dims.map do |d|
|
89
|
-
U2D[d[:unit]][:symbol] +
|
112
|
+
U2D[d[:unit]][:symbol] +
|
113
|
+
(d[:exponent] == 1 ? "" : float_to_display(d[:exponent]))
|
90
114
|
end.join("")
|
91
115
|
end
|
92
116
|
|
@@ -98,9 +122,12 @@ module Asciimath2UnitsML
|
|
98
122
|
units.sort { |a, b| a[:unit] <=> b[:unit] }.each_with_object([]) do |k, m|
|
99
123
|
if m.empty? || m[-1][:unit] != k[:unit] then m << k
|
100
124
|
else
|
101
|
-
m[-1] = {
|
102
|
-
|
103
|
-
|
125
|
+
m[-1] = {
|
126
|
+
prefix: combine_prefixes(
|
127
|
+
@prefixes[m[-1][:prefix]], @prefixes[k[:prefix]]),
|
128
|
+
unit: m[-1][:unit],
|
129
|
+
exponent: (k[:exponent]&.to_f || 1) +
|
130
|
+
(m[-1][:exponent]&.to_f || 1) }
|
104
131
|
end
|
105
132
|
end
|
106
133
|
end
|
@@ -115,8 +142,10 @@ module Asciimath2UnitsML
|
|
115
142
|
{ prefix: u[:prefix], unit: "unknown", exponent: u[:exponent] }
|
116
143
|
else
|
117
144
|
@units[u[:unit]].si_derived_bases.each_with_object([]) do |k, m|
|
118
|
-
|
119
|
-
|
145
|
+
prefix = !k[:prefix].nil? && !k[:prefix].empty? ?
|
146
|
+
combine_prefixes(@prefixes_id[k[:prefix]], @prefixes[u[:prefix]]) :
|
147
|
+
u[:prefix]
|
148
|
+
m << { prefix: prefix,
|
120
149
|
unit: @units_id[k[:id]].symbolid,
|
121
150
|
exponent: (k[:power]&.to_i || 1) * (u[:exponent]&.to_f || 1) }
|
122
151
|
end
|
@@ -143,9 +172,11 @@ module Asciimath2UnitsML
|
|
143
172
|
end
|
144
173
|
|
145
174
|
def quantity(normtext, quantity)
|
146
|
-
return unless @units[normtext] && @units[normtext].quantities.size == 1 ||
|
175
|
+
return unless @units[normtext] && @units[normtext].quantities.size == 1 ||
|
176
|
+
@quantities[quantity]
|
147
177
|
id = quantity || @units[normtext].quantities.first
|
148
|
-
|
178
|
+
@units[normtext]&.dimension and
|
179
|
+
dim = %( dimensionURL="##{@units[normtext].dimension}")
|
149
180
|
<<~END
|
150
181
|
<Quantity xmlns='#{UNITSML_NS}' xml:id="#{id}"#{dim} quantityType="base">
|
151
182
|
#{quantityname(id)}
|
@@ -87,7 +87,7 @@ module Asciimath2UnitsML
|
|
87
87
|
prefix2 = /#{@prefixes.keys.select { |x| x.size == 2 }.join("|")}/.r
|
88
88
|
prefix1 = /#{@prefixes.keys.select { |x| x.size == 1 }.join("|")}/.r
|
89
89
|
unit_keys = @units.keys.reject do |k|
|
90
|
-
|
90
|
+
/\*|\^|\/|^1$/.match(k) || @units[k].prefixed
|
91
91
|
end.map { |k| Regexp.escape(k) }
|
92
92
|
unit1 = /#{unit_keys.sort_by(&:length).reverse.join("|")}/.r
|
93
93
|
exponent = /\^\(-?\d+\)/.r.map { |m| m.sub(/\^/, "").gsub(/[()]/, "") } |
|
@@ -123,11 +123,12 @@ module Asciimath2UnitsML
|
|
123
123
|
quantity = text[1..-1]&.select { |x| /^quantity:/.match(x) }&.first&.sub(/^quantity:\s*/, "")
|
124
124
|
name = text[1..-1]&.select { |x| /^name:/.match(x) }&.first&.sub(/^name:\s*/, "")
|
125
125
|
symbol = text[1..-1]&.select { |x| /^symbol:/.match(x) }&.first&.sub(/^symbol:\s*/, "")
|
126
|
+
multiplier = text[1..-1]&.select { |x| /^multiplier:/.match(x) }&.first&.sub(/^multiplier:\s*/, "")
|
126
127
|
normtext = units_only(units).each.map do |u|
|
127
128
|
exp = u[:exponent] && u[:exponent] != "1" ? "^#{u[:exponent]}" : ""
|
128
129
|
"#{u[:prefix]}#{u[:unit]}#{exp}"
|
129
130
|
end.join("*")
|
130
|
-
[units, text[0], normtext, quantity, name, symbol]
|
131
|
+
[units, text[0], normtext, quantity, name, symbol, multiplier]
|
131
132
|
end
|
132
133
|
|
133
134
|
def postprocess1(units)
|
@@ -143,19 +144,6 @@ module Asciimath2UnitsML
|
|
143
144
|
end
|
144
145
|
end
|
145
146
|
|
146
|
-
U2D = {
|
147
|
-
"m" => { dimension: "Length", order: 1, symbol: "L" },
|
148
|
-
"g" => { dimension: "Mass", order: 2, symbol: "M" },
|
149
|
-
"kg" => { dimension: "Mass", order: 2, symbol: "M" },
|
150
|
-
"s" => { dimension: "Time", order: 3, symbol: "T" },
|
151
|
-
"A" => { dimension: "ElectricCurrent", order: 4, symbol: "I" },
|
152
|
-
"K" => { dimension: "ThermodynamicTemperature", order: 5, symbol: "Theta" },
|
153
|
-
"degK" => { dimension: "ThermodynamicTemperature", order: 5, symbol: "Theta" },
|
154
|
-
"mol" => { dimension: "AmountOfSubstance", order: 6, symbol: "N" },
|
155
|
-
"cd" => { dimension: "LuminousIntensity", order: 7, symbol: "J" },
|
156
|
-
"deg" => { dimension: "PlaneAngle", order: 8, symbol: "Phi" },
|
157
|
-
}.freeze
|
158
|
-
|
159
147
|
def Asciimath2UnitsML(expression)
|
160
148
|
xml = Nokogiri::XML(asciimath2mathml(expression))
|
161
149
|
MathML2UnitsML(xml).to_xml
|
@@ -167,18 +155,22 @@ module Asciimath2UnitsML
|
|
167
155
|
xml.xpath(".//m:mtext", "m" => MATHML_NS).each do |x|
|
168
156
|
next unless %r{^unitsml\(.+\)$}.match(x.text)
|
169
157
|
text = x.text.sub(%r{^unitsml\((.+)\)$}m, "\\1")
|
170
|
-
units, origtext, normtext, quantity, name, symbol = parse(text)
|
171
|
-
rendering = symbol ? embeddedmathml(asciimath2mathml(symbol)) :
|
172
|
-
|
173
|
-
x.replace("#{
|
158
|
+
units, origtext, normtext, quantity, name, symbol, multiplier = parse(text)
|
159
|
+
rendering = symbol ? embeddedmathml(asciimath2mathml(symbol)) :
|
160
|
+
mathmlsymbol(units, false, multiplier)
|
161
|
+
x.replace("#{delimspace(rendering, x)}<mrow xref='#{unit_id(origtext)}'>#{rendering}</mrow>\n"\
|
174
162
|
"#{unitsml(units, origtext, normtext, quantity, name)}")
|
175
163
|
end
|
176
164
|
dedup_ids(xml)
|
177
165
|
end
|
178
166
|
|
179
|
-
|
180
|
-
|
181
|
-
|
167
|
+
# if previous sibling's last descendent non-whitespace is MathML and mn or mi, no space
|
168
|
+
def delimspace(rendering, elem)
|
169
|
+
prec_text_elem = elem.xpath("./preceding-sibling::*[namespace-uri() = '#{MATHML_NS}']/"\
|
170
|
+
"descendant::text()[normalize-space()!=''][last()]/parent::*").last
|
171
|
+
return "" if prec_text_elem.nil? || !%w(mn mi).include?(prec_text_elem&.name)
|
172
|
+
text = HTMLEntities.new.encode(Nokogiri::XML("<mrow>#{rendering}</mrow>").text.strip)
|
173
|
+
/\p{L}|\p{N}/.match(text) ?
|
182
174
|
"<mo rspace='thickmathspace'>⁢</mo>" : "<mo>⁢</mo>"
|
183
175
|
end
|
184
176
|
|
@@ -15,6 +15,11 @@ module Asciimath2UnitsML
|
|
15
15
|
@symbols[unit][style] || unit
|
16
16
|
end
|
17
17
|
|
18
|
+
def htmlent(x)
|
19
|
+
HTMLEntities.new.decode(x).split(/([<>&])/)
|
20
|
+
.map { |c| /[<>'"]/.match(c) ? c : HTMLEntities.new.encode(c, :hexadecimal) }.join
|
21
|
+
end
|
22
|
+
|
18
23
|
def htmlsymbol(units, normalise)
|
19
24
|
units.map do |u|
|
20
25
|
if u[:multiplier] then u[:multiplier] == "*" ? @multiplier[:html] : u[:multiplier]
|
@@ -37,11 +42,12 @@ module Asciimath2UnitsML
|
|
37
42
|
base
|
38
43
|
end
|
39
44
|
|
40
|
-
def mathmlsymbol(units, normalise)
|
45
|
+
def mathmlsymbol(units, normalise, multiplier = nil)
|
46
|
+
multiplier = multiplier ? "<mo>#{multiplier}</mo>" : @multiplier[:mathml]
|
41
47
|
exp = units.map do |u|
|
42
|
-
if u[:multiplier] then u[:multiplier] == "*" ?
|
48
|
+
if u[:multiplier] then u[:multiplier] == "*" ? multiplier : "<mo>#{u[:multiplier]}</mo>"
|
43
49
|
elsif u[:unit].nil? && u[:prefix]
|
44
|
-
%(<mi mathvariant='normal'>#{@prefixes[u[:prefix]].html}</mi>)
|
50
|
+
%(<mi mathvariant='normal'>#{htmlent(@prefixes[u[:prefix]].html)}</mi>)
|
45
51
|
else
|
46
52
|
mathmlsymbol1(u, normalise)
|
47
53
|
end
|
@@ -51,9 +57,10 @@ module Asciimath2UnitsML
|
|
51
57
|
def mathmlsymbol1(u, normalise)
|
52
58
|
base = render(normalise ? @units[u[:unit]].symbolid : u[:unit], :mathml)
|
53
59
|
if u[:prefix]
|
60
|
+
prefix = htmlent(@prefixes[u[:prefix]].html)
|
54
61
|
base = base.match(/<mi mathvariant='normal'>/) ?
|
55
|
-
base.sub(/<mi mathvariant='normal'>/, "<mi mathvariant='normal'>#{
|
56
|
-
"<mrow><mi mathvariant='normal'>#{
|
62
|
+
base.sub(/<mi mathvariant='normal'>/, "<mi mathvariant='normal'>#{prefix}") :
|
63
|
+
"<mrow><mi mathvariant='normal'>#{prefix}#{base}</mrow>"
|
57
64
|
end
|
58
65
|
mathmlsymbol_exponent(u, base)
|
59
66
|
end
|
@@ -7,7 +7,7 @@ module Asciimath2UnitsML
|
|
7
7
|
def unit_id(text)
|
8
8
|
text = text.gsub(/[()]/, "")
|
9
9
|
/-$/.match(text) and return @prefixes[text.sub(/-$/, "")].id
|
10
|
-
"U_" + (@units[text] ? @units[text].id : text.gsub(/\*/, ".").gsub(/\^/, ""))
|
10
|
+
"U_" + (@units[text] ? @units[text].id.gsub(/'/, "_") : text.gsub(/\*/, ".").gsub(/\^/, ""))
|
11
11
|
end
|
12
12
|
|
13
13
|
def unit(units, origtext, normtext, dims, name)
|
data/lib/unitsdb/dimensions.yaml
CHANGED
@@ -753,50 +753,50 @@ NISTd75:
|
|
753
753
|
powerNumerator: 1
|
754
754
|
symbol: I
|
755
755
|
|
756
|
-
NISTd85:
|
757
|
-
|
756
|
+
#NISTd85:
|
757
|
+
#dimensionless: true
|
758
758
|
|
759
|
-
NISTd84:
|
760
|
-
|
759
|
+
#NISTd84:
|
760
|
+
#dimensionless: true
|
761
761
|
|
762
|
-
NISTd87:
|
763
|
-
|
762
|
+
#NISTd87:
|
763
|
+
#dimensionless: true
|
764
764
|
|
765
|
-
NISTd86:
|
766
|
-
|
765
|
+
#NISTd86:
|
766
|
+
#dimensionless: true
|
767
767
|
|
768
|
-
NISTd81:
|
769
|
-
|
768
|
+
#NISTd81:
|
769
|
+
#dimensionless: true
|
770
770
|
|
771
771
|
NISTd80:
|
772
|
-
|
772
|
+
dimensionless: true
|
773
773
|
|
774
|
-
NISTd83:
|
775
|
-
|
774
|
+
#NISTd83:
|
775
|
+
#dimensionless: true
|
776
776
|
|
777
|
-
NISTd82:
|
778
|
-
|
777
|
+
#NISTd82:
|
778
|
+
#dimensionless: true
|
779
779
|
|
780
|
-
NISTd95:
|
781
|
-
|
780
|
+
#NISTd95:
|
781
|
+
#dimensionless: true
|
782
782
|
|
783
|
-
NISTd94:
|
784
|
-
|
783
|
+
#NISTd94:
|
784
|
+
#dimensionless: true
|
785
785
|
|
786
|
-
NISTd89:
|
787
|
-
|
786
|
+
#NISTd89:
|
787
|
+
#dimensionless: true
|
788
788
|
|
789
|
-
NISTd88:
|
790
|
-
|
789
|
+
#NISTd88:
|
790
|
+
#dimensionless: true
|
791
791
|
|
792
|
-
NISTd91:
|
793
|
-
|
792
|
+
#NISTd91:
|
793
|
+
#dimensionless: true
|
794
794
|
|
795
|
-
NISTd90:
|
796
|
-
|
795
|
+
#NISTd90:
|
796
|
+
#dimensionless: true
|
797
797
|
|
798
|
-
NISTd92:
|
799
|
-
|
798
|
+
#NISTd92:
|
799
|
+
#dimensionless: true
|
800
800
|
|
801
|
-
NISTd93:
|
802
|
-
|
801
|
+
#NISTd93:
|
802
|
+
#dimensionless: true
|
data/lib/unitsdb/quantities.yaml
CHANGED
@@ -1153,13 +1153,13 @@ NISTq88:
|
|
1153
1153
|
url: "#NISTu14.u10e-1/1"
|
1154
1154
|
|
1155
1155
|
NISTq111:
|
1156
|
-
dimension_url: "#
|
1156
|
+
dimension_url: "#NISTd80"
|
1157
1157
|
quantity_type: derived
|
1158
1158
|
quantity_name:
|
1159
1159
|
- rotation
|
1160
1160
|
unit_reference:
|
1161
1161
|
- name: one
|
1162
|
-
url: "#
|
1162
|
+
url: "#NISTu61"
|
1163
1163
|
|
1164
1164
|
NISTq112:
|
1165
1165
|
dimension_url: "#NISTd24"
|
@@ -1234,13 +1234,13 @@ NISTq118:
|
|
1234
1234
|
url: "#NISTu154"
|
1235
1235
|
|
1236
1236
|
NISTq121:
|
1237
|
-
dimension_url: "#
|
1237
|
+
dimension_url: "#NISTd80"
|
1238
1238
|
quantity_type: derived
|
1239
1239
|
quantity_name:
|
1240
1240
|
- logarithmic decrement
|
1241
1241
|
unit_reference:
|
1242
1242
|
- name: one
|
1243
|
-
url: "#
|
1243
|
+
url: "#NISTu61"
|
1244
1244
|
- name: neper
|
1245
1245
|
url: "#NISTu153"
|
1246
1246
|
|
@@ -1385,14 +1385,14 @@ NISTq124:
|
|
1385
1385
|
url: "#NISTu1e-1/1"
|
1386
1386
|
|
1387
1387
|
NISTq125:
|
1388
|
-
dimension_url: "#
|
1388
|
+
dimension_url: "#NISTd80"
|
1389
1389
|
quantity_type: derived
|
1390
1390
|
quantity_name:
|
1391
1391
|
- relative mass density
|
1392
1392
|
- relative density
|
1393
1393
|
unit_reference:
|
1394
1394
|
- name: one
|
1395
|
-
url: "#
|
1395
|
+
url: "#NISTu61"
|
1396
1396
|
|
1397
1397
|
NISTq122:
|
1398
1398
|
dimension_url: "#NISTd29"
|
@@ -1546,22 +1546,22 @@ NISTq71:
|
|
1546
1546
|
url: "#NISTu293"
|
1547
1547
|
|
1548
1548
|
NISTq137:
|
1549
|
-
dimension_url: "#
|
1549
|
+
dimension_url: "#NISTd80"
|
1550
1550
|
quantity_type: derived
|
1551
1551
|
quantity_name:
|
1552
1552
|
- shear strain
|
1553
1553
|
unit_reference:
|
1554
1554
|
- name: one
|
1555
|
-
url: "#
|
1555
|
+
url: "#NISTu61"
|
1556
1556
|
|
1557
1557
|
NISTq138:
|
1558
|
-
dimension_url: "#
|
1558
|
+
dimension_url: "#NISTd80"
|
1559
1559
|
quantity_type: derived
|
1560
1560
|
quantity_name:
|
1561
1561
|
- volume strain
|
1562
1562
|
unit_reference:
|
1563
1563
|
- name: one
|
1564
|
-
url: "#
|
1564
|
+
url: "#NISTu61"
|
1565
1565
|
|
1566
1566
|
NISTq139:
|
1567
1567
|
dimension_url: "#NISTd63"
|
@@ -1637,13 +1637,13 @@ NISTq135:
|
|
1637
1637
|
url: "#NISTu12"
|
1638
1638
|
|
1639
1639
|
NISTq136:
|
1640
|
-
dimension_url: "#
|
1640
|
+
dimension_url: "#NISTd80"
|
1641
1641
|
quantity_type: derived
|
1642
1642
|
quantity_name:
|
1643
1643
|
- linear strain
|
1644
1644
|
unit_reference:
|
1645
1645
|
- name: one
|
1646
|
-
url: "#
|
1646
|
+
url: "#NISTu61"
|
1647
1647
|
|
1648
1648
|
NISTq21:
|
1649
1649
|
dimension_url: "#NISTd16"
|
@@ -1672,13 +1672,13 @@ NISTq141:
|
|
1672
1672
|
url: "#NISTu12"
|
1673
1673
|
|
1674
1674
|
NISTq140:
|
1675
|
-
dimension_url: "#
|
1675
|
+
dimension_url: "#NISTd80"
|
1676
1676
|
quantity_type: derived
|
1677
1677
|
quantity_name:
|
1678
1678
|
- Poisson number
|
1679
1679
|
unit_reference:
|
1680
1680
|
- name: one
|
1681
|
-
url: "#
|
1681
|
+
url: "#NISTu61"
|
1682
1682
|
|
1683
1683
|
NISTq22:
|
1684
1684
|
dimension_url: "#NISTd17"
|
@@ -1840,13 +1840,13 @@ NISTq146:
|
|
1840
1840
|
url: "#NISTu209"
|
1841
1841
|
|
1842
1842
|
NISTq147:
|
1843
|
-
dimension_url: "#
|
1843
|
+
dimension_url: "#NISTd80"
|
1844
1844
|
quantity_type: derived
|
1845
1845
|
quantity_name:
|
1846
1846
|
- dynamic friction factor
|
1847
1847
|
unit_reference:
|
1848
1848
|
- name: one
|
1849
|
-
url: "#
|
1849
|
+
url: "#NISTu61"
|
1850
1850
|
|
1851
1851
|
NISTq144:
|
1852
1852
|
dimension_url: "#NISTd57"
|
@@ -2387,13 +2387,13 @@ NISTq95:
|
|
2387
2387
|
url: "#NISTu1"
|
2388
2388
|
|
2389
2389
|
NISTq94:
|
2390
|
-
dimension_url: "#
|
2390
|
+
dimension_url: "#NISTd80"
|
2391
2391
|
quantity_type: derived
|
2392
2392
|
quantity_name:
|
2393
2393
|
- relative permeability
|
2394
2394
|
unit_reference:
|
2395
2395
|
- name: one
|
2396
|
-
url: "#
|
2396
|
+
url: "#NISTu61"
|
2397
2397
|
|
2398
2398
|
NISTq97:
|
2399
2399
|
dimension_url: "#NISTd1"
|
@@ -2413,7 +2413,6 @@ NISTq96:
|
|
2413
2413
|
- name: meter
|
2414
2414
|
url: "#NISTu1"
|
2415
2415
|
|
2416
|
-
|
2417
2416
|
NISTq40:
|
2418
2417
|
dimension_url: "#NISTd25"
|
2419
2418
|
quantity_type: derived
|
@@ -2457,4 +2456,12 @@ NISTq1001:
|
|
2457
2456
|
- name: var
|
2458
2457
|
url: "#NISTu401"
|
2459
2458
|
|
2459
|
+
NISTq1002:
|
2460
|
+
dimension_url: "#NISTd80"
|
2461
|
+
quantity_type: derived
|
2462
|
+
quantity_name:
|
2463
|
+
- nil
|
2464
|
+
unit_reference:
|
2465
|
+
- name: one
|
2466
|
+
url: "#NISTu61"
|
2460
2467
|
|