relaton-w3c 1.11.4 → 1.12.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: 2c318668fd5a7ef93b5275ac02cfadc9b91832eddeccf5996bc5ea65fc5272b1
4
- data.tar.gz: 431ee27aec817b6d352e5410e2f4bf63710ecfcff47813e03d7e3302a7b42ecd
3
+ metadata.gz: 3bac445b656e3c97ea5e550a1c0d93f41e31a50adb5e04071e95076f139ba35d
4
+ data.tar.gz: bc122a2538c95e1b613f7939de6b6c7e33d98c8b0d1facf48ce94d9fd0dece06
5
5
  SHA512:
6
- metadata.gz: 4254d592bcc1469a7a8773d641e192d07be6d4b0ce247e2b93be490717fc20dc4457718604a5353cf5b0cef6231f2920b03288b776f186df5a8645c5f453d5ed
7
- data.tar.gz: 0c5b07d1efb4f1df3c1505c0b8d2558e7c9bd12d80d1fe7ea483e313f4462a1a1ae8010587f18772dc0288ab0e9573724a9c671d9985427adce5307354f20ee9
6
+ metadata.gz: b2055507b27e70a521e725368d48e063ca3cc2f4d86c84d1476dcac6cda71f06af4ad67c70f466c0b205864d90c704a8084e617054cee1bc4f419a0745d22e1d
7
+ data.tar.gz: 9d7268f28268075c41af992ad40e7769c7a77fb0591e6950f1dee981dc3f1fcaff76821c9cc0d5a8a2508a7390ee8f03b5e61ed8fee77ccc7485717b534d1d88
@@ -10,27 +10,4 @@ on:
10
10
 
11
11
  jobs:
12
12
  rake:
13
- name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
14
- runs-on: ${{ matrix.os }}
15
- continue-on-error: ${{ matrix.experimental }}
16
- strategy:
17
- fail-fast: false
18
- matrix:
19
- ruby: [ '3.0', '2.7', '2.6', '2.5' ]
20
- os: [ ubuntu-latest, windows-latest, macos-latest ]
21
- experimental: [ false ]
22
- steps:
23
- - uses: actions/checkout@v2
24
- with:
25
- submodules: true
26
-
27
- # https://github.com/ruby-debug/debase/issues/89#issuecomment-686827382
28
- - if: matrix.os == 'macos-latest' && matrix.ruby == '2.5'
29
- run: echo BUNDLE_BUILD__DEBASE="--with-cflags=\"-Wno-error=implicit-function-declaration\"" >> $GITHUB_ENV
30
-
31
- - uses: ruby/setup-ruby@v1
32
- with:
33
- ruby-version: ${{ matrix.ruby }}
34
- bundler-cache: true
35
-
36
- - run: bundle exec rake
13
+ uses: relaton/support/.github/workflows/rake.yml@master
data/.rubocop.yml CHANGED
@@ -7,6 +7,6 @@ require: rubocop-rails
7
7
  inherit_from:
8
8
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
9
9
  AllCops:
10
- TargetRubyVersion: 2.5
10
+ TargetRubyVersion: 2.6
11
11
  Rails:
12
12
  Enabled: false
@@ -28,5 +28,5 @@
28
28
  </author>
29
29
  <date day="27" month="May" year="1998"/>
30
30
  </front>
31
- <seriesInfo name="W3C Recommendation" value="REC-DSig-label"/>
31
+ <seriesInfo name="W3C" value="REC-DSig-label"/>
32
32
  </reference>
@@ -22,5 +22,5 @@
22
22
  </author>
23
23
  <date day="25" month="January" year="2002"/>
24
24
  </front>
25
- <seriesInfo name="W3C Note" value="P3P-rdfschema"/>
25
+ <seriesInfo name="W3C" value="NOTE-P3P-rdfschema"/>
26
26
  </reference>
@@ -34,5 +34,5 @@
34
34
  </author>
35
35
  <date day="16" month="April" year="2002"/>
36
36
  </front>
37
- <seriesInfo name="W3C Recommendation" value="REC-PICS-services"/>
37
+ <seriesInfo name="W3C" value="REC-PICS-services"/>
38
38
  </reference>
@@ -39,5 +39,5 @@
39
39
  </author>
40
40
  <date day="31" month="October" year="1996"/>
41
41
  </front>
42
- <seriesInfo name="W3C Recommendation" value="REC-PICS-labels"/>
42
+ <seriesInfo name="W3C" value="REC-PICS-labels"/>
43
43
  </reference>
@@ -34,5 +34,5 @@
34
34
  </author>
35
35
  <date day="29" month="December" year="1997"/>
36
36
  </front>
37
- <seriesInfo name="W3C Recommendation" value="REC-PICSRules"/>
37
+ <seriesInfo name="W3C" value="REC-PICSRules"/>
38
38
  </reference>
@@ -33,5 +33,5 @@
33
33
  </author>
34
34
  <date day="31" month="October" year="1996"/>
35
35
  </front>
36
- <seriesInfo name="W3C Recommendation" value="REC-PICS-services"/>
36
+ <seriesInfo name="W3C" value="REC-PICS-services"/>
37
37
  </reference>
@@ -35,5 +35,5 @@
35
35
  </author>
36
36
  <date day="18" month="December" year="2001"/>
37
37
  </front>
38
- <seriesInfo value="daml+oil-reference" name="W3C Note"/>
38
+ <seriesInfo value="NOTE-daml+oil-reference" name="W3C"/>
39
39
  </reference>
@@ -52,5 +52,5 @@
52
52
  </author>
53
53
  <date day="8" month="May" year="2000"/>
54
54
  </front>
55
- <seriesInfo value="soap11" name="W3C Note"/>
55
+ <seriesInfo value="NOTE-soap11" name="W3C"/>
56
56
  </reference>
@@ -34,5 +34,5 @@
34
34
  </author>
35
35
  <date day="26" month="June" year="2002"/>
36
36
  </front>
37
- <seriesInfo value="soap12-part1" name="W3C Working Draft"/>
37
+ <seriesInfo value="WD-soap12-part1" name="W3C"/>
38
38
  </reference>
@@ -34,5 +34,5 @@
34
34
  </author>
35
35
  <date day="26" month="June" year="2002"/>
36
36
  </front>
37
- <seriesInfo value="soap12-part2" name="W3C Working Draft"/>
37
+ <seriesInfo value="WD-soap12-part2" name="W3C"/>
38
38
  </reference>
@@ -46,5 +46,5 @@
46
46
  </author>
47
47
  <date day="30" month="March" year="2001"/>
48
48
  </front>
49
- <seriesInfo value="xkms" name="W3C Note"/>
49
+ <seriesInfo value="NOTE-xkms" name="W3C"/>
50
50
  </reference>
@@ -11,5 +11,5 @@
11
11
  </author>
12
12
  <date day="15" month="March" year="2001"/>
13
13
  </front>
14
- <seriesInfo name="W3C Recommendation" value="xpath"/>
14
+ <seriesInfo name="W3C" value="REC-xpath"/>
15
15
  </reference>
@@ -22,5 +22,5 @@
22
22
  </author>
23
23
  <date day="6" month="October" year="2000"/>
24
24
  </front>
25
- <seriesInfo value="xmldsig-core" name="W3C Recommendation"/>
25
+ <seriesInfo value="REC-xmldsig-core" name="W3C"/>
26
26
  </reference>
@@ -16,5 +16,5 @@
16
16
  </author>
17
17
  <date day="2" month="August" year="2002"/>
18
18
  </front>
19
- <seriesInfo value="xmlenc-core" name="W3C Candidate Recommendation"/>
19
+ <seriesInfo value="CR-xmlenc-core" name="W3C"/>
20
20
  </reference>
@@ -18,5 +18,5 @@
18
18
  </author>
19
19
  <date day="16" month="November" year="1999"/>
20
20
  </front>
21
- <seriesInfo name="W3C Recommendation" value="xpath"/>
21
+ <seriesInfo name="W3C" value="REC-xpath"/>
22
22
  </reference>
data/grammars/biblio.rng CHANGED
@@ -527,7 +527,7 @@
527
527
  </define>
528
528
  <define name="LocalityType">
529
529
  <data type="string">
530
- <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|anchor|locality:[a-zA-Z0-9_]+</param>
530
+ <param name="pattern">section|clause|part|paragraph|chapter|page|title|line|whole|table|annex|figure|note|list|example|volume|issue|time|anchor|locality:[a-zA-Z0-9_]+</param>
531
531
  </data>
532
532
  </define>
533
533
  <define name="referenceFrom">
@@ -614,12 +614,103 @@
614
614
  <optional>
615
615
  <ref name="fetched"/>
616
616
  </optional>
617
- <choice>
618
- <oneOrMore>
619
- <ref name="btitle"/>
620
- </oneOrMore>
617
+ <optional>
621
618
  <ref name="formattedref"/>
622
- </choice>
619
+ </optional>
620
+ <oneOrMore>
621
+ <ref name="btitle"/>
622
+ </oneOrMore>
623
+ <zeroOrMore>
624
+ <ref name="bsource"/>
625
+ </zeroOrMore>
626
+ <oneOrMore>
627
+ <ref name="docidentifier"/>
628
+ </oneOrMore>
629
+ <optional>
630
+ <ref name="docnumber"/>
631
+ </optional>
632
+ <zeroOrMore>
633
+ <ref name="bdate"/>
634
+ </zeroOrMore>
635
+ <zeroOrMore>
636
+ <ref name="contributor"/>
637
+ </zeroOrMore>
638
+ <optional>
639
+ <ref name="edition"/>
640
+ </optional>
641
+ <zeroOrMore>
642
+ <ref name="version"/>
643
+ </zeroOrMore>
644
+ <zeroOrMore>
645
+ <ref name="biblionote"/>
646
+ </zeroOrMore>
647
+ <zeroOrMore>
648
+ <ref name="language"/>
649
+ </zeroOrMore>
650
+ <zeroOrMore>
651
+ <ref name="script"/>
652
+ </zeroOrMore>
653
+ <zeroOrMore>
654
+ <ref name="bibabstract"/>
655
+ </zeroOrMore>
656
+ <optional>
657
+ <ref name="status"/>
658
+ </optional>
659
+ <zeroOrMore>
660
+ <ref name="copyright"/>
661
+ </zeroOrMore>
662
+ <zeroOrMore>
663
+ <ref name="docrelation"/>
664
+ </zeroOrMore>
665
+ <zeroOrMore>
666
+ <ref name="series"/>
667
+ </zeroOrMore>
668
+ <optional>
669
+ <ref name="medium"/>
670
+ </optional>
671
+ <zeroOrMore>
672
+ <ref name="bplace"/>
673
+ </zeroOrMore>
674
+ <zeroOrMore>
675
+ <ref name="bprice"/>
676
+ </zeroOrMore>
677
+ <zeroOrMore>
678
+ <ref name="extent"/>
679
+ </zeroOrMore>
680
+ <optional>
681
+ <ref name="bibliographic_size"/>
682
+ </optional>
683
+ <zeroOrMore>
684
+ <ref name="accesslocation"/>
685
+ </zeroOrMore>
686
+ <zeroOrMore>
687
+ <ref name="license"/>
688
+ </zeroOrMore>
689
+ <zeroOrMore>
690
+ <ref name="bclassification"/>
691
+ </zeroOrMore>
692
+ <zeroOrMore>
693
+ <ref name="bkeyword"/>
694
+ </zeroOrMore>
695
+ <optional>
696
+ <ref name="validity"/>
697
+ </optional>
698
+ </define>
699
+ <define name="ReducedBibliographicItem">
700
+ <optional>
701
+ <attribute name="type">
702
+ <ref name="BibItemType"/>
703
+ </attribute>
704
+ </optional>
705
+ <optional>
706
+ <ref name="fetched"/>
707
+ </optional>
708
+ <optional>
709
+ <ref name="formattedref"/>
710
+ </optional>
711
+ <zeroOrMore>
712
+ <ref name="btitle"/>
713
+ </zeroOrMore>
623
714
  <zeroOrMore>
624
715
  <ref name="bsource"/>
625
716
  </zeroOrMore>
@@ -638,9 +729,9 @@
638
729
  <optional>
639
730
  <ref name="edition"/>
640
731
  </optional>
641
- <optional>
732
+ <zeroOrMore>
642
733
  <ref name="version"/>
643
- </optional>
734
+ </zeroOrMore>
644
735
  <zeroOrMore>
645
736
  <ref name="biblionote"/>
646
737
  </zeroOrMore>
@@ -833,6 +924,12 @@
833
924
  <data type="boolean"/>
834
925
  </attribute>
835
926
  </optional>
927
+ <optional>
928
+ <attribute name="language"/>
929
+ </optional>
930
+ <optional>
931
+ <attribute name="script"/>
932
+ </optional>
836
933
  <text/>
837
934
  </element>
838
935
  </define>
@@ -851,17 +948,46 @@
851
948
  </define>
852
949
  <define name="bplace">
853
950
  <element name="place">
854
- <optional>
855
- <attribute name="uri">
856
- <data type="anyURI"/>
857
- </attribute>
858
- </optional>
859
- <optional>
860
- <attribute name="region"/>
861
- </optional>
951
+ <choice>
952
+ <text/>
953
+ <group>
954
+ <ref name="bibliocity"/>
955
+ <zeroOrMore>
956
+ <ref name="biblioregion"/>
957
+ </zeroOrMore>
958
+ <zeroOrMore>
959
+ <ref name="bibliocountry"/>
960
+ </zeroOrMore>
961
+ </group>
962
+ </choice>
963
+ </element>
964
+ </define>
965
+ <define name="bibliocity">
966
+ <element name="city">
862
967
  <text/>
863
968
  </element>
864
969
  </define>
970
+ <define name="biblioregion">
971
+ <element name="region">
972
+ <ref name="RegionType"/>
973
+ </element>
974
+ </define>
975
+ <define name="bibliocountry">
976
+ <element name="country">
977
+ <ref name="RegionType"/>
978
+ </element>
979
+ </define>
980
+ <define name="RegionType">
981
+ <optional>
982
+ <attribute name="iso"/>
983
+ </optional>
984
+ <optional>
985
+ <attribute name="recommended">
986
+ <data type="boolean"/>
987
+ </attribute>
988
+ </optional>
989
+ <text/>
990
+ </define>
865
991
  <define name="bprice">
866
992
  <element name="price">
867
993
  <attribute name="currency"/>
@@ -957,36 +1083,34 @@
957
1083
  <ref name="SeriesType"/>
958
1084
  </attribute>
959
1085
  </optional>
960
- <choice>
1086
+ <optional>
961
1087
  <ref name="formattedref"/>
962
- <group>
963
- <ref name="btitle"/>
964
- <optional>
965
- <ref name="bplace"/>
966
- </optional>
967
- <optional>
968
- <ref name="seriesorganization"/>
969
- </optional>
970
- <optional>
971
- <ref name="abbreviation"/>
972
- </optional>
973
- <optional>
974
- <ref name="seriesfrom"/>
975
- </optional>
976
- <optional>
977
- <ref name="seriesto"/>
978
- </optional>
979
- <optional>
980
- <ref name="seriesnumber"/>
981
- </optional>
982
- <optional>
983
- <ref name="seriespartnumber"/>
984
- </optional>
985
- <optional>
986
- <ref name="seriesrun"/>
987
- </optional>
988
- </group>
989
- </choice>
1088
+ </optional>
1089
+ <ref name="btitle"/>
1090
+ <optional>
1091
+ <ref name="bplace"/>
1092
+ </optional>
1093
+ <optional>
1094
+ <ref name="seriesorganization"/>
1095
+ </optional>
1096
+ <optional>
1097
+ <ref name="abbreviation"/>
1098
+ </optional>
1099
+ <optional>
1100
+ <ref name="seriesfrom"/>
1101
+ </optional>
1102
+ <optional>
1103
+ <ref name="seriesto"/>
1104
+ </optional>
1105
+ <optional>
1106
+ <ref name="seriesnumber"/>
1107
+ </optional>
1108
+ <optional>
1109
+ <ref name="seriespartnumber"/>
1110
+ </optional>
1111
+ <optional>
1112
+ <ref name="seriesrun"/>
1113
+ </optional>
990
1114
  </element>
991
1115
  </define>
992
1116
  <define name="SeriesType">
@@ -1145,7 +1269,7 @@
1145
1269
  </element>
1146
1270
  </optional>
1147
1271
  <element name="bibitem">
1148
- <ref name="BibliographicItem"/>
1272
+ <ref name="ReducedBibliographicItem"/>
1149
1273
  </element>
1150
1274
  <choice>
1151
1275
  <zeroOrMore>
@@ -1170,9 +1294,9 @@
1170
1294
  <optional>
1171
1295
  <ref name="revision-date"/>
1172
1296
  </optional>
1173
- <zeroOrMore>
1297
+ <optional>
1174
1298
  <ref name="draft"/>
1175
- </zeroOrMore>
1299
+ </optional>
1176
1300
  </element>
1177
1301
  </define>
1178
1302
  <define name="vedition">
data/grammars/isodoc.rng CHANGED
@@ -32,6 +32,43 @@
32
32
  <ref name="DocumentType"/>
33
33
  </element>
34
34
  </define>
35
+ <define name="admonition">
36
+ <element name="admonition">
37
+ <attribute name="type">
38
+ <ref name="AdmonitionType"/>
39
+ </attribute>
40
+ <optional>
41
+ <attribute name="class"/>
42
+ </optional>
43
+ <attribute name="id">
44
+ <data type="ID"/>
45
+ </attribute>
46
+ <optional>
47
+ <attribute name="uri">
48
+ <data type="anyURI"/>
49
+ </attribute>
50
+ </optional>
51
+ <optional>
52
+ <attribute name="coverpage">
53
+ <data type="boolean"/>
54
+ </attribute>
55
+ </optional>
56
+ <optional>
57
+ <attribute name="notag">
58
+ <data type="boolean"/>
59
+ </attribute>
60
+ </optional>
61
+ <optional>
62
+ <ref name="tname"/>
63
+ </optional>
64
+ <zeroOrMore>
65
+ <ref name="paragraph-with-footnote"/>
66
+ </zeroOrMore>
67
+ <zeroOrMore>
68
+ <ref name="note"/>
69
+ </zeroOrMore>
70
+ </element>
71
+ </define>
35
72
  <define name="index">
36
73
  <element name="index">
37
74
  <optional>
@@ -79,6 +116,11 @@
79
116
  <data type="boolean"/>
80
117
  </attribute>
81
118
  </optional>
119
+ <optional>
120
+ <attribute name="suppress_identifier">
121
+ <data type="boolean"/>
122
+ </attribute>
123
+ </optional>
82
124
  <ref name="BibliographicItem"/>
83
125
  </element>
84
126
  </define>
@@ -245,6 +287,9 @@
245
287
  <ref name="MultilingualRenderingType"/>
246
288
  </attribute>
247
289
  </optional>
290
+ <optional>
291
+ <ref name="tname"/>
292
+ </optional>
248
293
  <oneOrMore>
249
294
  <ref name="ul_li"/>
250
295
  </oneOrMore>
@@ -287,6 +332,9 @@
287
332
  </choice>
288
333
  </attribute>
289
334
  </optional>
335
+ <optional>
336
+ <ref name="tname"/>
337
+ </optional>
290
338
  <oneOrMore>
291
339
  <ref name="li"/>
292
340
  </oneOrMore>
@@ -323,6 +371,9 @@
323
371
  <ref name="MultilingualRenderingType"/>
324
372
  </attribute>
325
373
  </optional>
374
+ <optional>
375
+ <ref name="tname"/>
376
+ </optional>
326
377
  <oneOrMore>
327
378
  <ref name="dt"/>
328
379
  <ref name="dd"/>
@@ -657,6 +708,9 @@
657
708
  <optional>
658
709
  <attribute name="tag"/>
659
710
  </optional>
711
+ <optional>
712
+ <attribute name="type"/>
713
+ </optional>
660
714
  <optional>
661
715
  <attribute name="multilingual-rendering">
662
716
  <ref name="MultilingualRenderingType"/>
@@ -692,6 +746,9 @@
692
746
  <optional>
693
747
  <attribute name="tag"/>
694
748
  </optional>
749
+ <optional>
750
+ <attribute name="type"/>
751
+ </optional>
695
752
  <optional>
696
753
  <attribute name="multilingual-rendering">
697
754
  <ref name="MultilingualRenderingType"/>
@@ -851,6 +908,16 @@
851
908
  <ref name="MultilingualRenderingType"/>
852
909
  </attribute>
853
910
  </optional>
911
+ <optional>
912
+ <attribute name="coverpage">
913
+ <data type="boolean"/>
914
+ </attribute>
915
+ </optional>
916
+ <optional>
917
+ <attribute name="notag">
918
+ <data type="boolean"/>
919
+ </attribute>
920
+ </optional>
854
921
  <oneOrMore>
855
922
  <choice>
856
923
  <ref name="paragraph"/>
@@ -1178,6 +1245,7 @@
1178
1245
  <ref name="concept"/>
1179
1246
  <ref name="add"/>
1180
1247
  <ref name="del"/>
1248
+ <ref name="span"/>
1181
1249
  </choice>
1182
1250
  </define>
1183
1251
  <define name="add">
@@ -1204,6 +1272,14 @@
1204
1272
  </choice>
1205
1273
  </element>
1206
1274
  </define>
1275
+ <define name="span">
1276
+ <element name="span">
1277
+ <attribute name="class"/>
1278
+ <oneOrMore>
1279
+ <ref name="TextElement"/>
1280
+ </oneOrMore>
1281
+ </element>
1282
+ </define>
1207
1283
  <define name="concept">
1208
1284
  <element name="concept">
1209
1285
  <optional>
@@ -1994,6 +2070,7 @@
1994
2070
  <value>compare</value>
1995
2071
  <value>contrast</value>
1996
2072
  <value>see</value>
2073
+ <value>seealso</value>
1997
2074
  </choice>
1998
2075
  </define>
1999
2076
  <define name="deprecates">
@@ -68,7 +68,7 @@ module RelatonW3c
68
68
  end
69
69
 
70
70
  #
71
- # Query RDF source for documents
71
+ # Query RDF source for versioned documents
72
72
  #
73
73
  # @return [RDF::Query::Solutions] query results
74
74
  #
@@ -87,6 +87,11 @@ module RelatonW3c
87
87
  data.query sse
88
88
  end
89
89
 
90
+ #
91
+ # Query RDF source for unversioned documents
92
+ #
93
+ # @return [Array<RDF::Query::Solution>] query results
94
+ #
90
95
  def query_unversioned_docs
91
96
  sse = SPARQL.parse(%(
92
97
  PREFIX doc: <http://www.w3.org/2000/10/swap/pim/doc#>
@@ -72,7 +72,7 @@ module RelatonW3c
72
72
  # @return [Integer] comparison result
73
73
  #
74
74
  def compare_index_items(aid, bid) # rubocop:disable Metrics/AbcSize
75
- ret = aid[:code] <=> bid[:code]
75
+ ret = aid[:code].downcase <=> bid[:code].downcase
76
76
  ret = stage_weight(bid[:stage]) <=> stage_weight(aid[:stage]) if ret.zero?
77
77
  ret = date_weight(bid[:date]) <=> date_weight(aid[:date]) if ret.zero?
78
78
  # ret = aid[:type] <=> bid[:type] if ret.zero?
@@ -136,7 +136,7 @@ module RelatonW3c
136
136
  %r{
137
137
  ^(?:(?:(?<stage>WD|CRD|CR|PR|PER|REC|SPSD|OBSL|RET)|(?<type>D?NOTE|TR))-)?
138
138
  (?<code>\w+(?:[+-][\w.]+)*?)
139
- (?:-(?<date>\d{8}|\d{6}))?
139
+ (?:-(?<date>\d{8}|\d{6}|\d{4}))?
140
140
  (?:/(?<suff>\w+))?$
141
141
  }xi =~ docnumber
142
142
  entry = { code: code }
@@ -86,9 +86,10 @@ module RelatonW3c
86
86
  # @return [RelatonBib::TypedTitleStringCollection] title
87
87
  #
88
88
  def parse_title
89
- return [] unless @sol.respond_to?(:title)
90
-
91
- t = RelatonBib::TypedTitleString.new content: @sol.title.to_s
89
+ content = if @sol.respond_to?(:title) then @sol.title.to_s
90
+ else document_versions.max_by { |dv| dv.date.to_s }.title.to_s
91
+ end
92
+ t = RelatonBib::TypedTitleString.new content: content
92
93
  RelatonBib::TypedTitleStringCollection.new [t]
93
94
  end
94
95
 
@@ -99,7 +100,6 @@ module RelatonW3c
99
100
  #
100
101
  def parse_link
101
102
  link = @sol.respond_to?(:link) ? @sol.link : @sol.version_of
102
-
103
103
  [RelatonBib::TypedUri.new(type: "src", content: link.to_s)]
104
104
  end
105
105
 
@@ -109,9 +109,7 @@ module RelatonW3c
109
109
  # @return [Arra<RelatonBib::DocumentIdentifier>] docidentifier
110
110
  #
111
111
  def parse_docid
112
- return [] unless @sol.respond_to?(:link)
113
-
114
- id = pub_id(@sol.link)
112
+ id = @sol.respond_to?(:link) ? pub_id(@sol.link) : pub_id(@sol.version_of)
115
113
  [RelatonBib::DocumentIdentifier.new(type: "W3C", id: id, primary: true)]
116
114
  end
117
115
 
@@ -221,10 +219,16 @@ module RelatonW3c
221
219
  def parse_relation
222
220
  if @sol.respond_to?(:link)
223
221
  relations + editor_drafts
224
- else document_versions
222
+ else
223
+ document_versions.map { |r| create_relation(r.link.to_s, "hasEdition") }
225
224
  end
226
225
  end
227
226
 
227
+ #
228
+ # Create relations
229
+ #
230
+ # @return [Array<RelatonBib::DocumentRelation>] relations
231
+ #
228
232
  def relations # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
229
233
  {
230
234
  "doc:obsoletes" => { type: "obsoletes" },
@@ -234,14 +238,16 @@ module RelatonW3c
234
238
  ":previousEdition" => { type: "editionOf" },
235
239
  }.reduce([]) do |acc, (predicate, tp)|
236
240
  acc + relation_query(predicate).map do |r|
237
- fr = RelatonBib::LocalizedString.new pub_id(r.rel.to_s)
238
- bib = W3cBibliographicItem.new formattedref: fr
239
- tp[:description] = RelatonBib::FormattedString.new content: tp[:description] if tp[:description]
240
- RelatonBib::DocumentRelation.new(**tp, bibitem: bib)
241
+ create_relation(r.rel.to_s, tp[:type], tp[:description])
241
242
  end
242
243
  end
243
244
  end
244
245
 
246
+ #
247
+ # Parse editor drafts relation
248
+ #
249
+ # @return [Array<RelatonBib::DocumentRelation>] relation
250
+ #
245
251
  def editor_drafts # rubocop:disable Metrics/MethodLength
246
252
  sse = SPARQL.parse(%(
247
253
  PREFIX : <http://www.w3.org/2001/02pd/rec54#>
@@ -250,15 +256,17 @@ module RelatonW3c
250
256
  WHERE { <#{@sol.link}> :ED ?rel . }
251
257
  ))
252
258
  @fetcher.data.query(sse).map do |s|
253
- fr = RelatonBib::LocalizedString.new pub_id(s.rel.to_s)
254
- bib = W3cBibliographicItem.new formattedref: fr
255
- desc = RelatonBib::FormattedString.new content: "Editor's draft"
256
- RelatonBib::DocumentRelation.new(
257
- type: "hasDraft", description: desc, bibitem: bib,
258
- )
259
+ create_relation(s.rel.to_s, "hasDraft", "Editor's draft")
259
260
  end
260
261
  end
261
262
 
263
+ #
264
+ # Query for relations
265
+ #
266
+ # @param [String] predicate relation type
267
+ #
268
+ # @return [RDF::Query::Solutions] query result
269
+ #
262
270
  def relation_query(predicate)
263
271
  sse = SPARQL.parse(%(
264
272
  PREFIX : <http://www.w3.org/2001/02pd/rec54#>
@@ -270,19 +278,43 @@ module RelatonW3c
270
278
  @fetcher.data.query(sse).order_by(:rel)
271
279
  end
272
280
 
273
- def document_versions
274
- sse = SPARQL.parse(%(
275
- PREFIX doc: <http://www.w3.org/2000/10/swap/pim/doc#>
276
- SELECT ?link
277
- WHERE { ?link doc:versionOf <#{@sol.version_of}> }
278
- ))
279
- @fetcher.data.query(sse).map do |r|
280
- fref = RelatonBib::FormattedRef.new content: pub_id(r.link)
281
- bib = W3cBibliographicItem.new formattedref: fref
282
- RelatonBib::DocumentRelation.new(type: "hasEdition", bibitem: bib)
281
+ #
282
+ # Query document versions relations
283
+ #
284
+ # @return [RDF::Query::Solutions] query results
285
+ #
286
+ def document_versions # rubocop:disable Metrics/MethodLength
287
+ @document_versions ||= begin
288
+ sse = SPARQL.parse(%(
289
+ PREFIX : <http://www.w3.org/2001/02pd/rec54#>
290
+ PREFIX dc: <http://purl.org/dc/elements/1.1/>
291
+ PREFIX doc: <http://www.w3.org/2000/10/swap/pim/doc#>
292
+ PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
293
+ SELECT ?link ?title ?date
294
+ WHERE { ?link doc:versionOf <#{@sol.version_of}> ; dc:title ?title ; dc:date ?date }
295
+ ))
296
+ @fetcher.data.query(sse)
283
297
  end
284
298
  end
285
299
 
300
+ #
301
+ # Create relation
302
+ #
303
+ # @param [String] url relation URL
304
+ # @param [String] type relation type
305
+ # @param [String, nil] desc relation description
306
+ #
307
+ # @return [RelatonBib::DocumentRelation] <description>
308
+ #
309
+ def create_relation(url, type, desc = nil)
310
+ id = pub_id(url)
311
+ fref = RelatonBib::FormattedRef.new content: id
312
+ docid = RelatonBib::DocumentIdentifier.new(type: "W3C", id: id, primary: true)
313
+ bib = W3cBibliographicItem.new formattedref: fref, docid: [docid]
314
+ dsc = RelatonBib::FormattedString.new content: desc if desc
315
+ RelatonBib::DocumentRelation.new(type: type, bibitem: bib, description: dsc)
316
+ end
317
+
286
318
  #
287
319
  # Parse formattedref
288
320
  #
@@ -1,3 +1,3 @@
1
1
  module RelatonW3c
2
- VERSION = "1.11.4".freeze
2
+ VERSION = "1.12.0".freeze
3
3
  end
@@ -103,6 +103,8 @@
103
103
  name: Web Services Architecture Working Group
104
104
  'https://www.w3.org/2011/webappsec':
105
105
  name: Web Application Security Working Group
106
+ 'https://www.w3.org/groups/wg/webappsec':
107
+ name: Web Application Security Working Group
106
108
  'https://www.w3.org/Social/WG':
107
109
  name: Social Web Working Group
108
110
  'https://www.w3.org/XML/Core':
data/relaton_w3c.gemspec CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  "using the IsoBibliographicItem model"
15
15
  spec.homepage = "https://github.com/relaton/relaton-wc3"
16
16
  spec.license = "BSD-2-Clause"
17
- spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
17
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
18
18
 
19
19
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
20
20
 
@@ -39,9 +39,9 @@ Gem::Specification.new do |spec|
39
39
 
40
40
  spec.add_dependency "linkeddata", "~> 3.1.0"
41
41
  spec.add_dependency "mechanize", "~> 2.8.0"
42
- spec.add_dependency "rdf", "~> 3.1.0"
43
- spec.add_dependency "rdf-normalize", "~> 0.4.0"
44
- spec.add_dependency "relaton-bib", "~> 1.11.0"
42
+ spec.add_dependency "rdf", "~> 3.2.0"
43
+ spec.add_dependency "rdf-normalize", "~> 0.5.0"
44
+ spec.add_dependency "relaton-bib", "~> 1.12.0"
45
45
  spec.add_dependency "rubyzip", "~> 2.3.0"
46
46
  spec.add_dependency "shex", "~> 0.6.0"
47
47
  spec.add_dependency "sparql", "~> 3.1.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-w3c
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.4
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-23 00:00:00.000000000 Z
11
+ date: 2022-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: equivalent-xml
@@ -114,42 +114,42 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 3.1.0
117
+ version: 3.2.0
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 3.1.0
124
+ version: 3.2.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rdf-normalize
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.4.0
131
+ version: 0.5.0
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 0.4.0
138
+ version: 0.5.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: relaton-bib
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 1.11.0
145
+ version: 1.12.0
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 1.11.0
152
+ version: 1.12.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rubyzip
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -267,7 +267,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
267
267
  requirements:
268
268
  - - ">="
269
269
  - !ruby/object:Gem::Version
270
- version: 2.5.0
270
+ version: 2.6.0
271
271
  required_rubygems_version: !ruby/object:Gem::Requirement
272
272
  requirements:
273
273
  - - ">="