pubid-nist 0.1.8

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.
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