pubid-nist 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +25 -0
  3. data/README.adoc +727 -0
  4. data/exe/pubid-nist +97 -0
  5. data/lib/pubid/nist/document.rb +286 -0
  6. data/lib/pubid/nist/document_parser.rb +34 -0
  7. data/lib/pubid/nist/document_transform.rb +21 -0
  8. data/lib/pubid/nist/edition.rb +26 -0
  9. data/lib/pubid/nist/errors.rb +5 -0
  10. data/lib/pubid/nist/nist_tech_pubs.rb +110 -0
  11. data/lib/pubid/nist/parsers/default.rb +107 -0
  12. data/lib/pubid/nist/parsers/fips_pub.rb +8 -0
  13. data/lib/pubid/nist/parsers/nbs_bh.rb +6 -0
  14. data/lib/pubid/nist/parsers/nbs_circ.rb +21 -0
  15. data/lib/pubid/nist/parsers/nbs_crpl.rb +17 -0
  16. data/lib/pubid/nist/parsers/nbs_csm.rb +11 -0
  17. data/lib/pubid/nist/parsers/nbs_fips.rb +14 -0
  18. data/lib/pubid/nist/parsers/nbs_hb.rb +31 -0
  19. data/lib/pubid/nist/parsers/nbs_ir.rb +29 -0
  20. data/lib/pubid/nist/parsers/nbs_lc.rb +21 -0
  21. data/lib/pubid/nist/parsers/nbs_mn.rb +6 -0
  22. data/lib/pubid/nist/parsers/nbs_mp.rb +9 -0
  23. data/lib/pubid/nist/parsers/nbs_rpt.rb +13 -0
  24. data/lib/pubid/nist/parsers/nbs_sp.rb +13 -0
  25. data/lib/pubid/nist/parsers/nbs_tn.rb +9 -0
  26. data/lib/pubid/nist/parsers/nist_gcr.rb +14 -0
  27. data/lib/pubid/nist/parsers/nist_hb.rb +8 -0
  28. data/lib/pubid/nist/parsers/nist_ir.rb +29 -0
  29. data/lib/pubid/nist/parsers/nist_ncstar.rb +7 -0
  30. data/lib/pubid/nist/parsers/nist_owmwp.rb +11 -0
  31. data/lib/pubid/nist/parsers/nist_sp.rb +53 -0
  32. data/lib/pubid/nist/parsers/nist_tn.rb +13 -0
  33. data/lib/pubid/nist/publisher.rb +43 -0
  34. data/lib/pubid/nist/serie.rb +27 -0
  35. data/lib/pubid/nist/stage.rb +28 -0
  36. data/lib/pubid/nist/version.rb +5 -0
  37. data/lib/pubid/nist.rb +33 -0
  38. data/lib/pubid-nist.rb +3 -0
  39. data/publishers.yaml +6 -0
  40. data/series.yaml +139 -0
  41. data/stages.yaml +5 -0
  42. data/update_codes.yaml +58 -0
  43. metadata +213 -0
@@ -0,0 +1,21 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsCirc < Default
4
+ rule(:revision) do
5
+ ((str("rev") >> (letters >> year_digits).as(:revision)) |
6
+ (str("r") >> digits.as(:revision))
7
+ )
8
+ end
9
+
10
+ rule(:report_number) do
11
+ first_report_number >> edition.maybe >> (str("-") >> second_report_number).maybe
12
+ end
13
+
14
+ rule(:edition) do
15
+ (str("sup") >> str("").as(:supplement) >>
16
+ (letters.as(:edition_month) >> year_digits.as(:edition_year))) |
17
+ ((str("e") | str("-")) >> (digits.as(:edition) | letters.as(:edition_month) >> year_digits.as(:edition_year)))
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsCrpl < Default
4
+ rule(:first_report_number) do
5
+ (digits >> str("-m").maybe).as(:first_report_number)
6
+ end
7
+
8
+ rule(:part) do
9
+ str("_") >> (digits >> str("-") >> digits).as(:part)
10
+ end
11
+
12
+ rule(:supplement) do
13
+ str("A").as(:supplement)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsCsm < Default
4
+ rule(:identifier) do
5
+ (str(" ") | str(".")) >> report_number.maybe >> parts.repeat.as(:parts)
6
+ end
7
+
8
+ rule(:part_prefixes) { str("n") }
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsFips < Default
4
+ rule(:edition) do
5
+ str("-") >> (
6
+ (month_letters.as(:edition_month) >> year_digits.as(:edition_year)) |
7
+ year_digits.as(:edition_year) |
8
+ (month_letters.as(:edition_month) >> match('\d').repeat(2, 2).as(:edition_day) >>
9
+ str("/") >> year_digits.as(:edition_year))
10
+ )
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,31 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsHb < Default
4
+ # found patterns:
5
+ # 44e2-1955 -> 44e2
6
+ # 146v1-1991
7
+ # 105-1-1990 -> 105-1e1990
8
+ # 111r1977 / 146v1
9
+ # 130-1979 -> 130e1979
10
+ # 105-8 -> 105-8
11
+ # 28supp1957pt1
12
+ # 67suppFeb1965
13
+
14
+ rule(:edition) do
15
+ (str("supp") >> str("").as(:supplement) >>
16
+ (letters.as(:edition_month) >> year_digits.as(:edition_year)) |
17
+ str("e") >> year_digits.as(:edition_year)
18
+ )
19
+ end
20
+
21
+ rule(:report_number) do
22
+ digits.as(:first_report_number) >> volume.maybe >>
23
+ (str("e") >> digits.as(:edition) >> (str("-") >> digits).maybe |
24
+ str("-") >> year_digits.as(:edition_year) |
25
+ str("-") >> digits.as(:second_report_number) >> str("-") >> year_digits.as(:edition_year) |
26
+ str("-") >> digits_with_suffix.as(:second_report_number)
27
+ ).maybe
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,29 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsIr < Default
4
+ rule(:second_report_number) do
5
+ (match('[\d.]').repeat(1) >> number_suffix.maybe).as(:second_report_number)
6
+ end
7
+
8
+ rule(:report_number) do
9
+ (first_report_number >>
10
+ (str("-") >> second_report_number).maybe
11
+ ).capture(:report_number) >>
12
+ # parse last part as volume for specific document numbers
13
+ dynamic do |_source, context|
14
+ report_number = context.captures[:report_number]
15
+ .values_at(:first_report_number, :second_report_number).join("-")
16
+ if %w[74-577 77-1420].include?(report_number)
17
+ str("-") >> match('\d').as(:volume)
18
+ else
19
+ self
20
+ end
21
+ end.maybe
22
+ end
23
+
24
+ rule(:part_prefixes) do
25
+ str("pt") | str("p") | str("-")
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,21 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsLc < Default
4
+ rule(:supplement) do
5
+ (str("supp") | str("sup")) >>
6
+ ((str("").as(:supplement) >> digits.as(:update_month) >> str("/") >> digits.as(:update_year)) |
7
+ match('\d').repeat.as(:supplement))
8
+ end
9
+
10
+ rule(:revision) do
11
+ str("r") >>
12
+ ((digits.as(:update_month) >> str("/") >> digits.as(:update_year)) |
13
+ digits.as(:revision))
14
+ end
15
+
16
+ # suffixes for LCIRC 378
17
+ rule(:number_suffix) { match("[abcdefghA-Z]") }
18
+ end
19
+ end
20
+ end
21
+
@@ -0,0 +1,6 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsMn < Default
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsMp < Default
4
+ rule(:edition) do
5
+ (str("e") >> digits.as(:edition)) | (str("(") >> digits.as(:edition) >> str(")"))
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsRpt < Default
4
+ rule(:report_number) do
5
+ (month_letters >>
6
+ str("-") >> (month_letters >> year_digits)).as(:report_number) |
7
+ (digits >> str("-") >> (digits | str("A"))).as(:report_number) |
8
+ (digits >> (str("a") | str("b")).maybe).as(:report_number) |
9
+ (str("ADHOC") | str("div9")).as(:report_number)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsSp < Default
4
+ rule(:part_prefixes) do
5
+ str("p") | str("P")
6
+ end
7
+
8
+ rule(:volume) do
9
+ str("v") >> (match('[\da-z-]').repeat(1) >> match("[A-Z]").repeat).as(:volume)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NbsTn < Default
4
+ rule(:second_report_number) do
5
+ (digits_with_suffix | str("A")).as(:second_report_number)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,14 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NistGcr < Default
4
+ rule(:report_number) do
5
+ (digits >>
6
+ str("-") >> digits >> (str("-") >> digits).maybe).as(:report_number)
7
+ end
8
+
9
+ rule(:volume) do
10
+ str("v") >> (digits >> match('[A-Z]').repeat).as(:volume)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ require_relative "nbs_hb"
2
+
3
+ module Pubid::Nist
4
+ module Parsers
5
+ class NistHb < NbsHb
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,29 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NistIr < Default
4
+ rule(:number_suffix) { match("[abcA-Z]") }
5
+
6
+ rule(:revision) do
7
+ str("r") >> (digits | month_letters >> year_digits).as(:revision)
8
+ end
9
+
10
+ rule(:report_number) do
11
+ (year_digits.as(:first_report_number) >>
12
+ str("-") >> year_digits.as(:edition_year)) |
13
+ first_report_number >> (str("-") >>
14
+ ((digits | match("[aAB]") | str("CAS") | str("FRA")) >>
15
+ # for extra number for NIST IR 85-3273-10
16
+ (str("-") >> digits).maybe).as(:second_report_number)).maybe
17
+ end
18
+
19
+ rule(:revision) do
20
+ str("r") >>
21
+ ((digits.as(:update_month) >> str("/") >> digits.as(:update_year)) |
22
+ (month_letters.as(:update_month) >> year_digits.as(:update_year)) |
23
+ digits.as(:revision) |
24
+ str("").as(:revision))
25
+ end
26
+ end
27
+ end
28
+ end
29
+
@@ -0,0 +1,7 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NistNcstar < Default
4
+ rule(:number_suffix) { match("[abcdefghijA-Z]") }
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NistOwmwp < Default
4
+ rule(:report_number) do
5
+ digits_with_suffix.as(:first_report_number) >>
6
+ (str("-") >> (digits_with_suffix >> (str("-") >> digits_with_suffix).maybe)
7
+ .as(:second_report_number)).maybe
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,53 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NistSp < Default
4
+ rule(:version) do
5
+ ((str("ver") >> (digits >> (str(".") >> digits).maybe).as(:version)) |
6
+ (str("v") >>
7
+ (match('\d') >> str(".") >> match('\d') >> (str(".") >> match('\d')).maybe).as(:version)))
8
+ end
9
+
10
+ rule(:number_suffix) { match["[A-Zabcd]"] }
11
+
12
+ rule(:first_report_number) do
13
+ digits >> (str("GB") | str("a")).maybe
14
+ end
15
+
16
+ rule(:report_number) do
17
+ # (\d+-\d{1,3}).as(:report_number)
18
+ # (\d+-\d{4}).as(:report_number) when first number is 250
19
+ # (\d+).as(:report_number)-(\d{4}).as(:edition)
20
+ # or \d-\d-(\d).as(:revision)
21
+ (first_report_number.capture(:first_number).as(:first_report_number) >>
22
+ (str("-") >>
23
+ dynamic do |_source, context|
24
+ # consume 4 numbers or any amount of numbers
25
+ # for document ids starting from 250
26
+ (if context.captures[:first_number] == "250"
27
+ digits
28
+ else
29
+ # do not consume edition numbers (parse only if have not 4 numbers)
30
+ year_digits.absent? >> digits
31
+ end >> number_suffix.maybe
32
+ # parse last number as edition if have 4 numbers
33
+ ) | (str("NCNR") | str("PERMIS") | str("BFRL"))
34
+ end.as(:second_report_number)
35
+ # parse A-Z and abcd as part of report number
36
+ ).maybe
37
+ )
38
+ end
39
+
40
+ rule(:edition) do
41
+ ((str("e") >> year_digits.as(:edition_year)) | (str("-") >> year_digits.as(:edition_year)) |
42
+ (str("e") >> digits.as(:edition)))
43
+ end
44
+
45
+ rule(:revision) do
46
+ ((str("rev") | str("r")) >> (digits >> match("[a-z]").maybe).as(:revision)) |
47
+ (str("-") >> digits.as(:revision)) |
48
+ (str("r") >> match("[a-z]").as(:revision)) |
49
+ (str("r") >> str("").as(:revision))
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,13 @@
1
+ module Pubid::Nist
2
+ module Parsers
3
+ class NistTn < Default
4
+ rule(:report_number) do
5
+ first_report_number
6
+ end
7
+
8
+ rule(:edition_prefixes) do
9
+ str("-") | str("e")
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,43 @@
1
+ PUBLISHERS = YAML.load_file(File.join(File.dirname(__FILE__),
2
+ "../../../publishers.yaml"))
3
+
4
+ module Pubid::Nist
5
+ class Publisher
6
+ attr_accessor :publisher
7
+
8
+ def initialize(publisher:)
9
+ @publisher = publisher
10
+ end
11
+
12
+ def to_s(format = :short)
13
+ return @publisher if %i[short mr].include?(format)
14
+
15
+ PUBLISHERS[format.to_s][@publisher]
16
+ end
17
+
18
+ def ==(other)
19
+ other.publisher == @publisher
20
+ end
21
+
22
+ def self.publishers_keys
23
+ PUBLISHERS["long"].keys
24
+ end
25
+
26
+ def self.parse(code)
27
+ publisher = /(#{PUBLISHERS["long"].keys.join('|')})/.match(code)
28
+ return new(publisher: publisher.to_s) if publisher
29
+
30
+ publisher = /(#{PUBLISHERS["long"].values.join('|')})(?=\.|\s)/.match(code)
31
+ return new(publisher: PUBLISHERS["long"].key(publisher.to_s)) if publisher
32
+
33
+ publisher = /(#{PUBLISHERS["abbrev"].values.join('|')})(?=\.|\s)/.match(code)
34
+ return new(publisher: PUBLISHERS["abbrev"].key(publisher.to_s)) if publisher
35
+
36
+ new(publisher: "NIST")
37
+ end
38
+
39
+ def self.regexp
40
+ /(#{PUBLISHERS["long"].keys.join('|')})(?=\.|\s)/
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,27 @@
1
+ SERIES = YAML.load_file(File.join(File.dirname(__FILE__), "../../../series.yaml"))
2
+
3
+ module Pubid::Nist
4
+ class Serie
5
+ attr_accessor :serie, :parsed
6
+
7
+ def initialize(serie:, parsed: nil)
8
+ @serie = serie
9
+ @parsed = parsed
10
+ end
11
+
12
+ def to_s(format = :short)
13
+ return @serie if format == :short
14
+
15
+ result = SERIES[format.to_s][@serie]
16
+ return @serie if result.nil? && format == :mr
17
+
18
+ return SERIES["long"][@serie] if result.nil?
19
+
20
+ result
21
+ end
22
+
23
+ def ==(other)
24
+ other.serie == @serie
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,28 @@
1
+ STAGES = YAML.load_file(File.join(File.dirname(__FILE__), "../../../stages.yaml"))
2
+
3
+ module Pubid::Nist
4
+ class Stage
5
+ attr_accessor :stage
6
+
7
+ def initialize(stage)
8
+ @stage = stage
9
+ end
10
+
11
+ def to_s(format = :short)
12
+ return "" if nil?
13
+
14
+ case format
15
+ when :short
16
+ "(#{@stage})"
17
+ when :mr
18
+ @stage
19
+ else
20
+ STAGES[@stage]
21
+ end
22
+ end
23
+
24
+ def nil?
25
+ @stage.nil?
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,5 @@
1
+ module Pubid
2
+ module Nist
3
+ VERSION = "0.1.8".freeze
4
+ end
5
+ end
data/lib/pubid/nist.rb ADDED
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "yaml"
4
+ require "parslet"
5
+
6
+ module Pubid
7
+ module Nist
8
+
9
+ end
10
+ end
11
+
12
+ require_relative "nist/serie"
13
+ require_relative "nist/parsers/default"
14
+ require_relative "nist/document_transform"
15
+ require_relative "nist/document_parser"
16
+
17
+ Dir[File.join(__dir__, 'nist/parsers', '*.rb')].each do |file|
18
+ require file
19
+ end
20
+
21
+ PARSERS_CLASSES = Pubid::Nist::Parsers.constants.select do |c|
22
+ Pubid::Nist::Parsers.const_get(c).is_a?(Class)
23
+ end.map do |parser_class|
24
+ parser = Pubid::Nist::Parsers.const_get(parser_class)
25
+ [parser.name.split("::").last.gsub(/(.)([A-Z])/, '\1 \2').upcase, parser]
26
+ end.to_h
27
+
28
+ require_relative "nist/document"
29
+ require_relative "nist/publisher"
30
+ require_relative "nist/stage"
31
+ require_relative "nist/errors"
32
+ require_relative "nist/nist_tech_pubs"
33
+ require_relative "nist/edition"
data/lib/pubid-nist.rb ADDED
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "pubid/nist"
data/publishers.yaml ADDED
@@ -0,0 +1,6 @@
1
+ long:
2
+ NIST: National Institute of Standards and Technology
3
+ NBS: National Bureau of Standards
4
+ abbrev:
5
+ NIST: Natl. Inst. Stand. Technol.
6
+ NBS: Natl. Bur. Stand.
data/series.yaml ADDED
@@ -0,0 +1,139 @@
1
+ long:
2
+ NIST AMS: Advanced Manufacturing Standard
3
+ NIST BSS: Building Science Series
4
+ NBS BSS: Building Science Series
5
+ NBS BMS: Building Material Structures Report
6
+ NBS BRPD-CRPL-D: Basic Radio Propagation Predictions Series
7
+ NBS BH: Building and Housing Reports
8
+ NBS CRPL: Central Radio Propagation Laboratory Reports
9
+ NBS CRPL-F-A: CRPL Ionospheric Data
10
+ NBS CRPL-F-B: CRPL Solar-Geophysical Data
11
+ NBS IP: CRPL Ionospheric Predictions
12
+ NBS CIRC: Circulars
13
+ NBS CIS: Consumer Information Series
14
+ NBS CS: Commercial Standards
15
+ NBS CS-E: Commercial Standards (emergency)
16
+ NBS CSM: Commercial Standards Monthly
17
+ NBS FIPS: Federal Information Processing Standards Publication
18
+ FIPS PUB: Federal Information Processing Standards Publication
19
+ NIST GCR: Grant/Contract Reports
20
+ NBS GCR: Grant/Contract Reports
21
+ NIST HB: Handbook
22
+ NBS HB: Handbook
23
+ NBS HR: Hydraulic Research in the United States
24
+ NBS IRPL: Interservice Radio Propagation Laboratory
25
+ ITL Bulletin: ITL Bulletin
26
+ NIST LC: Letter Circular
27
+ NBS LC: Letter Circular
28
+ NIST MN: Monograph
29
+ NBS MN: Monograph
30
+ NBS MP: Miscellaneous Publications
31
+ NIST NCSTAR: National Construction Safety Team Report
32
+ NIST NSRDS: National Standard Reference Data Series
33
+ NSRDS-NBS: National Standard Reference Data Series
34
+ NIST IR: Interagency or Internal Report
35
+ NBS IR: Interagency or Internal Report
36
+ NIST OWMWP: Office of Weights and Measures White Papers
37
+ NBS PC: Photographic Circulars
38
+ NBS RPT: Reports
39
+ NIST PS: Voluntary Product Standards
40
+ NBS SIBS: Special Interior Ballistics Studies
41
+ NBS PS: Voluntary Product Standards
42
+ NIST SP: Special Publication
43
+ NBS SP: Special Publication
44
+ NIST TN: Technical Note
45
+ NBS TN: Technical Note
46
+ NBS TIBM: Technical Information on Building Materials
47
+ NIST TTB: Technology Transfer Brief
48
+ NIST DCI: Data Collection Instruments
49
+ NIST EAB: Economic Analysis Brief
50
+ NIST Other: Other
51
+ CSRC White Paper: Cybersecurity Resource Center White Paper
52
+ CSRC Book: Cybersecurity Resource Center Book
53
+ CSRC Use Case: Cybersecurity Resource Center Use Case
54
+ CSRC Building Block: Cybersecurity Resource Center Building Block
55
+ JPCRD: Journal of Physical and Chemical Reference Data
56
+ JRES: Journal of Research of NIST
57
+ abbrev:
58
+ NIST AMS: Adv. Man. Ser
59
+ NIST BSS: Bldg. Sci. Ser.
60
+ NBS BSS: Bldg. Sci. Ser.
61
+ NBS FIPS: Federal Inf. Process. Stds.
62
+ FIPS PUB: Federal Inf. Process. Stds.
63
+ NIST HB: Handb.
64
+ NBS HB: Handb.
65
+ NIST MN: Monogr.
66
+ NBS MN: Monogr.
67
+ NIST NCSTAR: Natl. Constr. Tm. Act Rpt.
68
+ NIST NSRDS: Natl. Stand. Ret. Data Ser.
69
+ NSRDS-NBS: Natl. Stand. Ret. Data Ser.
70
+ NIST PS: Prod. Stand.
71
+ NBS PS: Prod. Stand.
72
+ NIST SP: Spec. Publ.
73
+ NBS SP: Spec. Publ.
74
+ NIST TN: Tech. Note
75
+ NBS TN: Tech. Note
76
+ NIST DCI: Data Collect. Instr.
77
+ NIST Other: Other
78
+ CSRC White Paper: CSWP
79
+ CSRC Book: CSRC Book
80
+ CSRC Use Case: CSRC Use Case
81
+ CSRC Building Block: CSRC Building Block
82
+ JPCRD: J. Phys. & Chem. Ref. Data
83
+ JRES: J. Res. Natl. Inst. Stan.
84
+ mr:
85
+ NIST AMS: NIST.AMS
86
+ NIST BSS: NIST.BSS
87
+ NBS BSS: NBS.BSS
88
+ NBS BMS: NBS.BMS
89
+ NBS BRPD-CRPL-D: NBS.BRPD-CRPL-D
90
+ NBS BH: NBS.BH
91
+ NBS CRPL: NBS.CRPL
92
+ NBS CRPL-F-A: NBS.CRPL-F-A
93
+ NBS CRPL-F-B: NBS CRPL-F-B
94
+ NBS IP: NBS.IP
95
+ NBS CIRC: NBS.CIRC
96
+ NBS CIS: NBS.CIS
97
+ NBS CS: NBS.CS
98
+ NBS CS-E: NBS.CS-E
99
+ NBS CSM: NBS.CSM
100
+ NBS FIPS: NBS.FIPS
101
+ FIPS PUB: NIST.FIPS
102
+ NIST GCR: NIST.GCR
103
+ NBS GCR: NBS.GCR
104
+ NIST HB: NIST.HB
105
+ NBS HB: NBS.HB
106
+ NBS HR: NBS.HR
107
+ NBS IRPL: NBS.IRPL
108
+ ITL Bulletin: NIST.ITLB
109
+ NIST LC: NIST.LC
110
+ NBS LC: NBS.LC
111
+ NIST MN: NIST.MN
112
+ NBS MN: NBS.MN
113
+ NBS MP: NBS.MP
114
+ NIST NCSTAR: NIST.NCSTAR
115
+ NIST NSRDS: NIST.NSRDS
116
+ NSRDS-NBS: NBS.NSRDS
117
+ NIST IR: NIST.IR
118
+ NBS IR: NBS.IR
119
+ NIST OWMWP: NIST.OWMWP
120
+ NBS PC: NBS.PC
121
+ NBS RPT: NBS.RPT
122
+ NIST PS: NIST.PS
123
+ NBS SIBS: NBS.SIBS
124
+ NBS PS: NBS.PS
125
+ NIST SP: NIST.SP
126
+ NBS SP: NBS.SP
127
+ NIST TN: NIST.TN
128
+ NBS TN: NBS.TN
129
+ NBS TIBM: NBS.TIBM
130
+ NIST TTB: NIST.TTB
131
+ NIST DCI: NIST.DCI
132
+ NIST EAB: NIST.EAB
133
+ NIST Other: NIST.O
134
+ CSRC White Paper: NIST.CSWP
135
+ CSRC Book: NIST.CSB
136
+ CSRC Use Case: NIST.CSUC
137
+ CSRC Building Block: NIST.CSBB
138
+ JPCRD: JPCRD
139
+ JRES: NIST.JRES
data/stages.yaml ADDED
@@ -0,0 +1,5 @@
1
+ IPD: Initial Public Draft
2
+ 2PD: Second Public Draft
3
+ FPD: Final Public Draft
4
+ WD: Work-in-Progress Draft
5
+ PRD: Preliminary Draft