@natlibfi/marc-record-validators-melinda 12.0.6 → 12.0.7

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 (120) hide show
  1. package/dist/cyrillux.js +11 -11
  2. package/dist/cyrillux.js.map +2 -2
  3. package/dist/dataProvenanceUtils.js +19 -0
  4. package/dist/dataProvenanceUtils.js.map +7 -0
  5. package/dist/index.js +3 -1
  6. package/dist/index.js.map +2 -2
  7. package/dist/merge-fields/controlSubfields.js.map +2 -2
  8. package/dist/merge-fields/counterpartField.js +149 -152
  9. package/dist/merge-fields/counterpartField.js.map +3 -3
  10. package/dist/merge-fields/dataProvenance.js +6 -20
  11. package/dist/merge-fields/dataProvenance.js.map +2 -2
  12. package/dist/merge-fields/index.js +1 -1
  13. package/dist/merge-fields/index.js.map +2 -2
  14. package/dist/merge-fields/mergableIndicator.js +1 -2
  15. package/dist/merge-fields/mergableIndicator.js.map +2 -2
  16. package/dist/merge-fields/mergeConfig.js +2 -0
  17. package/dist/merge-fields/mergeConfig.js.map +2 -2
  18. package/dist/merge-fields/mergeConstraints.js +35 -32
  19. package/dist/merge-fields/mergeConstraints.js.map +3 -3
  20. package/dist/merge-fields/mergeField.js +4 -3
  21. package/dist/merge-fields/mergeField.js.map +2 -2
  22. package/dist/merge-fields/mergeOrAddSubfield.js +8 -7
  23. package/dist/merge-fields/mergeOrAddSubfield.js.map +2 -2
  24. package/dist/merge-fields/mergeSubfield.js +5 -1
  25. package/dist/merge-fields/mergeSubfield.js.map +2 -2
  26. package/dist/merge-fields/worldKnowledge.js +52 -0
  27. package/dist/merge-fields/worldKnowledge.js.map +2 -2
  28. package/dist/merge-fields.test.js +2 -2
  29. package/dist/merge-fields.test.js.map +2 -2
  30. package/dist/normalize-dashes.js +2 -2
  31. package/dist/normalize-dashes.js.map +2 -2
  32. package/dist/normalizeFieldForComparison.js +8 -14
  33. package/dist/normalizeFieldForComparison.js.map +2 -2
  34. package/dist/prepublicationUtils.js +1 -1
  35. package/dist/prepublicationUtils.js.map +2 -2
  36. package/dist/punctuation2.js +10 -10
  37. package/dist/punctuation2.js.map +2 -2
  38. package/dist/removeDuplicateDataFields.js +1 -24
  39. package/dist/removeDuplicateDataFields.js.map +2 -2
  40. package/dist/removeInferiorDataFields.js +3 -2
  41. package/dist/removeInferiorDataFields.js.map +2 -2
  42. package/dist/sortSubfields.js +19 -19
  43. package/dist/sortSubfields.js.map +2 -2
  44. package/dist/subfield6Utils.js +0 -1
  45. package/dist/subfield6Utils.js.map +2 -2
  46. package/dist/subfield8Utils.js +0 -5
  47. package/dist/subfield8Utils.js.map +2 -2
  48. package/dist/utils.js +29 -3
  49. package/dist/utils.js.map +2 -2
  50. package/package.json +4 -4
  51. package/src/cyrillux.js +11 -11
  52. package/src/dataProvenanceUtils.js +21 -0
  53. package/src/index.js +3 -1
  54. package/src/merge-fields/controlSubfields.js +0 -1
  55. package/src/merge-fields/counterpartField.js +191 -290
  56. package/src/merge-fields/dataProvenance.js +8 -25
  57. package/src/merge-fields/index.js +1 -1
  58. package/src/merge-fields/mergableIndicator.js +1 -2
  59. package/src/merge-fields/mergeConfig.js +2 -1
  60. package/src/merge-fields/mergeConstraints.js +39 -34
  61. package/src/merge-fields/mergeField.js +4 -7
  62. package/src/merge-fields/mergeOrAddSubfield.js +8 -7
  63. package/src/merge-fields/mergeSubfield.js +11 -2
  64. package/src/merge-fields/worldKnowledge.js +72 -3
  65. package/src/merge-fields.test.js +2 -2
  66. package/src/normalize-dashes.js +2 -2
  67. package/src/normalizeFieldForComparison.js +19 -20
  68. package/src/prepublicationUtils.js +1 -1
  69. package/src/punctuation2.js +10 -10
  70. package/src/removeDuplicateDataFields.js +24 -24
  71. package/src/removeInferiorDataFields.js +3 -2
  72. package/src/sortSubfields.js +19 -19
  73. package/src/subfield6Utils.js +1 -1
  74. package/src/subfield8Utils.js +5 -5
  75. package/src/utils.js +39 -12
  76. package/test-fixtures/cyrillux/f14/expectedResult.json +32 -0
  77. package/test-fixtures/cyrillux/f14/metadata.json +10 -0
  78. package/test-fixtures/cyrillux/f14/record.json +14 -0
  79. package/test-fixtures/merge-fields/f042_01/expectedResult.json +12 -0
  80. package/test-fixtures/merge-fields/f042_01/metadata.json +6 -0
  81. package/test-fixtures/merge-fields/f042_01/record.json +13 -0
  82. package/test-fixtures/merge-fields/f06/expectedResult.json +42 -0
  83. package/test-fixtures/merge-fields/f06/metadata.json +6 -0
  84. package/test-fixtures/merge-fields/f06/record.json +41 -0
  85. package/test-fixtures/merge-fields/f07/expectedResult.json +18 -0
  86. package/test-fixtures/merge-fields/f07/metadata.json +6 -0
  87. package/test-fixtures/merge-fields/f07/record.json +18 -0
  88. package/test-fixtures/merge-fields/f08/expectedResult.json +12 -0
  89. package/test-fixtures/merge-fields/f08/metadata.json +7 -0
  90. package/test-fixtures/merge-fields/f08/record.json +10 -0
  91. package/test-fixtures/merge-fields/f09/expectedResult.json +14 -0
  92. package/test-fixtures/merge-fields/f09/metadata.json +6 -0
  93. package/test-fixtures/merge-fields/f09/record.json +14 -0
  94. package/test-fixtures/merge-fields/f10/expectedResult.json +25 -0
  95. package/test-fixtures/merge-fields/f10/metadata.json +6 -0
  96. package/test-fixtures/merge-fields/f10/record.json +25 -0
  97. package/test-fixtures/merge-fields/f11/expectedResult.json +40 -0
  98. package/test-fixtures/merge-fields/f11/metadata.json +7 -0
  99. package/test-fixtures/merge-fields/f11/record.json +50 -0
  100. package/test-fixtures/merge-fields/f12/expectedResult.json +17 -0
  101. package/test-fixtures/merge-fields/f12/metadata.json +6 -0
  102. package/test-fixtures/merge-fields/f12/record.json +25 -0
  103. package/test-fixtures/merge-fields/f13/expectedResult.json +18 -0
  104. package/test-fixtures/merge-fields/f13/metadata.json +6 -0
  105. package/test-fixtures/merge-fields/f13/record.json +28 -0
  106. package/test-fixtures/merge-fields/f14/expectedResult.json +25 -0
  107. package/test-fixtures/merge-fields/f14/metadata.json +6 -0
  108. package/test-fixtures/merge-fields/f14/record.json +25 -0
  109. package/test-fixtures/merge-fields/f300_01/expectedResult.json +9 -0
  110. package/test-fixtures/merge-fields/f300_01/metadata.json +6 -0
  111. package/test-fixtures/merge-fields/f300_01/record.json +8 -0
  112. package/test-fixtures/merge-fields/f300_02/expectedResult.json +13 -0
  113. package/test-fixtures/merge-fields/f300_02/metadata.json +6 -0
  114. package/test-fixtures/merge-fields/f300_02/record.json +16 -0
  115. package/test-fixtures/merge-fields/f490_01/expectedResult.json +13 -0
  116. package/test-fixtures/merge-fields/f490_01/metadata.json +6 -0
  117. package/test-fixtures/merge-fields/f490_01/record.json +16 -0
  118. package/test-fixtures/remove-inferior-datafields/f17/expectedResult.json +11 -0
  119. package/test-fixtures/remove-inferior-datafields/f17/metadata.json +5 -0
  120. package/test-fixtures/remove-inferior-datafields/f17/record.json +15 -0
@@ -0,0 +1,18 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "i", "value": "Elokuvaversion perustana (teos):" },
6
+ { "code": "a", "value": "Edam, Adam."},
7
+ { "code": "t", "value": "Them Movie." }
8
+ ]},
9
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
10
+ { "code": "i", "value": "Elokuvaversion perustana (teos):" },
11
+ { "code": "a", "value": "Edam, Adam,"},
12
+ { "code": "d", "value": "1900-2000."},
13
+ { "code": "t", "value": "Them Movie II." }
14
+ ]}
15
+ ],
16
+ "leader": "01331cam a22003498i 4500"
17
+
18
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "Name-title: test problematic case",
3
+ "fix": true,
4
+ "tagPattern": "^(700)$",
5
+ "only": false
6
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "i", "value": "Elokuvaversion perustana (teos):" },
6
+ { "code": "a", "value": "Edam, Adam."},
7
+ { "code": "t", "value": "Them Movie." }
8
+ ]},
9
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
10
+ { "code": "i", "value": "Elokuvaversion perustana (teos):" },
11
+ { "code": "a", "value": "Edam, Adam,"},
12
+ { "code": "d", "value": "1900-2000."},
13
+ { "code": "t", "value": "Them Movie II." }
14
+ ]}
15
+ ],
16
+ "leader": "01331cam a22003498i 4500"
17
+
18
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "leader": "01331cam a22003494i 4500",
4
+ "fields": [
5
+ { "tag": "010", "ind1": " ", "ind2": " ", "subfields": [ { "code": "a", "value": "testing" } ] },
6
+
7
+ { "tag": "040", "ind1": " ", "ind2": " ", "subfields": [
8
+ { "code": "a", "value": "FI-WHATEVER" },
9
+ { "code": "d", "value": "FI-NAL" }
10
+ ] }
11
+ ]
12
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "description": "08: 040",
3
+ "fix": true,
4
+ "tagPattern": "^(040)$",
5
+ "comment": "Not the best example. Note that source record's f040$a => f040$d is done in preprocessing, and not handled here. Anyway, this is actually a successful merge: as 040$a is a (NR), the latter 040$a gets dropped",
6
+ "only": false
7
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "leader": "01331cam a22003494i 4500",
4
+ "fields": [
5
+ { "tag": "010", "ind1": " ", "ind2": " ", "subfields": [ { "code": "a", "value": "testing" } ] },
6
+
7
+ { "tag": "040", "ind1": " ", "ind2": " ", "subfields": [ { "code": "a", "value": "FI-WHATEVER" } ] },
8
+ { "tag": "040", "ind1": " ", "ind2": " ", "subfields": [ { "code": "a", "value": "FI-KV" }, { "code": "d", "value": "FI-NAL" } ] }
9
+ ]
10
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "001", "value": "source-123"},
5
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [
6
+ { "code": "a", "value": "eng" }
7
+ ] },
8
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [
9
+ { "code": "d", "value": "zxx" },
10
+ { "code": "h", "value": "swe" }
11
+ ] }
12
+ ],
13
+ "_validationOptions": {}
14
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "f09: two 041 fields don't merge as there's no common denominator",
3
+ "fix": true,
4
+ "tagPattern": "^(041)$",
5
+ "only": false
6
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "001", "value": "source-123"},
5
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [
6
+ { "code": "a", "value": "eng" }
7
+ ] },
8
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [
9
+ { "code": "d", "value": "zxx" },
10
+ { "code": "h", "value": "swe" }
11
+ ] }
12
+ ],
13
+ "_validationOptions": {}
14
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Saurola, Pertti," },
6
+ { "code": "e", "value": "kirjoittaja." },
7
+ { "code": "u", "value": "Helsingin yliopisto" },
8
+ { "code": "g", "value": "(orgn)1901" }
9
+ ]
10
+ },
11
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
12
+ { "code": "a", "value": "Saurola, Pertti," },
13
+ { "code": "e", "value": "kirjoittaja." },
14
+ {
15
+ "code": "u",
16
+ "value": "Foobar yliopisto"
17
+ },
18
+ {
19
+ "code": "g",
20
+ "value": "(orgn)9999"
21
+ }
22
+ ]}
23
+ ],
24
+ "_validationOptions": {}
25
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "f10 700$u - do not merge agent fields with different affiliation",
3
+ "fix": true,
4
+ "tagPattern": "^(700)$",
5
+ "only": false
6
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Saurola, Pertti," },
6
+ { "code": "e", "value": "kirjoittaja." },
7
+ { "code": "u", "value": "Helsingin yliopisto" },
8
+ { "code": "g", "value": "(orgn)1901" }
9
+ ]
10
+ },
11
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
12
+ { "code": "a", "value": "Saurola, Pertti," },
13
+ { "code": "e", "value": "kirjoittaja." },
14
+ {
15
+ "code": "u",
16
+ "value": "Foobar yliopisto"
17
+ },
18
+ {
19
+ "code": "g",
20
+ "value": "(orgn)9999"
21
+ }
22
+ ]}
23
+ ],
24
+ "_validationOptions": {}
25
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Foo Bar" },
6
+ { "code": "b", "value": "II," },
7
+ { "code": "c", "value": "vasenkätinen." },
8
+ { "code": "0", "value": "(FIN11)012345678" }
9
+ ]
10
+ },
11
+
12
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
13
+ { "code": "a", "value": "Foo Bar" },
14
+ { "code": "b", "value": "III." }
15
+ ]
16
+ },
17
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
18
+ { "code": "a", "value": "Foo Bar," },
19
+ { "code": "c", "value": "oikeakätinen." }
20
+ ]
21
+ },
22
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
23
+ { "code": "a", "value": "Merge and Drop 2nd $b" },
24
+ { "code": "b", "value": "II." },
25
+ { "code": "0", "value": "(FIN11)011111111" }
26
+ ]
27
+ },
28
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
29
+ { "code": "a", "value": "Stays Separate" },
30
+ { "code": "b", "value": "IV." }
31
+ ]
32
+ },
33
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
34
+ { "code": "a", "value": "Stays Separate" },
35
+ { "code": "b", "value": "V." }
36
+ ]
37
+ }
38
+ ],
39
+ "_validationOptions": {}
40
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "description": "f11: merge authorized name despite unpaired 1) $b $c unbalance, and 2) $b mismatch",
3
+ "comment": "It is now caretaker's problem to fix the possibly erronous values.",
4
+ "fix": true,
5
+ "tagPattern": "^(700)$",
6
+ "only": false
7
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Foo Bar" },
6
+ { "code": "b", "value": "II." },
7
+ { "code": "0", "value": "(FIN11)012345678" }
8
+ ]
9
+ },
10
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
11
+ { "code": "a", "value": "Foo Bar," },
12
+ { "code": "c", "value": "vasenkätinen." },
13
+ { "code": "0", "value": "(FIN11)012345678" }
14
+ ]
15
+ },
16
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
17
+ { "code": "a", "value": "Foo Bar" },
18
+ { "code": "b", "value": "III." }
19
+ ]
20
+ },
21
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
22
+ { "code": "a", "value": "Foo Bar," },
23
+ { "code": "c", "value": "oikeakätinen." }
24
+ ]
25
+ },
26
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
27
+ { "code": "a", "value": "Merge and Drop 2nd $b" },
28
+ { "code": "b", "value": "II." },
29
+ { "code": "0", "value": "(FIN11)011111111" }
30
+ ]
31
+ },
32
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
33
+ { "code": "a", "value": "Merge and Drop 2nd $b" },
34
+ { "code": "b", "value": "III." },
35
+ { "code": "0", "value": "(FIN11)011111111" }
36
+ ]
37
+ },
38
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
39
+ { "code": "a", "value": "Stays Separate" },
40
+ { "code": "b", "value": "IV." }
41
+ ]
42
+ },
43
+ { "tag": "700", "ind1": "0", "ind2": " ", "subfields": [
44
+ { "code": "a", "value": "Stays Separate" },
45
+ { "code": "b", "value": "V." }
46
+ ]
47
+ }
48
+ ],
49
+ "_validationOptions": {}
50
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [ { "code": "b", "value": "swe" } ] },
5
+
6
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
7
+ { "code": "i", "value": "Innehåller (verk):" },
8
+ { "code": "a", "value": "Wuolijoki, Hella." },
9
+ { "code": "t", "value": "Semanttisesti sama $i yhdistyy." },
10
+ { "code": "0", "value": "(FIN11)000063570"
11
+ }
12
+ ]
13
+ }
14
+ ],
15
+ "leader": "01331cam a22003498i 4500"
16
+
17
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "Merge based on corresponding $i semantics",
3
+ "fix": true,
4
+ "tagPattern": "^(700)$",
5
+ "only": false
6
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [ { "code": "b", "value": "swe" } ] },
5
+
6
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
7
+ { "code": "i", "value": "Innehåller (verk):" },
8
+ { "code": "a", "value": "Wuolijoki, Hella." },
9
+ { "code": "t", "value": "Semanttisesti sama $i yhdistyy." },
10
+ { "code": "0", "value": "(FIN11)000063570"
11
+ }
12
+ ]
13
+ },
14
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
15
+ { "code": "i", "value": "Sisältää (teos):" },
16
+ { "code": "a", "value": "Wuolijoki, Hella." },
17
+ { "code": "t", "value": "Semanttisesti sama $i yhdistyy" },
18
+ { "code": "0", "value": "(FIN11)000063570"
19
+ }
20
+ ]
21
+ }
22
+ ],
23
+ "leader": "01331cam a22003498i 4500"
24
+
25
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [ { "code": "b", "value": "swe" } ] },
5
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
6
+ { "code": "i", "value": "Sisältää (ekspressio):" },
7
+ { "code": "a", "value": "Wuolijoki, Hella." },
8
+ { "code": "t", "value": "Semanttisesti sama $i ja $l yhdistyy." },
9
+ { "code": "l", "value": "Finska." },
10
+ { "code": "0", "value": "(FIN11)000063570"
11
+ }
12
+ ]
13
+ }
14
+
15
+ ],
16
+ "leader": "01331cam a22003498i 4500"
17
+
18
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "Merge based on $i and $l semantic similarities",
3
+ "fix": true,
4
+ "tagPattern": "^(700)$",
5
+ "only": false
6
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [ { "code": "b", "value": "swe" } ] },
5
+
6
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
7
+ { "code": "i", "value": "Sisältää (ekspressio):" },
8
+ { "code": "a", "value": "Wuolijoki, Hella." },
9
+ { "code": "t", "value": "Semanttisesti sama $i ja $l yhdistyy." },
10
+ { "code": "l", "value": "Finska." },
11
+ { "code": "0", "value": "(FIN11)000063570"
12
+ }
13
+ ]
14
+ },
15
+
16
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
17
+ { "code": "i", "value": "Innehåller (uttryck):" },
18
+ { "code": "a", "value": "Wuolijoki, Hella." },
19
+ { "code": "t", "value": "Semanttisesti sama $i ja $l yhdistyy." },
20
+ { "code": "l", "value": "Suomi." },
21
+ { "code": "0", "value": "(FIN11)000063570"
22
+ }
23
+ ]
24
+ }
25
+ ],
26
+ "leader": "01331cam a22003498i 4500"
27
+
28
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [ { "code": "b", "value": "swe" } ] },
5
+
6
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
7
+ { "code": "i", "value": "Sisältää:" },
8
+ { "code": "a", "value": "Wuolijoki, Hella." },
9
+ { "code": "t", "value": "Eri $i ei yhdisty." },
10
+ { "code": "0", "value": "(FIN11)000063570"
11
+ }
12
+ ]
13
+ },
14
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
15
+ { "code": "i", "value": "Sisältää (teos):" },
16
+ { "code": "a", "value": "Wuolijoki, Hella." },
17
+ { "code": "t", "value": "Eri $i ei yhdisty." },
18
+ { "code": "0", "value": "(FIN11)000063570"
19
+ }
20
+ ]
21
+ }
22
+ ],
23
+ "leader": "01331cam a22003498i 4500"
24
+
25
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "Don't merge (based on $i differences)",
3
+ "fix": true,
4
+ "tagPattern": "^(700)$",
5
+ "only": false
6
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [ { "code": "b", "value": "swe" } ] },
5
+
6
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
7
+ { "code": "i", "value": "Sisältää:" },
8
+ { "code": "a", "value": "Wuolijoki, Hella." },
9
+ { "code": "t", "value": "Eri $i ei yhdisty." },
10
+ { "code": "0", "value": "(FIN11)000063570"
11
+ }
12
+ ]
13
+ },
14
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
15
+ { "code": "i", "value": "Sisältää (teos):" },
16
+ { "code": "a", "value": "Wuolijoki, Hella." },
17
+ { "code": "t", "value": "Eri $i ei yhdisty." },
18
+ { "code": "0", "value": "(FIN11)000063570"
19
+ }
20
+ ]
21
+ }
22
+ ],
23
+ "leader": "01331cam a22003498i 4500"
24
+
25
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [ { "code": "b", "value": "kuvitettu" } ] },
5
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [ { "code": "c", "value": "20 cm" } ] }
6
+ ],
7
+
8
+ "_validationOptions": {}
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "f300/01: don't merge f300 as they don't share anything",
3
+ "fix": true,
4
+ "tagPattern": "^300$",
5
+ "only": false
6
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [ { "code": "b", "value": "kuvitettu" } ] },
5
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [ { "code": "c", "value": "20 cm" } ] }
6
+ ],
7
+ "_validationOptions": {}
8
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "205 sivua :" },
6
+ { "code": "b", "value": "kuvitettu ;" },
7
+ { "code": "c", "value": "30 cm" }
8
+ ]
9
+ }
10
+ ],
11
+
12
+ "_validationOptions": {}
13
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "f300/2: merge f300 as they share a key subfield ($a)",
3
+ "fix": true,
4
+ "tagPattern": "^300$",
5
+ "only": false
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "205 sivua :" },
6
+ { "code": "c", "value": "30 cm" }
7
+ ]
8
+ },
9
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
10
+ { "code": "a", "value": "205 sivua:" },
11
+ { "code": "b", "value": "kuvitettu" }
12
+ ]
13
+ }
14
+ ],
15
+ "_validationOptions": {}
16
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "490", "ind1": "0", "ind2": "a", "subfields": [
5
+ { "code": "a", "value": "[Jesse-sarja] ;" },
6
+ { "code": "a", "value": "Jesse ;" },
7
+ { "code": "a", "value": "[Jesse-sarja]" },
8
+ { "code": "v", "value": "[31]" }
9
+ ] }
10
+ ],
11
+
12
+ "_validationOptions": {}
13
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "f490/01: merge f490",
3
+ "fix": true,
4
+ "tagPattern": "^490$",
5
+ "only": false
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "leader": "01331cam a22003494i 4500",
3
+ "fields": [
4
+ { "tag": "490", "ind1": "0", "ind2": "a", "subfields": [
5
+ { "code": "a", "value": "[Jesse-sarja] ;" },
6
+ { "code": "a", "value": "Jesse ;" },
7
+ { "code": "a", "value": "[Jesse-sarja]" },
8
+ { "code": "v", "value": "[31]" }
9
+ ] },
10
+ { "tag": "490", "ind1": "0", "ind2": "a", "subfields": [
11
+ { "code": "a", "value": "Jesse ;" },
12
+ { "code": "v", "value": "31" }
13
+ ] }
14
+ ],
15
+ "_validationOptions": {}
16
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "001", "value": "f17" },
5
+ { "tag": "666", "ind1": " ", "ind2": " ", "subfields": [
6
+ { "code": "a", "value": "taikasana"}
7
+ ]}
8
+ ],
9
+ "leader": "01331cam a22003498i 4500"
10
+
11
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "description": "f17: handle new $7 province ennakkotieto",
3
+ "fix": true,
4
+ "only": false
5
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "001", "value": "f17" },
5
+ { "tag": "666", "ind1": " ", "ind2": " ", "subfields": [
6
+ { "code": "a", "value": "taikasana"}
7
+ ]},
8
+ { "tag": "666", "ind1": " ", "ind2": " ", "subfields": [
9
+ { "code": "a", "value": "taikasana"},
10
+ { "code": "7", "value": "Ennakkotieto"}
11
+ ]}
12
+ ],
13
+ "leader": "01331cam a22003498i 4500"
14
+
15
+ }