uwdc 0.0.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.
- checksums.yaml +15 -0
- data/.gitignore +17 -0
- data/.rspec +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/Guardfile +13 -0
- data/LICENSE.txt +22 -0
- data/README.md +111 -0
- data/Rakefile +7 -0
- data/lib/uwdc.rb +21 -0
- data/lib/uwdc/display.rb +91 -0
- data/lib/uwdc/dublin_core.rb +34 -0
- data/lib/uwdc/file_sec.rb +12 -0
- data/lib/uwdc/mets.rb +195 -0
- data/lib/uwdc/mods.rb +206 -0
- data/lib/uwdc/origin.rb +12 -0
- data/lib/uwdc/rels_ext.rb +15 -0
- data/lib/uwdc/struct_map.rb +12 -0
- data/lib/uwdc/version.rb +3 -0
- data/lib/uwdc/xml.rb +38 -0
- data/spec/fixtures/africa_focus_mets.xml +178 -0
- data/spec/fixtures/artists_books_mets.xml +274 -0
- data/spec/fixtures/publishers_bindings_mets.xml +403 -0
- data/spec/fixtures/untac_archives_mets.xml +205 -0
- data/spec/integration/uwdc_spec.rb +189 -0
- data/spec/models/display_spec.rb +48 -0
- data/spec/models/dublin_core_spec.rb +19 -0
- data/spec/models/file_sec_spec.rb +18 -0
- data/spec/models/mets_spec.rb +40 -0
- data/spec/models/mods_spec.rb +99 -0
- data/spec/models/origin_spec.rb +19 -0
- data/spec/models/rels_ext_spec.rb +18 -0
- data/spec/models/struct_map_spec.rb +18 -0
- data/spec/models/xml_spec.rb +19 -0
- data/spec/spec_helper.rb +29 -0
- data/uwdc.gemspec +29 -0
- metadata +207 -0
data/lib/uwdc/mods.rb
ADDED
@@ -0,0 +1,206 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
3
|
+
module UWDC
|
4
|
+
# Public: Obtain the MODS metadata for a UWDC METS object
|
5
|
+
#
|
6
|
+
# Example
|
7
|
+
#
|
8
|
+
# @mods = UWDC::Mods.new('ECJ6ZXEYWUE7B8W')
|
9
|
+
# # => MODS object fetched from Fedora
|
10
|
+
#
|
11
|
+
# @mods = UWDC::Mods.new('ECJ6ZXEYWUE7B8W', File.read('../file.xml'))
|
12
|
+
# # => object constructed from XML file
|
13
|
+
class Mods < Mets
|
14
|
+
|
15
|
+
# Public: standardized, supported MODS attributes
|
16
|
+
def self.attributes
|
17
|
+
[:titles, :names, :dates, :forms, :abstracts, :subjects, :related_items]
|
18
|
+
end
|
19
|
+
|
20
|
+
# Public: Access the XML nodes of the MODS XML
|
21
|
+
#
|
22
|
+
# Example
|
23
|
+
#
|
24
|
+
# @mods.nodes
|
25
|
+
# # => Nokogiri::XML::NodeSet
|
26
|
+
#
|
27
|
+
# Returns the Nokogiri::XML::NodeSet for the parsed MODS XML
|
28
|
+
def nodes
|
29
|
+
@xml.nodes.xpath("//dmdSec[contains(@ID,'#{@id}')]//mods[1]")
|
30
|
+
end
|
31
|
+
|
32
|
+
# Public: Access the XML nodes of the METS file
|
33
|
+
#
|
34
|
+
# Example
|
35
|
+
#
|
36
|
+
# @mods.metadata
|
37
|
+
# # => {:title => ['A life idyl', ...], ...}
|
38
|
+
#
|
39
|
+
# Returns Hash
|
40
|
+
def metadata
|
41
|
+
attributes = UWDC::Mods.attributes.inject({}) do |result, method|
|
42
|
+
result[method] = self.send(method)
|
43
|
+
result
|
44
|
+
end
|
45
|
+
attributes[:access_conditions] = self.access_conditions
|
46
|
+
attributes
|
47
|
+
end
|
48
|
+
|
49
|
+
# Public: Array of title data
|
50
|
+
#
|
51
|
+
# Example
|
52
|
+
#
|
53
|
+
# @mods.titles
|
54
|
+
# # => ['A life ldyl', ...]
|
55
|
+
#
|
56
|
+
# Returns Array
|
57
|
+
def titles
|
58
|
+
clean_nodes(nodes.xpath("//mods/titleInfo//title"))
|
59
|
+
end
|
60
|
+
|
61
|
+
# Public: Array of roles and nameParts
|
62
|
+
#
|
63
|
+
# Example
|
64
|
+
#
|
65
|
+
# @mods.names
|
66
|
+
# # => [#<OpenStruct name="Foo", role="Bar">, ...]
|
67
|
+
#
|
68
|
+
# @mods.names.first.name
|
69
|
+
# # => "Foo"
|
70
|
+
#
|
71
|
+
# Returns Array of OpenStructs
|
72
|
+
def names
|
73
|
+
nodes.xpath("//mods/name").inject([]){|arr,node| arr << capture_name(node); arr}
|
74
|
+
end
|
75
|
+
|
76
|
+
# Public: Array of dates
|
77
|
+
#
|
78
|
+
# Example
|
79
|
+
#
|
80
|
+
# @mods.dates
|
81
|
+
# # => ["1985", ...]
|
82
|
+
#
|
83
|
+
# Returns Array of Strings
|
84
|
+
def dates
|
85
|
+
clean_nodes(nodes.xpath("//mods/originInfo//dateIssued"))
|
86
|
+
end
|
87
|
+
|
88
|
+
# Public: Array of forms
|
89
|
+
# Example
|
90
|
+
#
|
91
|
+
# @mods.forms
|
92
|
+
# # => ["StillImage", ...]
|
93
|
+
#
|
94
|
+
# Returns Array of Strings
|
95
|
+
def forms
|
96
|
+
clean_nodes(nodes.xpath("//mods/physicalDescription//form"))
|
97
|
+
end
|
98
|
+
|
99
|
+
# Public: Array of abstracts (sometimes translated)
|
100
|
+
# @TODO: support lang here
|
101
|
+
#
|
102
|
+
# Example
|
103
|
+
#
|
104
|
+
# @mods.abstracts
|
105
|
+
# # => ["The man is an entertainer who captured the wild hyena...", ...]
|
106
|
+
#
|
107
|
+
# Returns Array of Strings
|
108
|
+
def abstracts
|
109
|
+
clean_nodes(nodes.xpath("//mods//abstract"))
|
110
|
+
end
|
111
|
+
|
112
|
+
# Public: Array of subject data
|
113
|
+
#
|
114
|
+
# Example
|
115
|
+
#
|
116
|
+
# @mods.subjects
|
117
|
+
# # => ["Delehanty, James", "Animals", ...]
|
118
|
+
#
|
119
|
+
# Returns Array of Strings
|
120
|
+
def subjects
|
121
|
+
clean_nodes(nodes.xpath("//mods/subject//topic"))
|
122
|
+
end
|
123
|
+
|
124
|
+
# Public: Array of geographic subject data
|
125
|
+
# @TODO: subjects_heirarchical_geographic
|
126
|
+
#
|
127
|
+
# Example
|
128
|
+
# @mods.subjects_heirarchical_geographic
|
129
|
+
# # => ["Foo", "Bar", "Baz"]
|
130
|
+
def subjects_heirarchical_geographic
|
131
|
+
end
|
132
|
+
|
133
|
+
# Public: OpenStruct - Terms of Use and Reuse Rights
|
134
|
+
#
|
135
|
+
# Example
|
136
|
+
#
|
137
|
+
# @mods.access_conditions
|
138
|
+
# # => #<OpenStruct rights=["Delehanty, Jim"], reuse=["Delehanty, Jim"]>
|
139
|
+
#
|
140
|
+
# @mods.access_conditions.rights
|
141
|
+
# # => "Delehanty, Jim"
|
142
|
+
#
|
143
|
+
# Retuns an OpenStruct
|
144
|
+
def access_conditions
|
145
|
+
OpenStruct.new(rights: rights, reuse: reuse)
|
146
|
+
end
|
147
|
+
|
148
|
+
# Public: Array of Structs - Related items' label and value
|
149
|
+
#
|
150
|
+
# Example
|
151
|
+
#
|
152
|
+
# @mods.related_items
|
153
|
+
# # => [#<OpenStruct label="Part of", name="Africa Focus">, ...]
|
154
|
+
#
|
155
|
+
# @mods.related_items.first.name
|
156
|
+
# # => "Africa Focus"
|
157
|
+
#
|
158
|
+
# Retuns Array of OpenStruct
|
159
|
+
def related_items
|
160
|
+
nodes.xpath("//mods/relatedItem").inject([]){|arr,node| arr << capture_relation(node) ; arr }
|
161
|
+
end
|
162
|
+
|
163
|
+
# Public: Check MODS for validity
|
164
|
+
# @TODO: Use the UWDC MODS Schema
|
165
|
+
#
|
166
|
+
# Example
|
167
|
+
#
|
168
|
+
# @mods.valid?
|
169
|
+
# # => true
|
170
|
+
#
|
171
|
+
# Returns Boolean
|
172
|
+
def valid?
|
173
|
+
response = http_client.get("http://www.loc.gov/standards/mods/mods.xsd")
|
174
|
+
xsd = Nokogiri::XML::Schema.new(response.body)
|
175
|
+
xml = Nokogiri::XML(nodes.to_xml)
|
176
|
+
xsd.valid?(xml)
|
177
|
+
end
|
178
|
+
|
179
|
+
private
|
180
|
+
|
181
|
+
# Internal: Rights/Ownership String
|
182
|
+
def rights
|
183
|
+
clean_nodes(nodes.xpath("//accessCondition[@type='rightsOwnership']"))
|
184
|
+
end
|
185
|
+
|
186
|
+
# Internal: Reuse Rights String
|
187
|
+
def reuse
|
188
|
+
clean_nodes(nodes.xpath("//accessCondition[@type='useAndReproduction']"))
|
189
|
+
end
|
190
|
+
|
191
|
+
# Internal: Related Label String
|
192
|
+
def related_label(node)
|
193
|
+
node['displayLabel'] ? node['displayLabel'] : "Related item"
|
194
|
+
end
|
195
|
+
|
196
|
+
# Internal: Capture relation metadata
|
197
|
+
def capture_relation(node)
|
198
|
+
OpenStruct.new(label: related_label(node), name: node.xpath('.//name | .//title').text)
|
199
|
+
end
|
200
|
+
|
201
|
+
# Internal: Capture name metadata
|
202
|
+
def capture_name(node)
|
203
|
+
OpenStruct.new(name: node.xpath('.//namePart').text, role: node.xpath('.//role/roleTerm').text)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
data/lib/uwdc/origin.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
module UWDC
|
2
|
+
# Return the UWDC/PREMIS-ish submitters of a METS file
|
3
|
+
class Origin < Mets
|
4
|
+
def nodes
|
5
|
+
@xml.nodes.xpath("//amdSec[contains(@ID,'#{@id}')]//origin[1]")
|
6
|
+
end
|
7
|
+
|
8
|
+
def submitters
|
9
|
+
clean_nodes(nodes.xpath(".//agentName"))
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module UWDC
|
2
|
+
# Return the CMODELS related to METS file objects
|
3
|
+
class RelsExt < Mets
|
4
|
+
def nodes
|
5
|
+
@xml.nodes.xpath("//amdSec[contains(@ID,'#{@id}')]//RDF[1]")
|
6
|
+
end
|
7
|
+
|
8
|
+
def models
|
9
|
+
nodes.xpath("//amdSec[contains(@ID,'RELS-EXT')]").inject({}) do |result, node|
|
10
|
+
result["#{node.attribute('ID')}"] = pick_attribute(node.xpath(".//hasModel"), 'resource')
|
11
|
+
result
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module UWDC
|
2
|
+
# Return the structure of a METS file
|
3
|
+
class StructMap < Mets
|
4
|
+
def nodes
|
5
|
+
@xml.nodes.xpath("//structMap[contains(@ID,'#{@id}')]")
|
6
|
+
end
|
7
|
+
|
8
|
+
def structure
|
9
|
+
nodes.xpath('div').inject([]){|result, div| result << Div.new(div)}
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/uwdc/version.rb
ADDED
data/lib/uwdc/xml.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
module UWDC
|
2
|
+
# Read or Fetch METS XML files
|
3
|
+
class XML
|
4
|
+
extend HTTPClient::IncludeClient
|
5
|
+
include_http_client
|
6
|
+
|
7
|
+
attr_accessor :xml, :nodes, :status
|
8
|
+
|
9
|
+
def initialize(id, xml=nil, status=nil)
|
10
|
+
@id ||= id
|
11
|
+
@xml,@status = http_xml(xml,status)
|
12
|
+
end
|
13
|
+
|
14
|
+
def http_xml(xml,status)
|
15
|
+
unless xml
|
16
|
+
begin
|
17
|
+
# http://depot.library.wisc.edu:9090/fedora/objects/1711.dl:33QOBSVPJLWEM8S/methods/1711.dl:SDefineFirstClassObject/viewMets
|
18
|
+
#response = http_client.get("http://depot.library.wisc.edu/uwdcutils/METS/1711.dl:#{@id}")
|
19
|
+
response = http_client.get("http://depot.library.wisc.edu:9090/fedora/objects/1711.dl:#{@id}/methods/1711.dl:SDefineFirstClassObject/viewMets")
|
20
|
+
xml = response.body
|
21
|
+
status = response.status
|
22
|
+
rescue TimeoutError, HTTPClient::ConfigurationError, HTTPClient::BadResponseError, Nokogiri::SyntaxError => error
|
23
|
+
exception = error
|
24
|
+
end
|
25
|
+
end
|
26
|
+
[xml,status]
|
27
|
+
end
|
28
|
+
|
29
|
+
def nodes
|
30
|
+
nokogiri_parse(@xml)
|
31
|
+
end
|
32
|
+
|
33
|
+
def nokogiri_parse(xml)
|
34
|
+
nodes = Nokogiri::XML.parse(xml)
|
35
|
+
nodes.remove_namespaces!
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,178 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
2
|
+
<mets OBJID="1711.dl:ECJ6ZXEYWUE7B8W" LABEL="Hyena Wrestler with Muzzled Hyena" xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/METS/ http://depot.library.wisc.edu:9090/fedora/get/1711.dl:XMLSchema-METS-1.7/XSD">
|
3
|
+
<metsHdr/>
|
4
|
+
<dmdSec ID="x1711-dl_ECJ6ZXEYWUE7B8W-BIB0">
|
5
|
+
<mdWrap MIMETYPE="text/xml" MDTYPE="MODS" LABEL="MODS">
|
6
|
+
<xmlData>
|
7
|
+
<mods:mods xmlns:mods="http://www.loc.gov/mods/v3">
|
8
|
+
<mods:titleInfo>
|
9
|
+
<mods:title>Hyena Wrestler with Muzzled Hyena</mods:title>
|
10
|
+
</mods:titleInfo>
|
11
|
+
<mods:identifier type="hdl">1711.dl/ECJ6ZXEYWUE7B8W</mods:identifier>
|
12
|
+
<mods:name>
|
13
|
+
<mods:namePart>Delehanty, James</mods:namePart>
|
14
|
+
<mods:role>
|
15
|
+
<mods:roleTerm type="text">Photographer</mods:roleTerm>
|
16
|
+
</mods:role>
|
17
|
+
</mods:name>
|
18
|
+
<mods:subject>
|
19
|
+
<mods:topic>Delehanty, James</mods:topic>
|
20
|
+
</mods:subject>
|
21
|
+
<mods:subject>
|
22
|
+
<mods:topic>Animals</mods:topic>
|
23
|
+
</mods:subject>
|
24
|
+
<mods:subject>
|
25
|
+
<mods:topic>Hyenas</mods:topic>
|
26
|
+
</mods:subject>
|
27
|
+
<mods:subject>
|
28
|
+
<mods:topic>Portraits</mods:topic>
|
29
|
+
</mods:subject>
|
30
|
+
<mods:subject>
|
31
|
+
<mods:topic>Sports</mods:topic>
|
32
|
+
</mods:subject>
|
33
|
+
<mods:subject>
|
34
|
+
<mods:topic>Wrestling</mods:topic>
|
35
|
+
</mods:subject>
|
36
|
+
<mods:subject>
|
37
|
+
<mods:topic>West Africa</mods:topic>
|
38
|
+
</mods:subject>
|
39
|
+
<mods:abstract> The man is an entertainer who captured the wild hyena when it was a cub. He earns his living by wandering from village to village in Central Niger wrestling the hyena for the amusement of the crowd.</mods:abstract>
|
40
|
+
<mods:originInfo>
|
41
|
+
<mods:dateIssued encoding="iso8601">1985</mods:dateIssued>
|
42
|
+
</mods:originInfo>
|
43
|
+
<mods:typeOfResource>still image</mods:typeOfResource>
|
44
|
+
<mods:physicalDescription>
|
45
|
+
<mods:form>StillImage</mods:form>
|
46
|
+
</mods:physicalDescription>
|
47
|
+
<mods:relatedItem displayLabel="Part of" type="host">
|
48
|
+
<mods:titleInfo>
|
49
|
+
<mods:title>Africa Focus</mods:title>
|
50
|
+
</mods:titleInfo>
|
51
|
+
</mods:relatedItem>
|
52
|
+
<mods:accessCondition type="useAndReproduction">Delehanty, Jim</mods:accessCondition>
|
53
|
+
<mods:accessCondition type="rightsOwnership">Delehanty, Jim</mods:accessCondition>
|
54
|
+
<mods:recordInfo>
|
55
|
+
<mods:recordIdentifier>1711.dl:ECJ6ZXEYWUE7B8W.BIB0</mods:recordIdentifier>
|
56
|
+
<mods:recordOrigin>UWDCC</mods:recordOrigin>
|
57
|
+
<mods:recordChangeDate encoding="w3cdtf">2004-08-02</mods:recordChangeDate>
|
58
|
+
<mods:languageOfCataloging>
|
59
|
+
<mods:languageTerm authority="iso639-2b">eng</mods:languageTerm>
|
60
|
+
</mods:languageOfCataloging>
|
61
|
+
</mods:recordInfo>
|
62
|
+
<mods:relatedItem displayLabel="Collection" type="host">
|
63
|
+
<mods:identifier>1711.dl:CollectionAfricaFocus</mods:identifier>
|
64
|
+
<mods:name>Africa Focus: Sights and Sounds of a Continent</mods:name>
|
65
|
+
</mods:relatedItem>
|
66
|
+
</mods:mods>
|
67
|
+
</xmlData>
|
68
|
+
</mdWrap>
|
69
|
+
</dmdSec>
|
70
|
+
<dmdSec ID="x1711-dl_S2OGIJADZCOBF83-DC">
|
71
|
+
<mdWrap MIMETYPE="text/xml" MDTYPE="DC" LABEL="Dublin Core Record for this object">
|
72
|
+
<xmlData>
|
73
|
+
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
|
74
|
+
<dc:identifier>1711.dl:S2OGIJADZCOBF83</dc:identifier>
|
75
|
+
</oai_dc:dc>
|
76
|
+
</xmlData>
|
77
|
+
</mdWrap>
|
78
|
+
</dmdSec>
|
79
|
+
<amdSec ID="x1711-dl_ECJ6ZXEYWUE7B8W-ORIGIN">
|
80
|
+
<digiprovMD ID="x1711-dl_ECJ6ZXEYWUE7B8W-ORIGIN-PROV0">
|
81
|
+
<mdWrap MIMETYPE="text/xml" MDTYPE="OTHER" OTHERMDTYPE="UNSPECIFIED" LABEL="ORIGIN">
|
82
|
+
<xmlData>
|
83
|
+
<uwdcProv:origin xmlns:premis="info:lc/xmlns/premis-v2" xmlns:uwdcProv="http://digital.library.wisc.edu/1711.dl/UWDCProv-1.0">
|
84
|
+
<uwdcProv:projectID>AfricaFocus</uwdcProv:projectID>
|
85
|
+
<uwdcProv:localID>2913jd27</uwdcProv:localID>
|
86
|
+
<uwdcProv:submitter>
|
87
|
+
<premis:agent>
|
88
|
+
<premis:agentIdentifier>
|
89
|
+
<premis:agentIdentifierType>UWDC Agent ID</premis:agentIdentifierType>
|
90
|
+
<premis:agentIdentifierValue>UWMadCLSASP</premis:agentIdentifierValue>
|
91
|
+
</premis:agentIdentifier>
|
92
|
+
<premis:agentName>University of Wisconsin--Madison. African Studies Program.</premis:agentName>
|
93
|
+
</premis:agent>
|
94
|
+
</uwdcProv:submitter>
|
95
|
+
</uwdcProv:origin>
|
96
|
+
</xmlData>
|
97
|
+
</mdWrap>
|
98
|
+
</digiprovMD>
|
99
|
+
</amdSec>
|
100
|
+
<amdSec ID="x1711-dl_ECJ6ZXEYWUE7B8W-RELS-EXT">
|
101
|
+
<techMD ID="x1711-dl_ECJ6ZXEYWUE7B8W-RELS-EXT-TECHMD">
|
102
|
+
<mdWrap MIMETYPE="application/rdf+xml" MDTYPE="OTHER" OTHERMDTYPE="UNSPECIFIED" LABEL="Relationships">
|
103
|
+
<xmlData>
|
104
|
+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
105
|
+
|
106
|
+
<rdf:Description rdf:about="info:fedora/1711.dl:ECJ6ZXEYWUE7B8W">
|
107
|
+
<hasMember xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/1711.dl:S2OGIJADZCOBF83"/>
|
108
|
+
<hasModel xmlns="info:fedora/fedora-system:def/model#" rdf:resource="info:fedora/1711.dl:CModelUWDCObject"/>
|
109
|
+
<hasModel xmlns="info:fedora/fedora-system:def/model#" rdf:resource="info:fedora/1711.dl:CModelFirstClassObject"/>
|
110
|
+
<hasModel xmlns="info:fedora/fedora-system:def/model#" rdf:resource="info:fedora/1711.dl:CModelCompositeObject"/>
|
111
|
+
<isMemberOfProject xmlns="http://digital.library.wisc.edu/1711.dl/rdf/1.0/relations#" rdf:resource="hdl:1711.dl/AfricaFocus"/>
|
112
|
+
<isMemberOfCollection xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/1711.dl:CollectionAfricaFocus"/>
|
113
|
+
</rdf:Description>
|
114
|
+
|
115
|
+
</rdf:RDF>
|
116
|
+
</xmlData>
|
117
|
+
</mdWrap>
|
118
|
+
</techMD>
|
119
|
+
</amdSec>
|
120
|
+
<amdSec ID="x1711-dl_S2OGIJADZCOBF83-RELS-EXT">
|
121
|
+
<techMD ID="x1711-dl_S2OGIJADZCOBF83-RELS-EXT-TECHMD">
|
122
|
+
<mdWrap MIMETYPE="application/rdf+xml" MDTYPE="OTHER" OTHERMDTYPE="UNSPECIFIED" LABEL="Relationships">
|
123
|
+
<xmlData>
|
124
|
+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
125
|
+
|
126
|
+
<rdf:Description rdf:about="info:fedora/1711.dl:S2OGIJADZCOBF83">
|
127
|
+
<hasModel xmlns="info:fedora/fedora-system:def/model#" rdf:resource="info:fedora/1711.dl:CModelUWDCObject"/>
|
128
|
+
<hasModel xmlns="info:fedora/fedora-system:def/model#" rdf:resource="info:fedora/1711.dl:CModelImageWithDefaultRes"/>
|
129
|
+
<isMemberOfProject xmlns="http://digital.library.wisc.edu/1711.dl/rdf/1.0/relations#" rdf:resource="hdl:1711.dl/AfricaFocus"/>
|
130
|
+
<isMemberOf xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/1711.dl:ECJ6ZXEYWUE7B8W"/>
|
131
|
+
</rdf:Description>
|
132
|
+
|
133
|
+
</rdf:RDF>
|
134
|
+
</xmlData>
|
135
|
+
</mdWrap>
|
136
|
+
</techMD>
|
137
|
+
</amdSec>
|
138
|
+
<fileSec>
|
139
|
+
<fileGrp ID="x1711-dl_ECJ6ZXEYWUE7B8W-DISSEMINATORS">
|
140
|
+
<file ID="x1711-dl_ECJ6ZXEYWUE7B8W-title" MIMETYPE="text/plain;charset=UTF-8" USE="title">
|
141
|
+
<FLocat LOCTYPE="URL" xlink:type="simple" xlink:href="http://depot.library.wisc.edu/repository/fedora/1711.dl:ECJ6ZXEYWUE7B8W/methods/1711.dl:SDefineUWDCObject/getTitle"/>
|
142
|
+
</file>
|
143
|
+
<file ID="x1711-dl_ECJ6ZXEYWUE7B8W-visualrepresentation" MIMETYPE="image/jpeg" USE="visualrepresentation">
|
144
|
+
<FLocat LOCTYPE="URL" xlink:type="simple" xlink:href="http://depot.library.wisc.edu/repository/fedora/1711.dl:ECJ6ZXEYWUE7B8W/methods/1711.dl:SDefineCompositeObject/getVisualRepresentation"/>
|
145
|
+
</file>
|
146
|
+
</fileGrp>
|
147
|
+
<fileGrp ID="x1711-dl_S2OGIJADZCOBF83-DISSEMINATORS">
|
148
|
+
<file ID="x1711-dl_S2OGIJADZCOBF83-title" MIMETYPE="text/plain;charset=UTF-8" USE="title">
|
149
|
+
<FLocat LOCTYPE="URL" xlink:type="simple" xlink:href="http://depot.library.wisc.edu/repository/fedora/1711.dl:S2OGIJADZCOBF83/methods/1711.dl:SDefineUWDCObject/getTitle"/>
|
150
|
+
</file>
|
151
|
+
<file ID="x1711-dl_S2OGIJADZCOBF83-thumb" MIMETYPE="image/jpeg" USE="thumb">
|
152
|
+
<FLocat LOCTYPE="URL" xlink:type="simple" xlink:href="http://depot.library.wisc.edu/repository/fedora/1711.dl:S2OGIJADZCOBF83/methods/1711.dl:SDefineImageWithDefaultRes/getThumb"/>
|
153
|
+
</file>
|
154
|
+
<file ID="x1711-dl_S2OGIJADZCOBF83-reference" MIMETYPE="image/jpeg" USE="reference">
|
155
|
+
<FLocat LOCTYPE="URL" xlink:type="simple" xlink:href="http://depot.library.wisc.edu/repository/fedora/1711.dl:S2OGIJADZCOBF83/methods/1711.dl:SDefineImageWithDefaultRes/getReference"/>
|
156
|
+
</file>
|
157
|
+
<file ID="x1711-dl_S2OGIJADZCOBF83-large" MIMETYPE="image/jpeg" USE="large">
|
158
|
+
<FLocat LOCTYPE="URL" xlink:type="simple" xlink:href="http://depot.library.wisc.edu/repository/fedora/1711.dl:S2OGIJADZCOBF83/methods/1711.dl:SDefineImageWithDefaultRes/getLarge"/>
|
159
|
+
</file>
|
160
|
+
<file ID="x1711-dl_S2OGIJADZCOBF83-icon" MIMETYPE="image/jpeg" USE="icon">
|
161
|
+
<FLocat LOCTYPE="URL" xlink:type="simple" xlink:href="http://depot.library.wisc.edu/repository/fedora/1711.dl:S2OGIJADZCOBF83/methods/1711.dl:SDefineImageWithIcon/getIcon"/>
|
162
|
+
</file>
|
163
|
+
</fileGrp>
|
164
|
+
</fileSec>
|
165
|
+
<structMap ID="x1711-dl_ECJ6ZXEYWUE7B8W-STRUCTMAP">
|
166
|
+
<div ID="x1711-dl_ECJ6ZXEYWUE7B8W-STRUCT" DMDID="x1711-dl_ECJ6ZXEYWUE7B8W-BIB0" ADMID="x1711-dl_ECJ6ZXEYWUE7B8W-RELS-EXT x1711-dl_ECJ6ZXEYWUE7B8W-ORIGIN">
|
167
|
+
<fptr FILEID="x1711-dl_ECJ6ZXEYWUE7B8W-title"/>
|
168
|
+
<fptr FILEID="x1711-dl_ECJ6ZXEYWUE7B8W-visualrepresentation"/>
|
169
|
+
<div ID="x1711-dl_S2OGIJADZCOBF83-STRUCT" ORDER="1" DMDID="x1711-dl_S2OGIJADZCOBF83-DC" ADMID="x1711-dl_S2OGIJADZCOBF83-RELS-EXT" CONTENTIDS="info:fedora/1711.dl:S2OGIJADZCOBF83">
|
170
|
+
<fptr FILEID="x1711-dl_S2OGIJADZCOBF83-title"/>
|
171
|
+
<fptr FILEID="x1711-dl_S2OGIJADZCOBF83-thumb"/>
|
172
|
+
<fptr FILEID="x1711-dl_S2OGIJADZCOBF83-reference"/>
|
173
|
+
<fptr FILEID="x1711-dl_S2OGIJADZCOBF83-large"/>
|
174
|
+
<fptr FILEID="x1711-dl_S2OGIJADZCOBF83-icon"/>
|
175
|
+
</div>
|
176
|
+
</div>
|
177
|
+
</structMap>
|
178
|
+
</mets>
|