ds-convert 0.1.1

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 (87) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +294 -0
  3. data/Rakefile +12 -0
  4. data/config/settings.yml +150 -0
  5. data/exe/ds-convert +149 -0
  6. data/exe/ds-recon +275 -0
  7. data/exe/ds-validate-csv +40 -0
  8. data/exe/marc-mrc-to-xml.rb +80 -0
  9. data/lib/ds/cli.rb +102 -0
  10. data/lib/ds/constants.rb +166 -0
  11. data/lib/ds/converter/converter.rb +124 -0
  12. data/lib/ds/converter/writer.rb +50 -0
  13. data/lib/ds/converter.rb +7 -0
  14. data/lib/ds/csv_util.rb +43 -0
  15. data/lib/ds/data/berkeley-arks.txt +4000 -0
  16. data/lib/ds/data/getty-aat-centuries.csv +71 -0
  17. data/lib/ds/data/iiif_manifests.csv +122 -0
  18. data/lib/ds/data/legacy-iiif-manifests.csv +77 -0
  19. data/lib/ds/ds_error.rb +1 -0
  20. data/lib/ds/extractor/base_record_locator.rb +24 -0
  21. data/lib/ds/extractor/base_term.rb +79 -0
  22. data/lib/ds/extractor/csv_record_locator.rb +13 -0
  23. data/lib/ds/extractor/ds_csv_extractor.rb +695 -0
  24. data/lib/ds/extractor/ds_mets_xml_extractor.rb +1114 -0
  25. data/lib/ds/extractor/genre.rb +45 -0
  26. data/lib/ds/extractor/language.rb +31 -0
  27. data/lib/ds/extractor/marc_xml_extractor.rb +1172 -0
  28. data/lib/ds/extractor/material.rb +12 -0
  29. data/lib/ds/extractor/name.rb +50 -0
  30. data/lib/ds/extractor/place.rb +11 -0
  31. data/lib/ds/extractor/subject.rb +58 -0
  32. data/lib/ds/extractor/tei_xml_extractor.rb +687 -0
  33. data/lib/ds/extractor/title.rb +52 -0
  34. data/lib/ds/extractor/xml_record_locator.rb +38 -0
  35. data/lib/ds/extractor.rb +24 -0
  36. data/lib/ds/institutions.rb +55 -0
  37. data/lib/ds/manifest/base_id_validator.rb +76 -0
  38. data/lib/ds/manifest/constants.rb +67 -0
  39. data/lib/ds/manifest/ds_csv_id_validator.rb +15 -0
  40. data/lib/ds/manifest/entry.rb +133 -0
  41. data/lib/ds/manifest/manifest.rb +74 -0
  42. data/lib/ds/manifest/manifest_validator.rb +256 -0
  43. data/lib/ds/manifest/simple_xml_id_validator.rb +42 -0
  44. data/lib/ds/manifest.rb +30 -0
  45. data/lib/ds/mapper/base_mapper.rb +221 -0
  46. data/lib/ds/mapper/ds_csv_mapper.rb +77 -0
  47. data/lib/ds/mapper/ds_mets_mapper.rb +85 -0
  48. data/lib/ds/mapper/marc_mapper.rb +87 -0
  49. data/lib/ds/mapper/tei_xml_mapper.rb +79 -0
  50. data/lib/ds/mapper.rb +13 -0
  51. data/lib/ds/recon/constants.rb +56 -0
  52. data/lib/ds/recon/ds_csv_enumerator.rb +16 -0
  53. data/lib/ds/recon/ds_mets_xml_enumerator.rb +14 -0
  54. data/lib/ds/recon/marc_xml_enumerator.rb +15 -0
  55. data/lib/ds/recon/recon_builder.rb +183 -0
  56. data/lib/ds/recon/recon_data.rb +37 -0
  57. data/lib/ds/recon/recon_manager.rb +92 -0
  58. data/lib/ds/recon/source_enumerator.rb +21 -0
  59. data/lib/ds/recon/tei_xml_enumerator.rb +14 -0
  60. data/lib/ds/recon/type/all_subjects.rb +18 -0
  61. data/lib/ds/recon/type/genres.rb +50 -0
  62. data/lib/ds/recon/type/languages.rb +38 -0
  63. data/lib/ds/recon/type/materials.rb +40 -0
  64. data/lib/ds/recon/type/named_subjects.rb +20 -0
  65. data/lib/ds/recon/type/names.rb +65 -0
  66. data/lib/ds/recon/type/places.rb +40 -0
  67. data/lib/ds/recon/type/recon_type.rb +136 -0
  68. data/lib/ds/recon/type/splits.rb +34 -0
  69. data/lib/ds/recon/type/subjects.rb +65 -0
  70. data/lib/ds/recon/type/titles.rb +38 -0
  71. data/lib/ds/recon/url_lookup.rb +52 -0
  72. data/lib/ds/recon.rb +292 -0
  73. data/lib/ds/source/base_source.rb +32 -0
  74. data/lib/ds/source/ds_csv.rb +18 -0
  75. data/lib/ds/source/ds_mets_xml.rb +20 -0
  76. data/lib/ds/source/marc_xml.rb +22 -0
  77. data/lib/ds/source/source_cache.rb +69 -0
  78. data/lib/ds/source/tei_xml.rb +22 -0
  79. data/lib/ds/source.rb +20 -0
  80. data/lib/ds/util/cache.rb +111 -0
  81. data/lib/ds/util/csv_validator.rb +209 -0
  82. data/lib/ds/util/csv_writer.rb +42 -0
  83. data/lib/ds/util/strings.rb +194 -0
  84. data/lib/ds/util.rb +37 -0
  85. data/lib/ds/version.rb +5 -0
  86. data/lib/ds.rb +237 -0
  87. metadata +246 -0
@@ -0,0 +1,71 @@
1
+ aat_id,label,number
2
+ http://vocab.getty.edu/aat/300404465,fifteenth century (dates CE),15
3
+ http://vocab.getty.edu/aat/300404493,first century (dates CE),1
4
+ http://vocab.getty.edu/aat/300404494,second century (dates CE),2
5
+ http://vocab.getty.edu/aat/300404495,third century (dates CE),3
6
+ http://vocab.getty.edu/aat/300404496,fourth century (dates CE),4
7
+ http://vocab.getty.edu/aat/300404497,fifth century (dates CE),5
8
+ http://vocab.getty.edu/aat/300404498,sixth century (dates CE),6
9
+ http://vocab.getty.edu/aat/300404499,seventh century (dates CE),7
10
+ http://vocab.getty.edu/aat/300404500,eighth century (dates CE),8
11
+ http://vocab.getty.edu/aat/300404501,ninth century (dates CE),9
12
+ http://vocab.getty.edu/aat/300404502,tenth century (dates CE),10
13
+ http://vocab.getty.edu/aat/300404503,eleventh century (dates CE),11
14
+ http://vocab.getty.edu/aat/300404504,twelfth century (dates CE),12
15
+ http://vocab.getty.edu/aat/300404505,thirteenth century (dates CE),13
16
+ http://vocab.getty.edu/aat/300404506,fourteenth century (dates CE),14
17
+ http://vocab.getty.edu/aat/300404510,sixteenth century (dates CE),16
18
+ http://vocab.getty.edu/aat/300404511,seventeenth century (dates CE),17
19
+ http://vocab.getty.edu/aat/300404512,eighteenth century (dates CE),18
20
+ http://vocab.getty.edu/aat/300404513,nineteenth century (dates CE),19
21
+ http://vocab.getty.edu/aat/300404514,twentieth century (dates CE),20
22
+ http://vocab.getty.edu/aat/300404515,twenty-first century (dates CE),21
23
+ http://vocab.getty.edu/aat/300404516,twenty-third century (dates CE),23
24
+ http://vocab.getty.edu/aat/300404517,twenty-second century (dates CE),22
25
+ http://vocab.getty.edu/aat/300404518,first century BCE,-1
26
+ http://vocab.getty.edu/aat/300404522,second century BCE,-2
27
+ http://vocab.getty.edu/aat/300404523,third century BCE,-3
28
+ http://vocab.getty.edu/aat/300404524,fourth century BCE,-4
29
+ http://vocab.getty.edu/aat/300404525,fifth century BCE,-5
30
+ http://vocab.getty.edu/aat/300404526,sixth century BCE,-6
31
+ http://vocab.getty.edu/aat/300404527,seventh century BCE,-7
32
+ http://vocab.getty.edu/aat/300404528,eighth century BCE,-8
33
+ http://vocab.getty.edu/aat/300404529,ninth century BCE,-9
34
+ http://vocab.getty.edu/aat/300404530,tenth century BCE,-10
35
+ http://vocab.getty.edu/aat/300404531,eleventh century BCE,-11
36
+ http://vocab.getty.edu/aat/300404532,twelfth century BCE,-12
37
+ http://vocab.getty.edu/aat/300404533,thirteenth century BCE,-13
38
+ http://vocab.getty.edu/aat/300404534,fourteenth century BCE,-14
39
+ http://vocab.getty.edu/aat/300404535,fifteenth century BCE,-15
40
+ http://vocab.getty.edu/aat/300404536,sixteenth century BCE,-16
41
+ http://vocab.getty.edu/aat/300404537,seventeenth century BCE,-17
42
+ http://vocab.getty.edu/aat/300404538,eighteenth century BCE,-18
43
+ http://vocab.getty.edu/aat/300404539,nineteenth century BCE,-19
44
+ http://vocab.getty.edu/aat/300404540,twentieth century BCE,-20
45
+ http://vocab.getty.edu/aat/300404541,twenty-first century BCE,-21
46
+ http://vocab.getty.edu/aat/300404542,twenty-second century BCE,-22
47
+ http://vocab.getty.edu/aat/300404543,twenty-third century BCE,-23
48
+ http://vocab.getty.edu/aat/300404544,twenty-fourth century BCE,-24
49
+ http://vocab.getty.edu/aat/300404545,twenty-fifth century BCE,-25
50
+ http://vocab.getty.edu/aat/300404546,twenty-sixth century BCE,-26
51
+ http://vocab.getty.edu/aat/300404547,twenty-seventh century BCE,-27
52
+ http://vocab.getty.edu/aat/300404548,twenty-eighth century BCE,-28
53
+ http://vocab.getty.edu/aat/300404549,twenty-ninth century BCE,-29
54
+ http://vocab.getty.edu/aat/300404550,first millennium (dates CE),1000
55
+ http://vocab.getty.edu/aat/300404551,second millennium (dates CE),2000
56
+ http://vocab.getty.edu/aat/300404552,third millennium (dates CE),3000
57
+ http://vocab.getty.edu/aat/300404553,second millennium BCE,-2000
58
+ http://vocab.getty.edu/aat/300404554,first millennium BCE,-1000
59
+ http://vocab.getty.edu/aat/300404555,third millennium BCE,-3000
60
+ http://vocab.getty.edu/aat/300404556,fourth millennium BCE,-4000
61
+ http://vocab.getty.edu/aat/300404557,fifth millennium BCE,-5000
62
+ http://vocab.getty.edu/aat/300404558,sixth millennium BCE,-6000
63
+ http://vocab.getty.edu/aat/300404559,seventh millennium BCE,-7000
64
+ http://vocab.getty.edu/aat/300404560,eighth millennium BCE,-8000
65
+ http://vocab.getty.edu/aat/300404561,ninth millennium BCE,-9000
66
+ http://vocab.getty.edu/aat/300404562,tenth millennium BCE,-10000
67
+ http://vocab.getty.edu/aat/300404563,eleventh millennium BCE,-11000
68
+ http://vocab.getty.edu/aat/300404564,twelfth millennium BCE,-12000
69
+ http://vocab.getty.edu/aat/300404565,thirteenth millennium BCE,-13000
70
+ http://vocab.getty.edu/aat/300404566,fourteenth millennium BCE,-14000
71
+ http://vocab.getty.edu/aat/300404567,fifteenth millennium BCE,-15000
@@ -0,0 +1,122 @@
1
+ mmsid,iiif_manifest_url
2
+ 9914691793503681,https://colenda.library.upenn.edu/phalt/iiif/2//manifest
3
+ 9914691813503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p31j97f2x/manifest
4
+ 9914691823503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3gh9bg67/manifest
5
+ 9914691833503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3ws8hs7x/manifest
6
+ 9914691863503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3r49gg53/manifest
7
+ 9914696393503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3fb4ws7f/manifest
8
+ 9914696403503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3707wv6p/manifest
9
+ 9914696413503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3377622b/manifest
10
+ 9914696423503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3mg7g24p/manifest
11
+ 9914696433503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3zg6gd7b/manifest
12
+ 9915803973503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3nk3676d/manifest
13
+ 9946458153503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3463f/manifest
14
+ 9946463483503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3f92w/manifest
15
+ 9947469813503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p38040/manifest
16
+ 9947594443503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p30d1h/manifest
17
+ 9947675343503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3k649t48/manifest
18
+ 9947699533503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3nz80q8v/manifest
19
+ 9947974193503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p30g97/manifest
20
+ 9948120243503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3h37b/manifest
21
+ 9948124823503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3133g/manifest
22
+ 9948175023503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3n00zt9k/manifest
23
+ 9948179063503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3q643/manifest
24
+ 9948181893503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3c95d/manifest
25
+ 9948558353503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p39p2w678/manifest
26
+ 9948588323503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3222r66r/manifest
27
+ 9948617063503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3251fk8k/manifest
28
+ 9949183233503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p36w9694p/manifest
29
+ 9949222153503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3m03xz3w/manifest
30
+ 9949237593503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3n633/manifest
31
+ 9949240153503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3hd15/manifest
32
+ 9949282643503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p35x25d3h/manifest
33
+ 9949349953503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3qw74/manifest
34
+ 9949525113503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3mg6p/manifest
35
+ 9949875283503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3cq0n/manifest
36
+ 9949879143503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3m33r/manifest
37
+ 9949939943503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3v07d/manifest
38
+ 9949945603503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p33p8v/manifest
39
+ 9949956063503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3w92x/manifest
40
+ 9949967773503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3zw5j/manifest
41
+ 9950003033503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3q93r/manifest
42
+ 9950289983503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3m05g/manifest
43
+ 9950293063503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3445hd03/manifest
44
+ 9950320043503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3g63j/manifest
45
+ 9950345623503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3416t107/manifest
46
+ 9950511113503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p30m06/manifest
47
+ 9950569233503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3zm0w/manifest
48
+ 9950583033503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3ff3m111/manifest
49
+ 9951131033503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3pr7mv3j/manifest
50
+ 9951865503503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3rd1b/manifest
51
+ 9951865803503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p36d5pb6j/manifest
52
+ 9951866203503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3c57s/manifest
53
+ 9951882013503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p37659g80/manifest
54
+ 9951882743503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3rv5b/manifest
55
+ 9952666523503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p37w6764x/manifest
56
+ 9953161073503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3jg62/manifest
57
+ 9953161123503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3gp4r/manifest
58
+ 9954084983503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p35644/manifest
59
+ 9954448733503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p39w0954n/manifest
60
+ 9957602663503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3gw56/manifest
61
+ 9957604903503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3rk8q/manifest
62
+ 9957607433503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3p26q433/manifest
63
+ 9958279783503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3bk16q7m/manifest
64
+ 9958452103503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3sn01497/manifest
65
+ 9958589513503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3qr4nr67/manifest
66
+ 9958778333503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3s17st1w/manifest
67
+ 9958854883503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p31c1tg53/manifest
68
+ 9958895573503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3wk8z/manifest
69
+ 9959171953503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p31p4q/manifest
70
+ 9959387343503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3h98zd74/manifest
71
+ 9959415183503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3zk55n01/manifest
72
+ 9959419423503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3p843w7r/manifest
73
+ 9962496313503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3sq8qq3z/manifest
74
+ 9962565163503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3bv7b23v/manifest
75
+ 9962793853503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3gm81v63/manifest
76
+ 9962793863503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3736m80h/manifest
77
+ 9962793893503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3s46hc6t/manifest
78
+ 9962793903503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3610vz60/manifest
79
+ 9962793913503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3k931c96/manifest
80
+ 9962878673503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3625f/manifest
81
+ 9962905673503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3db7vr3g/manifest
82
+ 9962984263503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p32805318/manifest
83
+ 9962984323503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p33b5w832/manifest
84
+ 9962986513503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3zg41/manifest
85
+ 9962986713503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p31r6n35s/manifest
86
+ 9962986813503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3gb15/manifest
87
+ 9962986913503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p37940t6f/manifest
88
+ 9962986963503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3c551/manifest
89
+ 9962987793503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3p843w68/manifest
90
+ 9962991713503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3pw05/manifest
91
+ 9962991893503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p38k74x8m/manifest
92
+ 9969738033503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3pz51t0x/manifest
93
+ 9969738073503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3fj29k52/manifest
94
+ 9970745763503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3p26q93b/manifest
95
+ 9972460113503681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3t14tw1c/manifest
96
+ 9977325732103681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3qv3c96r/manifest
97
+ 9977325732203681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p39s1ks0f/manifest
98
+ 9977406946003681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3rv0d67g/manifest
99
+ 9977406946103681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p38s4jw06/manifest
100
+ 9977406951103681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3280552n/manifest
101
+ 9977406951203681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3dj58p4b/manifest
102
+ 9977406951403681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3513v265/manifest
103
+ 9977406951603681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3183482d/manifest
104
+ 9977406951903681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3cj87s43/manifest
105
+ 9977406952003681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p37s7j00c/manifest
106
+ 9977406952203681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3416t56x/manifest
107
+ 9977406952303681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p30863c25/manifest
108
+ 9977406953003681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3tq5rm36/manifest
109
+ 9977424453803681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3wh2dm7d/manifest
110
+ 9977459936703681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3vx0689g/manifest
111
+ 9977459936903681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p30k26j27/manifest
112
+ 9977459937003681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3m61bw6q/manifest
113
+ 9977459937103681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3br8mp1m/manifest
114
+ 9977459940003681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3j960g9z/manifest
115
+ 9977459940203681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3n29pd33/manifest
116
+ 9977459940303681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3cv4bz3p/manifest
117
+ 9977459940803681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3vm4340h/manifest
118
+ 9977459940903681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3hm52r7t/manifest
119
+ 9977459941003681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3nc5sk2p/manifest
120
+ 9977459941103681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3mc8rp0g/manifest
121
+ 9977508749303681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p34b2xb60/manifest
122
+ 9977508749403681,https://colenda.library.upenn.edu/phalt/iiif/2/81431-p3k35mm16/manifest
@@ -0,0 +1,77 @@
1
+ holding_institution,shelfmark,iiif_manifest_url
2
+ csl,MS 10,https://iiif.archivelab.org/iiif/images_SutroCollectionMS10_12/manifest.json
3
+ csl,MS 08,https://iiif.archivelab.org/iiif/images_SutroCollectionMS08_12/manifest.json
4
+ csl,MS 07,https://iiif.archivelab.org/iiif/images_SutroCollectionMS07_12/manifest.json
5
+ csl,MS 06,https://iiif.archivelab.org/iiif/images_SutroCollectionMS06_12/manifest.json
6
+ csl,MS 05,https://iiif.archivelab.org/iiif/images_SutroCollectionMS05_12/manifest.json
7
+ csl,MS 04,https://iiif.archivelab.org/iiif/images_SutroCollectionMS04_12/manifest.json
8
+ csl,MS 02,https://iiif.archivelab.org/iiif/images_SutroCollectionMS02_12/manifest.json
9
+ csl,MS 01,https://iiif.archivelab.org/iiif/images_SutroCollectionMS01_12/manifest.json
10
+ csl,Italian Manuscripts 167,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts167_12/manifest.json
11
+ csl,Italian Manuscripts 166,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts166_12/manifest.json
12
+ csl,Italian Manuscripts 164,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts164_12/manifest.json
13
+ csl,Italian Manuscripts 163,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts163_12/manifest.json
14
+ csl,Italian Manuscripts 129,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts129_12/manifest.json
15
+ csl,Italian Manuscripts 128,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts128_12/manifest.json
16
+ csl,Italian Manuscripts 127,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts127_12/manifest.json
17
+ csl,Italian Manuscripts 126,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts126_12/manifest.json
18
+ csl,Italian Manuscripts 125,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts125_12/manifest.json
19
+ csl,Italian Manuscripts 123,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts123_12/manifest.json
20
+ csl,Italian Manuscripts 121,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts121_12/manifest.json
21
+ csl,Italian Manuscripts 098,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts098_12/manifest.json
22
+ csl,Italian Manuscripts 089,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts089_12/manifest.json
23
+ csl,Italian Manuscripts 051,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts051_12/manifest.json
24
+ csl,Italian Manuscripts 049,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts049_12/manifest.json
25
+ csl,Italian Manuscripts 048,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts048_12/manifest.json
26
+ csl,Italian Manuscripts 045,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts045_12/manifest.json
27
+ csl,Italian Manuscripts 043,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts043_12/manifest.json
28
+ csl,Italian Manuscripts 042,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts042_12/manifest.json
29
+ csl,Italian Manuscripts 041,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts041_12/manifest.json
30
+ csl,Italian Manuscripts 040,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts040_12/manifest.json
31
+ csl,Italian Manuscripts 031,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts031_12/manifest.json
32
+ csl,Italian Manuscripts 021,https://iiif.archivelab.org/iiif/images_SutroCollectionItalianManuscripts021_12/manifest.json
33
+ csl,Halliwell Phillips MS 04,https://iiif.archivelab.org/iiif/images_SutroCollectionHalliwellPhillipsMS04_12/manifest.json
34
+ csl,Halliwell Phillips MS 03,https://iiif.archivelab.org/iiif/images_SutroCollectionHalliwellPhillipsMS03_12/manifest.json
35
+ csl,Halliwell Phillips MS 02,https://iiif.archivelab.org/iiif/images_SutroCollectionHalliwellPhillipsMS02_12/manifest.json
36
+ csl,Halliwell Phillips MS 01,https://iiif.archivelab.org/iiif/images_SutroCollectionHalliwellPhillipsMS01_12/manifest.json
37
+ csl,CSL v096 C3631,https://iiif.archivelab.org/iiif/images_CSLv096C3631_9/manifest.json
38
+ csl,CSL v091 B29,https://iiif.archivelab.org/iiif/images_CSLv091B29_9/manifest.json
39
+ conception,CA 43,https://iiif.archivelab.org/iiif/images_CA43_15/manifest.json
40
+ conception,CA 42,https://iiif.archivelab.org/iiif/images_CA42_15/manifest.json
41
+ conception,CA 41,https://iiif.archivelab.org/iiif/images_CA41_15/manifest.json
42
+ conception,CA 40,https://iiif.archivelab.org/iiif/images_CA40_15/manifest.json
43
+ conception,CA 39,https://iiif.archivelab.org/iiif/images_CA39_15/manifest.json
44
+ conception,CA 38,https://iiif.archivelab.org/iiif/images_CA38_15/manifest.json
45
+ conception,CA 37,https://iiif.archivelab.org/iiif/images_CA37_15/manifest.json
46
+ conception,CA 36,https://iiif.archivelab.org/iiif/images_CA36_15/manifest.json
47
+ conception,CA 35,https://iiif.archivelab.org/iiif/images_CA35_15/manifest.json
48
+ conception,CA 34,https://iiif.archivelab.org/iiif/images_CA34_15/manifest.json
49
+ conception,CA 33,https://iiif.archivelab.org/iiif/images_CA33_15/manifest.json
50
+ conception,CA 31,https://iiif.archivelab.org/iiif/images_CA31_15/manifest.json
51
+ conception,CA 30,https://iiif.archivelab.org/iiif/images_CA30_15/manifest.json
52
+ conception,CA 29,https://iiif.archivelab.org/iiif/images_CA29_15/manifest.json
53
+ conception,CA 28,https://iiif.archivelab.org/iiif/images_CA28_15/manifest.json
54
+ conception,CA 26,https://iiif.archivelab.org/iiif/images_CA26_15/manifest.json
55
+ conception,CA 24,https://iiif.archivelab.org/iiif/images_CA24_15/manifest.json
56
+ conception,CA 23,https://iiif.archivelab.org/iiif/images_CA23_15/manifest.json
57
+ conception,CA 22,https://iiif.archivelab.org/iiif/images_CA22_15/manifest.json
58
+ conception,CA 21,https://iiif.archivelab.org/iiif/images_CA21_15/manifest.json
59
+ conception,CA 20,https://iiif.archivelab.org/iiif/images_CA20_15/manifest.json
60
+ conception,CA 19,https://iiif.archivelab.org/iiif/images_CA19_15/manifest.json
61
+ conception,CA 18,https://iiif.archivelab.org/iiif/images_CA18_15/manifest.json
62
+ conception,CA 17,https://iiif.archivelab.org/iiif/images_CA17_15/manifest.json
63
+ conception,CA 16,https://iiif.archivelab.org/iiif/images_CA16_15/manifest.json
64
+ conception,CA 15,https://iiif.archivelab.org/iiif/images_CA15_15/manifest.json
65
+ conception,CA 14,https://iiif.archivelab.org/iiif/images_CA14_15/manifest.json
66
+ conception,CA 13,https://iiif.archivelab.org/iiif/images_CA13_15/manifest.json
67
+ conception,CA 12,https://iiif.archivelab.org/iiif/images_CA12_15/manifest.json
68
+ conception,CA 11,https://iiif.archivelab.org/iiif/images_CA11_15/manifest.json
69
+ conception,CA 10,https://iiif.archivelab.org/iiif/images_CA10_15/manifest.json
70
+ conception,CA 09,https://iiif.archivelab.org/iiif/images_CA09_15/manifest.json
71
+ conception,CA 08,https://iiif.archivelab.org/iiif/images_CA08_15/manifest.json
72
+ conception,CA 07,https://iiif.archivelab.org/iiif/images_CA07_15/manifest.json
73
+ conception,CA 06,https://iiif.archivelab.org/iiif/images_CA06_15/manifest.json
74
+ conception,CA 05,https://iiif.archivelab.org/iiif/images_CA05_15/manifest.json
75
+ conception,CA 04,https://iiif.archivelab.org/iiif/images_CA04_15/manifest.json
76
+ conception,CA 02,https://iiif.archivelab.org/iiif/images_CA02_15/manifest.json
77
+ conception,CA 01,https://iiif.archivelab.org/iiif/images_CA01_15/manifest.json
@@ -0,0 +1 @@
1
+ class DSError < StandardError; end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DS
4
+ module Extractor
5
+ class BaseRecordLocator
6
+
7
+ attr_reader :errors
8
+
9
+ def initialize
10
+ @errors = []
11
+ end
12
+
13
+ def locate_record parsed_source, id, id_location
14
+ raise NotImplementedError
15
+ end
16
+
17
+
18
+ def add_error message
19
+
20
+ @errors << message
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DS
4
+ module Extractor
5
+ ##
6
+ # BaseTerm is a composite object for multi-value term sets, like
7
+ # subjects, names, and titles, that may have complex
8
+ # representation in source records. For example, names in MARC
9
+ # records, have as recorded values, but also have roles (like
10
+ # author, scribe, etc.) and may also have vernacular script
11
+ # versions.
12
+ #
13
+ # The BaseTerm has the +:as_recorded+ attribute, which all term
14
+ # types must have.
15
+ #
16
+ # The BaseTerm also has a '#to_a' method which returns the
17
+ # +as_recorded+ value:
18
+ #
19
+ # term = BaseTerm.new as_recorded: 'Some value'
20
+ # term.to_a => ['Some value']
21
+ #
22
+ # Implementing classes should add other relevant attributes
23
+ # (+:vernacular+, +:role+, etc.) and implement +#to_a+.
24
+ #
25
+ # NB: BaseTerm instances are used by extractors and the +#to_a+
26
+ # by the ReconBuilder, which assumes values returned are in the
27
+ # order of the first columns of each corresponding recon CSV. For
28
+ # example, the languages.csv has these columns:
29
+ #
30
+ # language_as_recorded,language_code,authorized_label,structured_value
31
+ # Arabic,ara,Arabic,Q13955
32
+ #
33
+ # The +authorized_label+ and +structured_value+ columns are added
34
+ # by the ReconBuilder which expects +term.to_a+ an array
35
+ # containing the first two column values:
36
+ #
37
+ # term.to_a # => ['Arabic', 'ara']
38
+ #
39
+ # @todo: This might be better handle by a +#to_h+ method with
40
+ # keys that map to the recon CSV columns. However, for this
41
+ # to work, the recon CSVs columns would need to be changed
42
+ # from names like 'language_as_recorded' to 'as_recorded' and
43
+ # so on. The change would need to made throughout the software
44
+ # and the change approved by thd DS Project Manager.
45
+ class BaseTerm
46
+ attr_accessor :as_recorded
47
+
48
+ def initialize as_recorded:
49
+ @as_recorded = as_recorded
50
+ end
51
+
52
+ def to_a
53
+ [as_recorded]
54
+ end
55
+
56
+ def to_h
57
+ { as_recorded: as_recorded }
58
+ end
59
+
60
+
61
+ def ==(other)
62
+ self.class == other.class &&
63
+ self.to_h == other.to_h
64
+ end
65
+
66
+ ##
67
+ # Override '#eql?' for Set equivalence
68
+ def eql?(other)
69
+ self == other
70
+ end
71
+
72
+ ##
73
+ # Override '#hash' for Set equivalence
74
+ def hash
75
+ to_h.hash
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DS
4
+ module Extractor
5
+ class CsvRecordLocator
6
+
7
+ def locate_record csv, id, id_location
8
+ csv.rewind
9
+ csv.filter_map { |row| row if row[id_location] == id}
10
+ end
11
+ end
12
+ end
13
+ end