marc 0.4.0 → 0.4.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.
- data/Rakefile +1 -1
- data/lib/marc.rb +12 -12
- data/lib/marc/datafield.rb +11 -69
- data/lib/marc/record.rb +22 -38
- metadata +4 -6
- data/test/random_tag_order.xml +0 -72
- data/test/random_tag_order2.xml +0 -148
data/Rakefile
CHANGED
data/lib/marc.rb
CHANGED
@@ -32,15 +32,15 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
require 'marc/constants'
|
36
|
-
require 'marc/record'
|
37
|
-
require 'marc/datafield'
|
38
|
-
require 'marc/controlfield'
|
39
|
-
require 'marc/subfield'
|
40
|
-
require 'marc/reader'
|
41
|
-
require 'marc/writer'
|
42
|
-
require 'marc/exception'
|
43
|
-
require 'marc/xmlwriter'
|
44
|
-
require 'marc/xmlreader'
|
45
|
-
require 'marc/dublincore'
|
46
|
-
require 'marc/xml_parsers'
|
35
|
+
require File.dirname(__FILE__) + '/marc/constants'
|
36
|
+
require File.dirname(__FILE__) + '/marc/record'
|
37
|
+
require File.dirname(__FILE__) + '/marc/datafield'
|
38
|
+
require File.dirname(__FILE__) + '/marc/controlfield'
|
39
|
+
require File.dirname(__FILE__) + '/marc/subfield'
|
40
|
+
require File.dirname(__FILE__) + '/marc/reader'
|
41
|
+
require File.dirname(__FILE__) + '/marc/writer'
|
42
|
+
require File.dirname(__FILE__) + '/marc/exception'
|
43
|
+
require File.dirname(__FILE__) + '/marc/xmlwriter'
|
44
|
+
require File.dirname(__FILE__) + '/marc/xmlreader'
|
45
|
+
require File.dirname(__FILE__) + '/marc/dublincore'
|
46
|
+
require File.dirname(__FILE__) + '/marc/xml_parsers'
|
data/lib/marc/datafield.rb
CHANGED
@@ -1,47 +1,4 @@
|
|
1
|
-
require 'marc/subfield'
|
2
|
-
require 'marc/record'
|
3
|
-
require 'marc/controlfield'
|
4
|
-
|
5
1
|
module MARC
|
6
|
-
|
7
|
-
class SubfieldMap < Array
|
8
|
-
attr_reader :codes
|
9
|
-
def initialize
|
10
|
-
@codes = HashWithChecksumAttribute.new
|
11
|
-
end
|
12
|
-
|
13
|
-
def in_sync?
|
14
|
-
@codes.checksum == self.hash
|
15
|
-
end
|
16
|
-
|
17
|
-
def reindex
|
18
|
-
@codes.clear
|
19
|
-
self.each do |subfield|
|
20
|
-
@codes[subfield.code] ||= []
|
21
|
-
@codes[subfield.code] << self.index(subfield)
|
22
|
-
end
|
23
|
-
@codes.checksum = self.hash
|
24
|
-
end
|
25
|
-
def code_list
|
26
|
-
reindex unless in_sync?
|
27
|
-
@codes.keys
|
28
|
-
end
|
29
|
-
|
30
|
-
def each_by_code(codes)
|
31
|
-
reindex unless in_sync?
|
32
|
-
matched_codes = []
|
33
|
-
[*codes].each do |code|
|
34
|
-
next unless code && @codes[code]
|
35
|
-
@codes[code].each do |idx|
|
36
|
-
matched_codes << self[idx]
|
37
|
-
yield self[idx]
|
38
|
-
end
|
39
|
-
end
|
40
|
-
matched_codes
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
2
|
# MARC records contain data fields, each of which has a tag,
|
46
3
|
# indicators and subfields. Tags for data fields must are all
|
47
4
|
# three-character tags that are not control fields (generally,
|
@@ -72,7 +29,7 @@ module MARC
|
|
72
29
|
attr_accessor :indicator2
|
73
30
|
|
74
31
|
# A list of MARC::Subfield objects
|
75
|
-
|
32
|
+
attr_accessor :subfields
|
76
33
|
|
77
34
|
|
78
35
|
# Create a new field with tag, indicators and subfields.
|
@@ -102,7 +59,8 @@ module MARC
|
|
102
59
|
# screw us up later when we try to encode
|
103
60
|
@indicator1 = i1 == nil ? ' ' : i1
|
104
61
|
@indicator2 = i2 == nil ? ' ' : i2
|
105
|
-
|
62
|
+
|
63
|
+
@subfields = []
|
106
64
|
|
107
65
|
# must use MARC::ControlField for tags < 010 or
|
108
66
|
# those in MARC::ControlField#extra_control_fields
|
@@ -176,9 +134,9 @@ module MARC
|
|
176
134
|
end
|
177
135
|
end
|
178
136
|
|
179
|
-
def each_by_code(filter)
|
180
|
-
|
181
|
-
end
|
137
|
+
#def each_by_code(filter)
|
138
|
+
# @subfields.each_by_code(filter)
|
139
|
+
#end
|
182
140
|
|
183
141
|
# You can lookup subfields with this shorthand. Note it
|
184
142
|
# will return a string and not a MARC::Subfield object.
|
@@ -189,28 +147,12 @@ module MARC
|
|
189
147
|
return subfield.value if subfield
|
190
148
|
return
|
191
149
|
end
|
192
|
-
|
193
|
-
def subfields(filter=nil)
|
194
|
-
return @subfields unless filter
|
195
|
-
@subfields.reindex unless subfields.in_sync?
|
196
|
-
subflds = []
|
197
|
-
if filter.is_a?(String) && @subfields.codes[filter]
|
198
|
-
@subfields.codes[filter].each do |idx|
|
199
|
-
subflds << @subfields[idx]
|
200
|
-
end
|
201
|
-
elsif filter.is_a?(Array) || filter.is_a?(Range)
|
202
|
-
filter.each do |code|
|
203
|
-
next unless @subfields.codes[code]
|
204
|
-
@subfields.codes[code].each do |idx|
|
205
|
-
subflds << @subfields[idx]
|
206
|
-
end
|
207
|
-
end
|
208
|
-
end
|
209
|
-
subflds
|
210
|
-
end
|
150
|
+
|
211
151
|
|
212
|
-
def codes
|
213
|
-
|
152
|
+
def codes(dedupe=true)
|
153
|
+
codes = []
|
154
|
+
@subfields.each {|s| codes << s.code }
|
155
|
+
dedup ? codes.uniq : codes
|
214
156
|
end
|
215
157
|
|
216
158
|
# Two fields are equal if their tag, indicators and
|
data/lib/marc/record.rb
CHANGED
@@ -1,43 +1,30 @@
|
|
1
|
-
require 'marc/controlfield'
|
2
|
-
require 'marc/datafield'
|
3
|
-
|
4
1
|
module MARC
|
5
|
-
|
6
|
-
# Simply what the class name says.
|
7
|
-
# The checksum is used to see if the FieldMap's array has changed.
|
8
|
-
class HashWithChecksumAttribute < Hash
|
9
|
-
attr_accessor :checksum
|
10
|
-
end
|
11
|
-
|
2
|
+
|
12
3
|
# The FieldMap is an Array of DataFields and Controlfields.
|
13
|
-
# It also contains a
|
14
|
-
#
|
4
|
+
# It also contains a Hash representation
|
5
|
+
# of the fields for faster lookups (under certain conditions)
|
15
6
|
class FieldMap < Array
|
16
7
|
attr_reader :tags
|
8
|
+
attr_accessor :clean
|
17
9
|
def initialize
|
18
|
-
@tags =
|
19
|
-
|
20
|
-
|
21
|
-
# Checks to see if the HashWithChecksumAttribute is in sync
|
22
|
-
# with the Array of fields
|
23
|
-
def in_sync?
|
24
|
-
@tags.checksum == self.hash
|
10
|
+
@tags = {}
|
11
|
+
@clean = true
|
25
12
|
end
|
26
13
|
|
27
14
|
# Rebuild the HashWithChecksumAttribute with the current
|
28
15
|
# values of the fields Array
|
29
16
|
def reindex
|
30
|
-
@tags
|
31
|
-
self.
|
17
|
+
@tags = {}
|
18
|
+
self.each_with_index do |field, i|
|
32
19
|
@tags[field.tag] ||= []
|
33
|
-
@tags[field.tag] <<
|
20
|
+
@tags[field.tag] << i
|
34
21
|
end
|
35
|
-
@
|
22
|
+
@clean = true
|
36
23
|
end
|
37
24
|
|
38
25
|
# Returns an array of all of the tags that appear in the record (not in the order they appear, however).
|
39
26
|
def tag_list
|
40
|
-
reindex unless
|
27
|
+
reindex unless @clean
|
41
28
|
@tags.keys
|
42
29
|
end
|
43
30
|
|
@@ -45,19 +32,12 @@ module MARC
|
|
45
32
|
# The tags argument can be a string (e.g. '245'), an array (['100','700','800'])
|
46
33
|
# or a range (('600'..'699')).
|
47
34
|
def each_by_tag(tags)
|
48
|
-
reindex unless
|
49
|
-
|
50
|
-
[
|
51
|
-
|
52
|
-
@tags[tag].each do |idx|
|
53
|
-
matched_tags[idx] = self[idx]
|
54
|
-
end
|
55
|
-
end
|
56
|
-
matched_tags.compact!
|
57
|
-
matched_tags.each do |tag|
|
35
|
+
reindex unless @clean
|
36
|
+
indices = @tags.values_at(*(@tags.keys & [*tags])).flatten.sort
|
37
|
+
return [] if indices.empty?
|
38
|
+
self.values_at(*indices).each do |tag|
|
58
39
|
yield tag
|
59
40
|
end
|
60
|
-
matched_tags
|
61
41
|
end
|
62
42
|
end
|
63
43
|
|
@@ -100,12 +80,13 @@ module MARC
|
|
100
80
|
|
101
81
|
def append(field)
|
102
82
|
@fields.push(field)
|
83
|
+
@fields.clean = false
|
103
84
|
end
|
104
85
|
|
105
86
|
# alias to append
|
106
87
|
|
107
88
|
def <<(field)
|
108
|
-
append(field)
|
89
|
+
append(field)
|
109
90
|
end
|
110
91
|
|
111
92
|
# each() is here to support iterating and searching since MARC::Record
|
@@ -144,8 +125,11 @@ module MARC
|
|
144
125
|
# a string, array or range of tags will return an array of fields
|
145
126
|
# in the order they appear in the record.
|
146
127
|
def fields(filter=nil)
|
147
|
-
|
148
|
-
|
128
|
+
unless filter
|
129
|
+
@fields.clean = false
|
130
|
+
return @fields
|
131
|
+
end
|
132
|
+
@fields.reindex unless @fields.clean
|
149
133
|
flds = []
|
150
134
|
if filter.is_a?(String) && @fields.tags[filter]
|
151
135
|
@fields.tags[filter].each do |idx|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 1
|
10
|
+
version: 0.4.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kevin Clarke
|
@@ -19,7 +19,7 @@ autorequire: marc
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date: 2010-09-
|
22
|
+
date: 2010-09-24 00:00:00 -04:00
|
23
23
|
default_executable:
|
24
24
|
dependencies: []
|
25
25
|
|
@@ -53,9 +53,7 @@ files:
|
|
53
53
|
- test/one.dat
|
54
54
|
- test/one.xml
|
55
55
|
- test/random_tag_order.dat
|
56
|
-
- test/random_tag_order.xml
|
57
56
|
- test/random_tag_order2.dat
|
58
|
-
- test/random_tag_order2.xml
|
59
57
|
- test/tc_controlfield.rb
|
60
58
|
- test/tc_datafield.rb
|
61
59
|
- test/tc_dublincore.rb
|
data/test/random_tag_order.xml
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><record xmlns="http://www.loc.gov/MARC21/slim" xmlns:cinclude="http://apache.org/cocoon/include/1.0" xmlns:zs="http://www.loc.gov/zing/srw/">
|
2
|
-
<leader>01199njm a22002657a 4500</leader>
|
3
|
-
<controlfield tag="001">5677437</controlfield>
|
4
|
-
<controlfield tag="005">19930615144807.4</controlfield>
|
5
|
-
<controlfield tag="007">sdubmmennmplu</controlfield>
|
6
|
-
<controlfield tag="008">930430s1966 nyuuun eng </controlfield>
|
7
|
-
<datafield tag="035" ind1=" " ind2=" ">
|
8
|
-
<subfield code="9">(DLC) 93710188</subfield>
|
9
|
-
</datafield>
|
10
|
-
<datafield tag="906" ind1=" " ind2=" ">
|
11
|
-
<subfield code="a">7</subfield>
|
12
|
-
<subfield code="b">cbc</subfield>
|
13
|
-
<subfield code="c">orignew</subfield>
|
14
|
-
<subfield code="d">5</subfield>
|
15
|
-
<subfield code="e">ncip</subfield>
|
16
|
-
<subfield code="f">19</subfield>
|
17
|
-
<subfield code="g">y-genmusic</subfield>
|
18
|
-
</datafield>
|
19
|
-
<datafield tag="010" ind1=" " ind2=" ">
|
20
|
-
<subfield code="a"> 93710188 </subfield>
|
21
|
-
</datafield>
|
22
|
-
<datafield tag="028" ind1="0" ind2="0">
|
23
|
-
<subfield code="a">C2L 41</subfield>
|
24
|
-
<subfield code="b">Columbia</subfield>
|
25
|
-
</datafield>
|
26
|
-
<datafield tag="040" ind1=" " ind2=" ">
|
27
|
-
<subfield code="a">DLC</subfield>
|
28
|
-
<subfield code="c">DLC</subfield>
|
29
|
-
</datafield>
|
30
|
-
<datafield tag="050" ind1="0" ind2="0">
|
31
|
-
<subfield code="a">Columbia C2L 41</subfield>
|
32
|
-
</datafield>
|
33
|
-
<datafield tag="245" ind1="0" ind2="0">
|
34
|
-
<subfield code="a">Blonde on blonde</subfield>
|
35
|
-
<subfield code="h">[sound recording].</subfield>
|
36
|
-
</datafield>
|
37
|
-
<datafield tag="260" ind1=" " ind2=" ">
|
38
|
-
<subfield code="a">[New York, N.Y.] :</subfield>
|
39
|
-
<subfield code="b">Columbia,</subfield>
|
40
|
-
<subfield code="c">[1966?]</subfield>
|
41
|
-
</datafield>
|
42
|
-
<datafield tag="300" ind1=" " ind2=" ">
|
43
|
-
<subfield code="a">2 sound discs :</subfield>
|
44
|
-
<subfield code="b">analog, 33 1/3 rpm, mono. ;</subfield>
|
45
|
-
<subfield code="c">12 in.</subfield>
|
46
|
-
</datafield>
|
47
|
-
<datafield tag="511" ind1="0" ind2=" ">
|
48
|
-
<subfield code="a">Written and performed by Bob Dylan, vocals, harmonica ; with other musicians.</subfield>
|
49
|
-
</datafield>
|
50
|
-
<datafield tag="505" ind1="0" ind2=" ">
|
51
|
-
<subfield code="a">Rainy day women #12 & 35 -- Pledging my time -- Visions of Johanna -- One of us must know (Sooner or later) -- I want you -- Memphis blues again -- Leopard-skin pill-box hat -- Just like a woman -- Most likely you go your way and I'll go mine -- Temporary like Achilles -- Absolutely sweet Marie -- 4th time around -- Obviously 5 believers -- Sad eyed lady of the lowlands.</subfield>
|
52
|
-
</datafield>
|
53
|
-
<datafield tag="500" ind1=" " ind2=" ">
|
54
|
-
<subfield code="a">Brief record.</subfield>
|
55
|
-
</datafield>
|
56
|
-
<datafield tag="650" ind1=" " ind2="0">
|
57
|
-
<subfield code="a">Folk-rock music.</subfield>
|
58
|
-
</datafield>
|
59
|
-
<datafield tag="700" ind1="1" ind2=" ">
|
60
|
-
<subfield code="a">Dylan, Bob,</subfield>
|
61
|
-
<subfield code="d">1941-</subfield>
|
62
|
-
<subfield code="4">prf</subfield>
|
63
|
-
</datafield>
|
64
|
-
<datafield tag="953" ind1=" " ind2=" ">
|
65
|
-
<subfield code="a">TA28</subfield>
|
66
|
-
</datafield>
|
67
|
-
<datafield tag="991" ind1=" " ind2=" ">
|
68
|
-
<subfield code="b">c-RecSound</subfield>
|
69
|
-
<subfield code="h">Columbia C2L 41</subfield>
|
70
|
-
<subfield code="w">MUSIC</subfield>
|
71
|
-
</datafield>
|
72
|
-
</record>
|
data/test/random_tag_order2.xml
DELETED
@@ -1,148 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><record xmlns="http://www.loc.gov/MARC21/slim" xmlns:cinclude="http://apache.org/cocoon/include/1.0" xmlns:zs="http://www.loc.gov/zing/srw/">
|
2
|
-
<leader>02500cjm a22004571a 4500</leader>
|
3
|
-
<controlfield tag="001">13378768</controlfield>
|
4
|
-
<controlfield tag="005">20070513203356.0</controlfield>
|
5
|
-
<controlfield tag="007">sd fsngnnmmned</controlfield>
|
6
|
-
<controlfield tag="008">031021p20032002ohubln ez eng d</controlfield>
|
7
|
-
<datafield tag="035" ind1=" " ind2=" ">
|
8
|
-
<subfield code="a">(DLC) 2003577486</subfield>
|
9
|
-
</datafield>
|
10
|
-
<datafield tag="040" ind1=" " ind2=" ">
|
11
|
-
<subfield code="a">NTG</subfield>
|
12
|
-
<subfield code="c">NTG</subfield>
|
13
|
-
<subfield code="d">DLC</subfield>
|
14
|
-
</datafield>
|
15
|
-
<datafield tag="028" ind1="0" ind2="2">
|
16
|
-
<subfield code="a">CD-83567</subfield>
|
17
|
-
<subfield code="b">Telarc</subfield>
|
18
|
-
</datafield>
|
19
|
-
<datafield tag="041" ind1="0" ind2=" ">
|
20
|
-
<subfield code="d">eng</subfield>
|
21
|
-
<subfield code="g">eng</subfield>
|
22
|
-
</datafield>
|
23
|
-
<datafield tag="035" ind1=" " ind2=" ">
|
24
|
-
<subfield code="a">(OCoLC)ocm52627255</subfield>
|
25
|
-
</datafield>
|
26
|
-
<datafield tag="024" ind1="1" ind2=" ">
|
27
|
-
<subfield code="a">089408356728</subfield>
|
28
|
-
</datafield>
|
29
|
-
<datafield tag="028" ind1="0" ind2="2">
|
30
|
-
<subfield code="a">CD-83567</subfield>
|
31
|
-
<subfield code="b">Telarc Blues</subfield>
|
32
|
-
</datafield>
|
33
|
-
<datafield tag="010" ind1=" " ind2=" ">
|
34
|
-
<subfield code="a"> 2003577486</subfield>
|
35
|
-
</datafield>
|
36
|
-
<datafield tag="042" ind1=" " ind2=" ">
|
37
|
-
<subfield code="a">lcderive</subfield>
|
38
|
-
</datafield>
|
39
|
-
<datafield tag="050" ind1="0" ind2="0">
|
40
|
-
<subfield code="a">SDA 80718</subfield>
|
41
|
-
</datafield>
|
42
|
-
<datafield tag="100" ind1="1" ind2=" ">
|
43
|
-
<subfield code="a">Dylan, Bob,</subfield>
|
44
|
-
<subfield code="d">1941-</subfield>
|
45
|
-
</datafield>
|
46
|
-
<datafield tag="245" ind1="1" ind2="0">
|
47
|
-
<subfield code="a">Blues on Blonde on blonde</subfield>
|
48
|
-
<subfield code="h">[sound recording] /</subfield>
|
49
|
-
<subfield code="c">[all songs written by Bob Dylan].</subfield>
|
50
|
-
</datafield>
|
51
|
-
<datafield tag="246" ind1="3" ind2=" ">
|
52
|
-
<subfield code="a">Blonde on blonde blues</subfield>
|
53
|
-
</datafield>
|
54
|
-
<datafield tag="260" ind1=" " ind2=" ">
|
55
|
-
<subfield code="a">Cleveland, OH :</subfield>
|
56
|
-
<subfield code="b">Telarc,</subfield>
|
57
|
-
<subfield code="c">p2003.</subfield>
|
58
|
-
</datafield>
|
59
|
-
<datafield tag="300" ind1=" " ind2=" ">
|
60
|
-
<subfield code="a">1 sound disc (67 min.) :</subfield>
|
61
|
-
<subfield code="b">digital, stereo. ;</subfield>
|
62
|
-
<subfield code="c">4 3/4 in.</subfield>
|
63
|
-
</datafield>
|
64
|
-
<datafield tag="306" ind1=" " ind2=" ">
|
65
|
-
<subfield code="a">010717</subfield>
|
66
|
-
</datafield>
|
67
|
-
<datafield tag="440" ind1=" " ind2="0">
|
68
|
-
<subfield code="a">Telarc blues</subfield>
|
69
|
-
</datafield>
|
70
|
-
<datafield tag="500" ind1=" " ind2=" ">
|
71
|
-
<subfield code="a">"Contemporary blues" interpretations of previously released songs; written by Bob Dylan.</subfield>
|
72
|
-
</datafield>
|
73
|
-
<datafield tag="500" ind1=" " ind2=" ">
|
74
|
-
<subfield code="a">Statement of responsibility from container insert.</subfield>
|
75
|
-
</datafield>
|
76
|
-
<datafield tag="511" ind1="0" ind2=" ">
|
77
|
-
<subfield code="a">Various performers.</subfield>
|
78
|
-
</datafield>
|
79
|
-
<datafield tag="518" ind1=" " ind2=" ">
|
80
|
-
<subfield code="a">Recorded July 2002 at the Studio, Portland, Maine.</subfield>
|
81
|
-
</datafield>
|
82
|
-
<datafield tag="500" ind1=" " ind2=" ">
|
83
|
-
<subfield code="a">"Nearly thirty years after the debut of Bob Dylan's 'Blonde on blonde', Telarc assembles some of the finest artists on the contemporary blues scene to salute the monumental blues/folk/rock recording"--Container exterior sheet.</subfield>
|
84
|
-
</datafield>
|
85
|
-
<datafield tag="500" ind1=" " ind2=" ">
|
86
|
-
<subfield code="a">"Fully 27 years after the debut of 'Blonde on blonde', Telarc gathered an assembly of contemporary blues artists to pay tribute to Dylan's masterpiece from his controversial electric period"--All Music Guide.</subfield>
|
87
|
-
</datafield>
|
88
|
-
<datafield tag="500" ind1=" " ind2=" ">
|
89
|
-
<subfield code="a">Compact disc.</subfield>
|
90
|
-
</datafield>
|
91
|
-
<datafield tag="500" ind1=" " ind2=" ">
|
92
|
-
<subfield code="a">Composer and program notes in container.</subfield>
|
93
|
-
</datafield>
|
94
|
-
<datafield tag="505" ind1="0" ind2="0">
|
95
|
-
<subfield code="t">Rainy day women # 12 & 35</subfield>
|
96
|
-
<subfield code="r">(Brian Stoltz) --</subfield>
|
97
|
-
<subfield code="t">Most likely you go your way and I'll go mine</subfield>
|
98
|
-
<subfield code="r">(Sue Foley) --</subfield>
|
99
|
-
<subfield code="t">Leopard-skin pill-box hat</subfield>
|
100
|
-
<subfield code="r">(Walter Trout) --</subfield>
|
101
|
-
<subfield code="t">Visions of Johanna</subfield>
|
102
|
-
<subfield code="r">(Anders Osborne) --</subfield>
|
103
|
-
<subfield code="t">Pledging my time</subfield>
|
104
|
-
<subfield code="r">(Duke Robillard) --</subfield>
|
105
|
-
<subfield code="t">Just like a woman</subfield>
|
106
|
-
<subfield code="r">(Eric Bibb) --</subfield>
|
107
|
-
<subfield code="t">Stuck inside of Mobile with the Memphis blues again</subfield>
|
108
|
-
<subfield code="r">(Joe Louis Walker) --</subfield>
|
109
|
-
<subfield code="t">Obviously 5 believers</subfield>
|
110
|
-
<subfield code="r">(Sean Costello) --</subfield>
|
111
|
-
<subfield code="t">One of us must know (sooner or later)</subfield>
|
112
|
-
<subfield code="r">(Clarence Bucaro) --</subfield>
|
113
|
-
<subfield code="t">Temporary like Achilles</subfield>
|
114
|
-
<subfield code="r">(Deborah Coleman) --</subfield>
|
115
|
-
<subfield code="t">I want you</subfield>
|
116
|
-
<subfield code="r">(Cyril Neville) --</subfield>
|
117
|
-
<subfield code="t">Absolutely sweet Marie</subfield>
|
118
|
-
<subfield code="r">(C.J. Chenier).</subfield>
|
119
|
-
</datafield>
|
120
|
-
<datafield tag="650" ind1=" " ind2="0">
|
121
|
-
<subfield code="a">Blues (Music)</subfield>
|
122
|
-
</datafield>
|
123
|
-
<datafield tag="906" ind1=" " ind2=" ">
|
124
|
-
<subfield code="a">7</subfield>
|
125
|
-
<subfield code="b">cbc</subfield>
|
126
|
-
<subfield code="c">copycat</subfield>
|
127
|
-
<subfield code="d">3</subfield>
|
128
|
-
<subfield code="e">ncip</subfield>
|
129
|
-
<subfield code="f">20</subfield>
|
130
|
-
<subfield code="g">y-genmusic</subfield>
|
131
|
-
</datafield>
|
132
|
-
<datafield tag="925" ind1="0" ind2=" ">
|
133
|
-
<subfield code="a">acquire</subfield>
|
134
|
-
<subfield code="b">2 copies</subfield>
|
135
|
-
<subfield code="x">policy default</subfield>
|
136
|
-
</datafield>
|
137
|
-
<datafield tag="952" ind1=" " ind2=" ">
|
138
|
-
<subfield code="a">muzerec</subfield>
|
139
|
-
</datafield>
|
140
|
-
<datafield tag="955" ind1=" " ind2=" ">
|
141
|
-
<subfield code="a">vn22 2003-10-28 to MBRS/RS</subfield>
|
142
|
-
<subfield code="e">vn17 2004-02-25 copy 2 to MBRS/RS</subfield>
|
143
|
-
</datafield>
|
144
|
-
<datafield tag="985" ind1=" " ind2=" ">
|
145
|
-
<subfield code="c">OCLC</subfield>
|
146
|
-
<subfield code="e">srreplace 2004-01</subfield>
|
147
|
-
</datafield>
|
148
|
-
</record>
|