relaton-ietf 1.13.9 → 1.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b96fa3f82bb19b36855beef798e71eb2a0177d1880f828e30aaced44f52bf71
4
- data.tar.gz: 72a784ca4abb5360acf0e1fb691a936357af69925b868fc28969afaf4c2114a2
3
+ metadata.gz: f634b1d5711babffa718bd79a24ea0c6f63ff7213165e9c21fd5c80937f95d05
4
+ data.tar.gz: 5e0e4c0f11353d9fa17f8aaebec14a3ff60b82d030a8dac51d601f1737b07917
5
5
  SHA512:
6
- metadata.gz: 5f1f9a23b72a1055b393fe2ff90b82a8ff56b44d3d24adce776f5f46d3097faf1d87b48f889b616c3f51763e2068b95a97b343e415b88dff426e58bc21a2a8ad
7
- data.tar.gz: 93290a6ded08f86fb1a46465161a45c378569d645cbca6082331ed49ffb3ff526f03e7dfe60a704bc2267ac431d4d0dfddbdb60656d4ad4cf7b9f3a8d97a381d
6
+ metadata.gz: a25a04b4baa551c0c70e1289b2ee26dfdcf2fba6d2cedef99be4269d3f16a80fe0b223cd1f9bd6a174c6ed222fb43b492980b71b847a9b4fa35c7b53590058b4
7
+ data.tar.gz: 0525bd899197f8236a14391a1433182e6387e9ea62b4ebb0474ac29015ce162a925c3b3f5aa94789b0a7d23b8af4cc539ddc4a09dc7bc81052cf8ed3a1622906
data/README.adoc CHANGED
@@ -10,7 +10,7 @@ image:https://img.shields.io/github/commits-since/relaton/relaton-ietf/latest.sv
10
10
 
11
11
  _Formerly known as_ `rfcbib`.
12
12
 
13
- RelatonIetf is a Ruby gem that search and fetch standards from the https://www.ietf.org[Internet Engineering Task Force (IETF)], including RFCs.
13
+ RelatonIetf is a Ruby gem that searches and fetches standards from the https://www.ietf.org[Internet Engineering Task Force (IETF)], including RFCs.
14
14
 
15
15
  The standards scrape form https://www.rfc-editor.org/search/rfc_search.php
16
16
 
@@ -38,6 +38,7 @@ Or install it yourself as:
38
38
  [source,ruby]
39
39
  ----
40
40
  require 'relaton_ietf'
41
+ => true
41
42
 
42
43
  # Fetch RFC document
43
44
  item = RelatonIetf::IetfBibliography.get 'IETF RFC 8341'
@@ -53,7 +54,7 @@ RelatonIetf::IetfBibliography.get 'IETF I-D.draft-abarth-cake-01'
53
54
  => #<RelatonIetf::IetfBibliographicItem:0x00007fdd129bbeb8
54
55
  ...
55
56
 
56
- # Return nil if document doesn't exist.
57
+ # Return nil if a document doesn't exist.
57
58
  RelatonIetf::IetfBibliography.get 'IETF 1111'
58
59
  [relaton-ietf] ("IETF 1111") fetching...
59
60
  [relaton-ietf] ("IETF 1111") not found
@@ -65,38 +66,38 @@ RelatonIetf::IetfBibliography.get 'IETF 1111'
65
66
  [source,ruby]
66
67
  ----
67
68
  item.to_xml
68
- =>"<bibitem id="RFC8341" type="standard">
69
- <fetched>2022-06-10</fetched>
70
- <title type="main" format="text/plain">Network Configuration Access Control Model</title>
71
- <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
72
- <docidentifier type="IETF" primary="true">RFC 8341</docidentifier>
73
- <docidentifier type="IETF" scope="anchor">RFC8341</docidentifier>
74
- <docidentifier type="DOI">10.17487/RFC8341</docidentifier>
75
- ....
76
- </bibitem>"
77
- ----
78
- With `bibdata: true` option XML output wrapped with `bibdata` element and `ext` element added.
69
+ => "<bibitem id="RFC8341" type="standard" schema-version="v1.2.1">
70
+ <fetched>2022-12-03</fetched>
71
+ <title type="main" format="text/plain">Network Configuration Access Control Model</title>
72
+ <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
73
+ <docidentifier type="IETF" primary="true">RFC 8341</docidentifier>
74
+ ....
75
+ </bibitem>"
76
+ ----
77
+ With `bibdata: true` option XML output is wrapped with `bibdata` element and `ext` element added.
79
78
  [source,ruby]
80
79
  ----
81
80
  item.to_xml bibdata: true
82
- =>"<bibdata type="standard">
83
- <fetched>2022-06-10</fetched>
84
- <title type="main" format="text/plain">Network Configuration Access Control Model</title>
85
- <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
86
- ...
87
- <ext>
88
- <editorialgroup>
89
- <committee>netconf</committee>
90
- </editorialgroup>
91
- </ext>
92
- </bibdata>"
81
+ => "<bibdata type="standard" schema-version="v1.2.1">
82
+ <fetched>2022-12-03</fetched>
83
+ <title type="main" format="text/plain">Network Configuration Access Control Model</title>
84
+ <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
85
+ <docidentifier type="IETF" primary="true">RFC 8341</docidentifier>
86
+ <docidentifier type="DOI">10.17487/RFC8341</docidentifier>
87
+ ...
88
+ <ext schema-version="v1.0.0">
89
+ <editorialgroup>
90
+ <committee>netconf</committee>
91
+ </editorialgroup>
92
+ </ext>
93
+ </bibdata>"
93
94
  ----
94
95
 
95
96
  === Typed links
96
97
 
97
- IETF documents may have `src`, `xml`, and `doi` link type.
98
+ IETF documents may have `src`, `xml`, and `doi` link types.
98
99
 
99
- * `src` - web pulication
100
+ * `src` - web publication
100
101
  * `xml` - BibXML publication
101
102
  * `doi` - DOI reference
102
103
 
@@ -114,16 +115,9 @@ item.link
114
115
  item = Relaton::Provider::Ietf.from_rfcxml File.read("spec/examples/rfc.xml")
115
116
  => #<RelatonIetf::IetfBibliographicItem:0x007fa8cda79ab8
116
117
  ...
117
-
118
- item.to_xml bibdata: true
119
- =>"<bibdata>
120
- <fetched>2020-09-15</fetched>
121
- <title format="text/plain" language="en" script="Latn">ACVP Secure Hash Algorithm (SHA) JSON Specification</title>
122
- ...
123
- </bibdata>"
124
118
  ----
125
119
 
126
- === Create bibliographic item form YAML
120
+ === Create bibliographic item from YAML
127
121
  [source,ruby]
128
122
  ----
129
123
  hash = YAML.load_file 'spec/examples/ietf_bib_item.yml'
@@ -137,19 +131,19 @@ RelatonIetf::IetfBibliographicItem.from_hash hash
137
131
 
138
132
  === Fetch data
139
133
 
140
- There are IETF datasets what can be converted into RelatonXML/BibXML/BibYAML formats:
134
+ There are IETF datasets that can be converted into RelatonXML/BibXML/BibYAML formats:
141
135
 
142
136
  - `ietf-rfcsubseries` - https://www.rfc-editor.org/rfc-index.xml (`<bcp-entry>`, `<fyi-entry>`, `<std-entry>`)
143
- - `ietf-internet-drafts` - converts files from local directory `./bibxml-ids`. Use `rsync -avcizxL rsync.ietf.org::bibxml-ids ./bibxml-ids` command to fetch the files.
137
+ - `ietf-internet-drafts` - convert files from local directory `./bibxml-ids`. Use `rsync -avcizxL rsync.ietf.org::bibxml-ids ./bibxml-ids` command to fetch the files.
144
138
  - `ietf-rfc-entries` - https://www.rfc-editor.org/rfc-index.xml (`<rfc-entry>`)
145
139
 
146
- The method `RelatonIetf::DataFetcher.fetch(source, output: "data", format: "yaml")` converts all the documents from the dataset and save them to the `./data` folder in YAML format.
140
+ The method `RelatonIetf::DataFetcher.fetch(source, output: "data", format: "yaml")` converts all the documents from the dataset and saves them to the `./data` folder in YAML format.
147
141
 
148
142
  Arguments:
149
143
 
150
144
  - `source` - dataset name (`ietf-rfcsubseries` or `ietf-internet-drafts`)
151
145
  - `output` - folder to save documents (default './data').
152
- - `format` - format in which the documents are saved. Possimle formats are: `yaml`, `xml`, `bibxml` (default `yaml`).
146
+ - `format` - the format in which the documents are saved. Possible formats are: `yaml`, `xml`, `bibxml` (default `yaml`).
153
147
 
154
148
  [source,ruby]
155
149
  ----
@@ -1,10 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
- <include href="biblio.rng">
4
- <start>
5
- <ref name="document"/>
6
- </start>
7
- </include>
8
3
  <define name="document">
9
4
  <element name="document">
10
5
  <optional>
@@ -688,6 +683,9 @@
688
683
  </define>
689
684
  <define name="underline">
690
685
  <element name="underline">
686
+ <optional>
687
+ <attribute name="style"/>
688
+ </optional>
691
689
  <zeroOrMore>
692
690
  <ref name="PureTextElement"/>
693
691
  </zeroOrMore>
@@ -1125,26 +1123,4 @@
1125
1123
  </zeroOrMore>
1126
1124
  </element>
1127
1125
  </define>
1128
- <define name="ext">
1129
- <element name="ext">
1130
- <ref name="BibDataExtensionType"/>
1131
- </element>
1132
- </define>
1133
- <define name="BibDataExtensionType">
1134
- <ref name="doctype"/>
1135
- </define>
1136
- <define name="doctype">
1137
- <element name="doctype">
1138
- <ref name="DocumentType"/>
1139
- </element>
1140
- </define>
1141
- <define name="DocumentType">
1142
- <value>document</value>
1143
- </define>
1144
- <define name="BibData">
1145
- <ref name="BibliographicItem"/>
1146
- <optional>
1147
- <ref name="ext"/>
1148
- </optional>
1149
- </define>
1150
1126
  </grammar>
@@ -0,0 +1,164 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0">
3
+ <!--
4
+ Add-ons to biblio.rnc for standoc model: defines the extension point BibDataExtensionType
5
+ of relaton
6
+
7
+ Specialisations as for biblio.rnc. Extension point can be redefined completely for a flavour of standoc
8
+ (SDO); but other elements in Bibdata can only be extended (more specialised vocabularies for Bibdata)
9
+ -->
10
+ <include href="biblio.rng">
11
+ <define name="BibData">
12
+ <ref name="BibliographicItem"/>
13
+ <optional>
14
+ <ref name="ext"/>
15
+ </optional>
16
+ </define>
17
+ </include>
18
+ <define name="ext">
19
+ <element name="ext">
20
+ <ref name="BibDataExtensionType"/>
21
+ </element>
22
+ </define>
23
+ <define name="BibDataExtensionType">
24
+ <optional>
25
+ <attribute name="schema-version"/>
26
+ </optional>
27
+ <ref name="doctype"/>
28
+ <optional>
29
+ <ref name="docsubtype"/>
30
+ </optional>
31
+ <optional>
32
+ <ref name="editorialgroup"/>
33
+ </optional>
34
+ <zeroOrMore>
35
+ <ref name="ics"/>
36
+ </zeroOrMore>
37
+ <zeroOrMore>
38
+ <ref name="structuredidentifier"/>
39
+ </zeroOrMore>
40
+ </define>
41
+ <define name="doctype">
42
+ <element name="doctype">
43
+ <optional>
44
+ <attribute name="abbreviation"/>
45
+ </optional>
46
+ <ref name="DocumentType"/>
47
+ </element>
48
+ </define>
49
+ <define name="DocumentType">
50
+ <text/>
51
+ </define>
52
+ <define name="docsubtype">
53
+ <element name="subdoctype">
54
+ <ref name="DocumentSubtype"/>
55
+ </element>
56
+ </define>
57
+ <define name="DocumentSubtype">
58
+ <text/>
59
+ </define>
60
+ <define name="editorialgroup">
61
+ <element name="editorialgroup">
62
+ <oneOrMore>
63
+ <ref name="technical-committee"/>
64
+ </oneOrMore>
65
+ </element>
66
+ </define>
67
+ <define name="technical-committee">
68
+ <element name="technical-committee">
69
+ <ref name="IsoWorkgroup"/>
70
+ </element>
71
+ </define>
72
+ <define name="IsoWorkgroup">
73
+ <optional>
74
+ <attribute name="number"/>
75
+ </optional>
76
+ <optional>
77
+ <attribute name="type"/>
78
+ </optional>
79
+ <optional>
80
+ <attribute name="identifier"/>
81
+ </optional>
82
+ <optional>
83
+ <attribute name="prefix"/>
84
+ </optional>
85
+ <text/>
86
+ </define>
87
+ <define name="ics">
88
+ <element name="ics">
89
+ <element name="code">
90
+ <text/>
91
+ </element>
92
+ <optional>
93
+ <element name="text">
94
+ <text/>
95
+ </element>
96
+ </optional>
97
+ </element>
98
+ </define>
99
+ <define name="structuredidentifier">
100
+ <element name="structuredidentifier">
101
+ <optional>
102
+ <attribute name="type"/>
103
+ </optional>
104
+ <oneOrMore>
105
+ <element name="agency">
106
+ <text/>
107
+ </element>
108
+ </oneOrMore>
109
+ <optional>
110
+ <element name="class">
111
+ <text/>
112
+ </element>
113
+ </optional>
114
+ <element name="docnumber">
115
+ <text/>
116
+ </element>
117
+ <optional>
118
+ <element name="partnumber">
119
+ <text/>
120
+ </element>
121
+ </optional>
122
+ <optional>
123
+ <element name="edition">
124
+ <text/>
125
+ </element>
126
+ </optional>
127
+ <optional>
128
+ <element name="version">
129
+ <text/>
130
+ </element>
131
+ </optional>
132
+ <optional>
133
+ <element name="supplementtype">
134
+ <text/>
135
+ </element>
136
+ </optional>
137
+ <optional>
138
+ <element name="supplementnumber">
139
+ <text/>
140
+ </element>
141
+ </optional>
142
+ <optional>
143
+ <element name="amendment">
144
+ <text/>
145
+ </element>
146
+ </optional>
147
+ <optional>
148
+ <element name="corrigendum">
149
+ <text/>
150
+ </element>
151
+ </optional>
152
+ <optional>
153
+ <element name="language">
154
+ <text/>
155
+ </element>
156
+ </optional>
157
+ <optional>
158
+ <element name="year">
159
+ <text/>
160
+ </element>
161
+ </optional>
162
+ </element>
163
+ </define>
164
+ </grammar>
data/grammars/biblio.rng CHANGED
@@ -33,9 +33,10 @@
33
33
  <param name="pattern">([\+\-]?\d{4})((-?)((0[1-9]|1[0-2])((-?)([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6]))))?</param>
34
34
  </data>
35
35
  </define>
36
- <start>
37
- <ref name="bibitem"/>
38
- </start>
36
+ <!-- start = bibitem -->
37
+ <define name="BibData">
38
+ <ref name="BibliographicItem"/>
39
+ </define>
39
40
  <define name="status">
40
41
  <element name="status">
41
42
  <ref name="stage"/>
@@ -73,8 +74,14 @@
73
74
  <text/>
74
75
  </element>
75
76
  </define>
76
- <define name="script">
77
+ <define name="locale">
77
78
  <a:documentation>ISO-639</a:documentation>
79
+ <element name="locale">
80
+ <text/>
81
+ </element>
82
+ </define>
83
+ <define name="script">
84
+ <a:documentation>ISO-3166</a:documentation>
78
85
  <element name="script">
79
86
  <text/>
80
87
  </element>
@@ -93,6 +100,9 @@
93
100
  <!-- multiple languages and scripts possible: comma delimit them if so -->
94
101
  <attribute name="language"/>
95
102
  </optional>
103
+ <optional>
104
+ <attribute name="locale"/>
105
+ </optional>
96
106
  <optional>
97
107
  <attribute name="script"/>
98
108
  </optional>
@@ -136,6 +146,9 @@
136
146
  <!-- multiple languages and scripts possible: comma delimit them if so -->
137
147
  <attribute name="language"/>
138
148
  </optional>
149
+ <optional>
150
+ <attribute name="locale"/>
151
+ </optional>
139
152
  <optional>
140
153
  <attribute name="script"/>
141
154
  </optional>
@@ -158,27 +171,30 @@
158
171
  </define>
159
172
  <define name="contributor">
160
173
  <element name="contributor">
161
- <zeroOrMore>
174
+ <oneOrMore>
162
175
  <ref name="role"/>
163
- </zeroOrMore>
176
+ </oneOrMore>
164
177
  <ref name="ContributorInfo"/>
165
178
  </element>
166
179
  </define>
167
180
  <define name="role">
168
181
  <element name="role">
169
- <optional>
170
- <attribute name="type">
171
- <choice>
172
- <value>author</value>
173
- <value>performer</value>
174
- <value>publisher</value>
175
- <value>editor</value>
176
- <value>adapter</value>
177
- <value>translator</value>
178
- <value>distributor</value>
179
- </choice>
180
- </attribute>
181
- </optional>
182
+ <attribute name="type">
183
+ <choice>
184
+ <value>author</value>
185
+ <value>performer</value>
186
+ <value>publisher</value>
187
+ <value>editor</value>
188
+ <value>adapter</value>
189
+ <value>translator</value>
190
+ <value>distributor</value>
191
+ <value>realizer</value>
192
+ <value>owner</value>
193
+ <value>authorizer</value>
194
+ <value>enabler</value>
195
+ <value>subject</value>
196
+ </choice>
197
+ </attribute>
182
198
  <zeroOrMore>
183
199
  <ref name="roledescription"/>
184
200
  </zeroOrMore>
@@ -500,6 +516,17 @@
500
516
  </define>
501
517
  <define name="localityStack">
502
518
  <element name="localityStack">
519
+ <optional>
520
+ <attribute name="connective">
521
+ <choice>
522
+ <value>and</value>
523
+ <value>or</value>
524
+ <value>from</value>
525
+ <value>to</value>
526
+ <value/>
527
+ </choice>
528
+ </attribute>
529
+ </optional>
503
530
  <zeroOrMore>
504
531
  <ref name="locality"/>
505
532
  </zeroOrMore>
@@ -512,6 +539,17 @@
512
539
  </define>
513
540
  <define name="sourceLocalityStack">
514
541
  <element name="sourceLocalityStack">
542
+ <optional>
543
+ <attribute name="connective">
544
+ <choice>
545
+ <value>and</value>
546
+ <value>or</value>
547
+ <value>from</value>
548
+ <value>to</value>
549
+ <value/>
550
+ </choice>
551
+ </attribute>
552
+ </optional>
515
553
  <zeroOrMore>
516
554
  <ref name="sourceLocality"/>
517
555
  </zeroOrMore>
@@ -614,6 +652,9 @@
614
652
  <ref name="BibItemType"/>
615
653
  </attribute>
616
654
  </optional>
655
+ <optional>
656
+ <attribute name="schema-version"/>
657
+ </optional>
617
658
  <optional>
618
659
  <ref name="fetched"/>
619
660
  </optional>
@@ -650,6 +691,9 @@
650
691
  <zeroOrMore>
651
692
  <ref name="language"/>
652
693
  </zeroOrMore>
694
+ <zeroOrMore>
695
+ <ref name="locale"/>
696
+ </zeroOrMore>
653
697
  <zeroOrMore>
654
698
  <ref name="script"/>
655
699
  </zeroOrMore>
@@ -705,6 +749,9 @@
705
749
  <ref name="BibItemType"/>
706
750
  </attribute>
707
751
  </optional>
752
+ <optional>
753
+ <attribute name="schema-version"/>
754
+ </optional>
708
755
  <optional>
709
756
  <ref name="fetched"/>
710
757
  </optional>
@@ -741,6 +788,9 @@
741
788
  <zeroOrMore>
742
789
  <ref name="language"/>
743
790
  </zeroOrMore>
791
+ <zeroOrMore>
792
+ <ref name="locale"/>
793
+ </zeroOrMore>
744
794
  <zeroOrMore>
745
795
  <ref name="script"/>
746
796
  </zeroOrMore>
@@ -854,6 +904,15 @@
854
904
  <optional>
855
905
  <attribute name="type"/>
856
906
  </optional>
907
+ <optional>
908
+ <attribute name="language"/>
909
+ </optional>
910
+ <optional>
911
+ <attribute name="locale"/>
912
+ </optional>
913
+ <optional>
914
+ <attribute name="script"/>
915
+ </optional>
857
916
  <data type="anyURI"/>
858
917
  </define>
859
918
  <define name="DateType">
@@ -882,6 +941,7 @@
882
941
  <value>vote-started</value>
883
942
  <value>vote-ended</value>
884
943
  <value>announced</value>
944
+ <value>stable-until</value>
885
945
  </choice>
886
946
  </define>
887
947
  <define name="bdate">
@@ -930,6 +990,9 @@
930
990
  <optional>
931
991
  <attribute name="language"/>
932
992
  </optional>
993
+ <optional>
994
+ <attribute name="locale"/>
995
+ </optional>
933
996
  <optional>
934
997
  <attribute name="script"/>
935
998
  </optional>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0">
3
+ <include href="basicdoc.rng"/>
4
+ <include href="relaton-ietf.rng"/>
5
+ <start>
6
+ <choice>
7
+ <ref name="bibitem"/>
8
+ <ref name="bibdata"/>
9
+ </choice>
10
+ </start>
11
+ </grammar>