uwdc 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -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
@@ -0,0 +1,3 @@
1
+ module UWDC
2
+ VERSION = "0.0.1"
3
+ end
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>