datacite-mapping 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +4 -0
  3. data/CHANGES.md +15 -0
  4. data/README.md +8 -3
  5. data/datacite-mapping.gemspec +2 -3
  6. data/lib/datacite/mapping.rb +1 -1
  7. data/lib/datacite/mapping/affiliation.rb +44 -0
  8. data/lib/datacite/mapping/alternate_identifier.rb +2 -0
  9. data/lib/datacite/mapping/contributor.rb +32 -6
  10. data/lib/datacite/mapping/contributor_name.rb +42 -0
  11. data/lib/datacite/mapping/creator.rb +39 -7
  12. data/lib/datacite/mapping/creator_name.rb +42 -0
  13. data/lib/datacite/mapping/date.rb +12 -0
  14. data/lib/datacite/mapping/date_value.rb +6 -0
  15. data/lib/datacite/mapping/description.rb +6 -2
  16. data/lib/datacite/mapping/empty_filtering_nodes.rb +1 -0
  17. data/lib/datacite/mapping/funding_reference.rb +14 -1
  18. data/lib/datacite/mapping/geo_location.rb +6 -1
  19. data/lib/datacite/mapping/geo_location_box.rb +5 -0
  20. data/lib/datacite/mapping/geo_location_node.rb +4 -2
  21. data/lib/datacite/mapping/geo_location_point.rb +3 -0
  22. data/lib/datacite/mapping/geo_location_polygon.rb +10 -1
  23. data/lib/datacite/mapping/identifier.rb +11 -9
  24. data/lib/datacite/mapping/module_info.rb +2 -2
  25. data/lib/datacite/mapping/name_identifier.rb +10 -6
  26. data/lib/datacite/mapping/name_type.rb +18 -0
  27. data/lib/datacite/mapping/publisher.rb +42 -0
  28. data/lib/datacite/mapping/read_only_nodes.rb +4 -0
  29. data/lib/datacite/mapping/related_identifier.rb +38 -1
  30. data/lib/datacite/mapping/resource.rb +25 -11
  31. data/lib/datacite/mapping/resource_type.rb +4 -0
  32. data/lib/datacite/mapping/rights.rb +33 -6
  33. data/lib/datacite/mapping/subject.rb +3 -2
  34. data/lib/datacite/mapping/title.rb +3 -2
  35. data/spec/data/datacite4/{datacite-example-Box_dateCollected_DataCollector-v4.0.xml → datacite-example-Box_dateCollected_DataCollector-v4.xml} +9 -11
  36. data/spec/data/datacite4/{datacite-example-GeoLocation-v4.0.xml → datacite-example-GeoLocation-v4.xml} +11 -10
  37. data/spec/data/datacite4/{datacite-example-HasMetadata-v4.0.xml → datacite-example-HasMetadata-v4.xml} +18 -13
  38. data/spec/data/datacite4/{datacite-example-ResearchGroup_Methods-v4.0.xml → datacite-example-ResearchGroup_Methods-v4.xml} +14 -12
  39. data/spec/data/datacite4/{datacite-example-ResourceTypeGeneral_Collection-v4.0.xml → datacite-example-ResourceTypeGeneral_Collection-v4.xml} +9 -9
  40. data/spec/data/datacite4/datacite-example-affiliation-v4.xml +114 -0
  41. data/spec/data/datacite4/{datacite-example-complicated-v4.0.xml → datacite-example-complicated-v4.xml} +14 -11
  42. data/spec/data/datacite4/datacite-example-datapaper-v4.xml +32 -0
  43. data/spec/data/datacite4/{datacite-example-dataset-v4.0.xml → datacite-example-dataset-v4.xml} +20 -14
  44. data/spec/data/datacite4/datacite-example-full-v4.xml +114 -0
  45. data/spec/data/datacite4/{datacite-example-fundingReference-v.4.0.xml → datacite-example-fundingReference-v4.xml} +16 -13
  46. data/spec/data/datacite4/datacite-example-polygon-advanced-v4.xml +141 -0
  47. data/spec/data/datacite4/datacite-example-polygon-v4.xml +161 -0
  48. data/spec/data/datacite4/{datacite-example-relationTypeIsIdenticalTo-v4.0.xml → datacite-example-relationTypeIsIdenticalTo-v4.xml} +17 -17
  49. data/spec/data/datacite4/datacite-example-software-v4.xml +66 -0
  50. data/spec/data/datacite4/{datacite-example-video-v4.0.xml → datacite-example-video-v4.xml} +7 -7
  51. data/spec/data/datacite4/{datacite-example-workflow-v4.0.xml → datacite-example-workflow-v4.xml} +13 -11
  52. data/spec/data/datacite4/metadata.xsd +102 -57
  53. data/spec/rspec_custom_matchers.rb +3 -0
  54. data/spec/unit/datacite/mapping/contributor_spec.rb +7 -1
  55. data/spec/unit/datacite/mapping/creator_spec.rb +9 -3
  56. data/spec/unit/datacite/mapping/resource_spec.rb +14 -17
  57. data/spec/unit/datacite/mapping/rights_spec.rb +0 -13
  58. metadata +42 -28
  59. data/spec/data/datacite4/datacite-example-full-v4.0.xml +0 -71
@@ -22,12 +22,14 @@ module Datacite
22
22
 
23
23
  def value_str(val)
24
24
  return "[ #{val.map(&:to_s).join(', ')} ]" if val.is_a?(Array)
25
+
25
26
  "'#{val}'"
26
27
  end
27
28
 
28
29
  def obj_to_xml(obj, _xml)
29
30
  val = value_from(obj)
30
31
  return unless val
32
+
31
33
  warn_ignored(val)
32
34
  end
33
35
 
@@ -47,6 +49,7 @@ module Datacite
47
49
  def warn_ignored(val)
48
50
  raise ArgumentError, "Expected string, got #{val}" unless val.respond_to?(:strip)
49
51
  return if val.strip.empty?
52
+
50
53
  super
51
54
  end
52
55
  include ReadOnlyNodes
@@ -57,6 +60,7 @@ module Datacite
57
60
  def warn_ignored(val)
58
61
  raise ArgumentError, "Expected array, got #{val}" unless val.respond_to?(:empty?)
59
62
  return if val.empty?
63
+
60
64
  super
61
65
  end
62
66
  include ReadOnlyNodes
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'xml/mapping_extensions'
4
+ require 'datacite/mapping/resource_type'
4
5
 
5
6
  module Datacite
6
7
  module Mapping
@@ -37,6 +38,12 @@ module Datacite
37
38
  # @!parse IS_PREVIOUS_VERSION_OF = IsPreviousVersionOf
38
39
  new :IS_PREVIOUS_VERSION_OF, 'IsPreviousVersionOf'
39
40
 
41
+ # @!parse HAS_VERSION = HasVersion
42
+ new :HAS_VERSION, 'HasVersion'
43
+
44
+ # @!parse IS_VERSION_OF = IsVersionOf
45
+ new :IS_VERSION_OF, 'IsVersionOf'
46
+
40
47
  # @!parse IS_PART_OF = IsPartOf
41
48
  new :IS_PART_OF, 'IsPartOf'
42
49
 
@@ -82,6 +89,24 @@ module Datacite
82
89
  # @!parse IS_SOURCE_OF = IsSourceOf
83
90
  new :IS_SOURCE_OF, 'IsSourceOf'
84
91
 
92
+ # @!parse IS_OBSOLETED_BY = IsObsoletedBy
93
+ new :IS_OBSOLETED_BY, 'IsObsoletedBy'
94
+
95
+ # @!parse OBSOLETES = Obsoletes
96
+ new :OBSOLETES, 'Obsoletes'
97
+
98
+ # @!parse IS_DESCRIBED_BY = IsDescribedBy
99
+ new :IS_DESCRIBED_BY, 'IsDescribedBy'
100
+
101
+ # @!parse DESCRIBES = Describes
102
+ new :DESCRIBES, 'Describes'
103
+
104
+ # @!parse IS_REQUIRED_BY = IsRequiredBy
105
+ new :IS_REQUIRED_BY, 'IsRequiredBy'
106
+
107
+ # @!parse REQUIRES = Requires
108
+ new :REQUIRES, 'Requires'
109
+
85
110
  end
86
111
 
87
112
  # Controlled list of related identifier types.
@@ -139,11 +164,15 @@ module Datacite
139
164
 
140
165
  # @!parse IGSN = IGSN
141
166
  new :IGSN, 'IGSN'
167
+
168
+ # @!parse W3ID = w3id
169
+ new :W3ID, 'w3id'
142
170
  end
143
171
 
144
172
  class Datacite3RidTypeNode < XML::MappingExtensions::TypesafeEnumNode
145
173
  def to_xml_text(enum_instance)
146
174
  return super unless enum_instance == RelatedIdentifierType::IGSN
175
+
147
176
  super(RelatedIdentifierType::HANDLE)
148
177
  end
149
178
  end
@@ -152,6 +181,7 @@ module Datacite
152
181
  class Datacite3RidValueNode < XML::Mapping::TextNode
153
182
  def obj_to_xml(obj, xml)
154
183
  return super unless obj.identifier_type == RelatedIdentifierType::IGSN
184
+
155
185
  igsn_value = obj.value
156
186
  handle_value = "10273/#{igsn_value}"
157
187
  # TODO: move this somewhere more general
@@ -173,7 +203,7 @@ module Datacite
173
203
  # @param related_metadata_scheme [String, nil] the name of the metadata scheme. Used only with `HasMetadata`/`IsMetadataFor`. Optional.
174
204
  # @param scheme_uri [URI, nil] the URI of the metadata scheme. Used only with `HasMetadata`/`IsMetadataFor`. Optional.
175
205
  # @param scheme_type [String, nil] the type of the metadata scheme. Used only with `HasMetadata`/`IsMetadataFor`. Optional.
176
- def initialize(relation_type:, value:, identifier_type:, related_metadata_scheme: nil, scheme_uri: nil, scheme_type: nil) # rubocop:disable Metrics/ParameterLists
206
+ def initialize(relation_type:, value:, identifier_type:, related_metadata_scheme: nil, scheme_uri: nil, scheme_type: nil)
177
207
  self.relation_type = relation_type
178
208
  self.value = value
179
209
  self.identifier_type = identifier_type
@@ -184,16 +214,19 @@ module Datacite
184
214
 
185
215
  def value=(value)
186
216
  raise ArgumentError, 'Value cannot be empty or nil' unless value && !value.empty?
217
+
187
218
  @value = value
188
219
  end
189
220
 
190
221
  def identifier_type=(value)
191
222
  raise ArgumentError, 'Identifier type cannot be empty or nil' unless value
223
+
192
224
  @identifier_type = value
193
225
  end
194
226
 
195
227
  def relation_type=(value)
196
228
  raise ArgumentError, 'Relation type cannot be nil' unless value
229
+
197
230
  @relation_type = value
198
231
  end
199
232
 
@@ -215,6 +248,10 @@ module Datacite
215
248
  # @return [String, nil] the name of the metadata scheme. Used only with `HasMetadata`/`IsMetadataFor`. Optional.
216
249
  text_node :related_metadata_scheme, '@relatedMetadataScheme', default_value: nil
217
250
 
251
+ # @!attribute [rw] resource_type_general
252
+ # @return [ResourceTypeGeneral] the general resource type
253
+ typesafe_enum_node :resource_type_general, '@resourceTypeGeneral', class: ResourceTypeGeneral, default_value: nil
254
+
218
255
  # @!attribute [rw] scheme_uri
219
256
  # @return [URI, nil] the URI of the metadata scheme. Used only with `HasMetadata`/`IsMetadataFor`. Optional.
220
257
  uri_node :scheme_uri, '@schemeURI', default_value: nil
@@ -46,7 +46,7 @@ module Datacite
46
46
  # @param identifier [Identifier] a persistent identifier that identifies a resource.
47
47
  # @param creators [Array<Creator>] the main researchers involved working on the data, or the authors of the publication in priority order.
48
48
  # @param titles [Array<Title>] the names or titles by which a resource is known.
49
- # @param publisher [String] the name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.
49
+ # @param publisher [Publisher] the name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.
50
50
  # @param publication_year [Integer] year when the resource is made publicly available.
51
51
  # @param subjects [Array<Subject>] subjects, keywords, classification codes, or key phrases describing the resource.
52
52
  # @param funding_references [Array<FundingReference>] information about financial support (funding) for the resource being registered.
@@ -62,7 +62,7 @@ module Datacite
62
62
  # @param rights_list [Array<Rights>] rights information for this resource.
63
63
  # @param descriptions [Array<Description>] all additional information that does not fit in any of the other categories.
64
64
  # @param geo_locations [Array<GeoLocations>] spatial region or named place where the data was gathered or about which the data is focused.
65
- def initialize(identifier:, creators:, titles:, publisher:, publication_year:, subjects: [], contributors: [], dates: [], language: nil, funding_references: [], resource_type: nil, alternate_identifiers: [], related_identifiers: [], sizes: [], formats: [], version: nil, rights_list: [], descriptions: [], geo_locations: []) # rubocop:disable Metrics/MethodLength, Metrics/ParameterLists, Metrics/AbcSize
65
+ def initialize(identifier:, creators:, titles:, publisher:, publication_year:, subjects: [], contributors: [], dates: [], language: nil, funding_references: [], resource_type: nil, alternate_identifiers: [], related_identifiers: [], sizes: [], formats: [], version: nil, rights_list: [], descriptions: [], geo_locations: []) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
66
66
  self.identifier = identifier
67
67
  self.creators = creators
68
68
  self.titles = titles
@@ -94,27 +94,37 @@ module Datacite
94
94
 
95
95
  def identifier=(value)
96
96
  raise ArgumentError, 'Resource must have an identifier' unless value
97
+
97
98
  @identifier = value
98
99
  end
99
100
 
100
101
  def creators=(value)
101
102
  raise ArgumentError, 'Resource must have at least one creator' unless value && !value.empty?
103
+
102
104
  @creators = value
103
105
  end
104
106
 
105
107
  def titles=(value)
106
108
  raise ArgumentError, 'Resource must have at least one title' unless value && !value.empty?
109
+
107
110
  @titles = value
108
111
  end
109
112
 
113
+ # publisher can be entered as a string or a Publisher object, but it will be stored
114
+ # as a Publisher object
110
115
  def publisher=(value)
111
- new_value = value&.strip
112
- raise ArgumentError, 'Resource must have a publisher' unless new_value && !new_value.empty?
113
- @publisher = new_value.strip
116
+ raise ArgumentError, 'Publisher must have a value' unless value
117
+
118
+ @publisher = if value.is_a?(Publisher)
119
+ value
120
+ else
121
+ Publisher.new(value: value)
122
+ end
114
123
  end
115
124
 
116
125
  def publication_year=(value)
117
- raise ArgumentError, 'Resource must have a four-digit publication year' unless value && value.to_i.between?(1000, 9999)
126
+ raise ArgumentError, 'Resource must have a four-digit publication year' unless value&.to_i&.between?(1000, 9999)
127
+
118
128
  @publication_year = value.to_i
119
129
  end
120
130
 
@@ -151,7 +161,7 @@ module Datacite
151
161
  end
152
162
 
153
163
  def version=(value)
154
- new_value = value && value.to_s
164
+ new_value = value&.to_s
155
165
  @version = new_value&.strip
156
166
  end
157
167
 
@@ -180,8 +190,12 @@ module Datacite
180
190
  array_node :titles, 'titles', 'title', class: Title
181
191
 
182
192
  # @!attribute [rw] publisher
183
- # @return [String] the name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.
184
- text_node :publisher, 'publisher'
193
+ # @return [Publisher] the name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.
194
+ object_node :publisher, 'publisher', class: Publisher
195
+
196
+ # @!attribute [rw] resource_type
197
+ # @return [ResourceType, nil] the type of the resource
198
+ object_node :resource_type, 'resourceType', class: ResourceType, default_value: nil
185
199
 
186
200
  # @!attribute [rw] publication_year
187
201
  # @return [Integer] year when the resource is made publicly available.
@@ -246,14 +260,14 @@ module Datacite
246
260
  # Convenience method to get the creators' names.
247
261
  # @return [[Array[String]] An array of the creators' names.
248
262
  def creator_names
249
- creators.map(&:name)
263
+ creators.map { |c| c&.creator_name&.value }
250
264
  end
251
265
 
252
266
  # Convenience method to get the creators' affiliations. (Bear in mind that each creator
253
267
  # can have multiple affiliations.)
254
268
  # @return [Array[Array[String]]] An array containing each creator's array of affiliations.
255
269
  def creator_affiliations
256
- creators.map(&:affiliations)
270
+ creators.map(&:affiliation_names)
257
271
  end
258
272
 
259
273
  # Convenience method to get the funding contributor.
@@ -16,6 +16,9 @@ module Datacite
16
16
  # @!parse DATASET = Dataset
17
17
  new :DATASET, 'Dataset'
18
18
 
19
+ # @!parse DATA_PAPER = DataPaper
20
+ new :DATA_PAPER, 'DataPaper'
21
+
19
22
  # @!parse EVENT = Event
20
23
  new :EVENT, 'Event'
21
24
 
@@ -65,6 +68,7 @@ module Datacite
65
68
 
66
69
  def resource_type_general=(val)
67
70
  raise ArgumentError, 'General resource type cannot be nil' unless val
71
+
68
72
  @resource_type_general = val
69
73
  end
70
74
 
@@ -12,24 +12,51 @@ module Datacite
12
12
  # Initializes a new {Rights} object
13
13
  #
14
14
  # @param uri [URI, nil] a URI for the license. Optional.
15
- # @param value [String] the rights statement. Cannot be empty or nil.
16
- def initialize(uri: nil, value:)
15
+ # @param identifier [String, nil] Optional.
16
+ # @param identifier_scheme [String, nil] Optional.
17
+ # @param scheme_url [URI, nil] Optional.
18
+ # @param language [String, nil] Optional.
19
+ # @param value [String] a rights statement.
20
+ def initialize(uri: nil, identifier: nil, identifier_scheme: nil, scheme_uri: nil, language: nil, value: nil)
17
21
  self.uri = uri
22
+ self.identifier = identifier
23
+ self.identifier_scheme = identifier_scheme
24
+ self.scheme_uri = scheme_uri
25
+ self.language = language
18
26
  self.value = value
19
27
  end
20
28
 
21
- def value=(v)
22
- raise ArgumentError, 'Value cannot be empty or nil' unless v && !v.empty?
23
- @value = v.strip
29
+ def language=(value)
30
+ @language = value&.strip
31
+ end
32
+
33
+ def value=(new_value)
34
+ @value = new_value&.strip
24
35
  end
25
36
 
26
37
  # @!attribute [rw] uri
27
38
  # @return [URI, nil] a URI for the license. Optional.
28
39
  uri_node :uri, '@rightsURI', default_value: nil
29
40
 
41
+ # @!attribute [rw] language
42
+ # @return [String, nil] an IETF BCP 47, ISO 639-1 language code identifying the language.
43
+ text_node :language, '@xml:lang', default_value: nil
44
+
45
+ # @!attribute [rw] identifier
46
+ # @return [String, nil] an identifier for the rights setting. Optional.
47
+ text_node :identifier, '@rightsIdentifier', default_value: nil
48
+
49
+ # @!attribute [rw] identifier_scheme
50
+ # @return [String, nil] an identifier for the rights scheme. Optional.
51
+ text_node :identifier_scheme, '@rightsIdentifierScheme', default_value: nil
52
+
53
+ # @!attribute [rw] scheme_uri
54
+ # @return [URI, nil] a URI for the rights scheme. Optional.
55
+ uri_node :scheme_uri, '@schemeURI', default_value: nil
56
+
30
57
  # @!attribute [rw] value
31
58
  # @return [String] the rights statement. Cannot be empty or nil.
32
- text_node :value, 'text()'
59
+ text_node :value, 'text()', default_value: nil
33
60
 
34
61
  fallback_mapping :datacite_3, :_default
35
62
  end
@@ -25,9 +25,10 @@ module Datacite
25
25
  @language = value&.strip
26
26
  end
27
27
 
28
- def value=(v)
29
- new_value = v&.strip
28
+ def value=(value)
29
+ new_value = value&.strip
30
30
  raise ArgumentError, 'Value cannot be empty or nil' unless new_value && !new_value.empty?
31
+
31
32
  @value = new_value
32
33
  end
33
34
 
@@ -36,9 +36,10 @@ module Datacite
36
36
  @language = value&.strip
37
37
  end
38
38
 
39
- def value=(v)
40
- new_value = v&.strip
39
+ def value=(value)
40
+ new_value = value&.strip
41
41
  raise ArgumentError, 'Value cannot be empty or nil' unless new_value && !new_value.empty?
42
+
42
43
  @value = new_value.strip
43
44
  end
44
45
 
@@ -3,25 +3,23 @@
3
3
  <identifier identifierType="DOI">10.5072/DataCollector_dateCollected_geoLocationBox</identifier>
4
4
  <creators>
5
5
  <creator>
6
- <creatorName>Peach, A.</creatorName>
6
+ <creatorName nameType="Personal">Peach, A.</creatorName>
7
7
  </creator>
8
8
  </creators>
9
9
  <titles>
10
- <title>
11
- Temperature and Humidity in School Classrooms, Ponhook Lake, N.S., 1961-1962
12
- </title>
10
+ <title xml:lang="en">Temperature and Humidity in School Classrooms, Ponhook Lake, N.S., 1961-1962</title>
13
11
  </titles>
14
- <publisher>National Research Council Canada</publisher>
12
+ <publisher xml:lang="en">National Research Council Canada</publisher>
15
13
  <publicationYear>1963</publicationYear>
16
14
  <subjects>
17
- <subject schemeURI="http://lccn.loc.gov/sh85062931" subjectScheme="LCCN">Temperature</subject>
18
- <subject schemeURI="http://lccn.loc.gov/sh85133712" subjectScheme="LCCN">Humidity</subject>
19
- <subject schemeURI="http://lccn.loc.gov/sh88003345" subjectScheme="LCCN">Classrooms</subject>
20
- <subject>Ponhook Lake (N.S.)</subject>
15
+ <subject xml:lang="en" schemeURI="http://lccn.loc.gov/sh85062931" subjectScheme="LCCN">Temperature</subject>
16
+ <subject xml:lang="en" schemeURI="http://lccn.loc.gov/sh85133712" subjectScheme="LCCN">Humidity</subject>
17
+ <subject xml:lang="en" schemeURI="http://lccn.loc.gov/sh88003345" subjectScheme="LCCN">Classrooms</subject>
18
+ <subject xml:lang="en">Ponhook Lake (N.S.)</subject>
21
19
  </subjects>
22
20
  <contributors>
23
21
  <contributor contributorType="DataCollector">
24
- <contributorName>Pomegranate, B.</contributorName>
22
+ <contributorName nameType="Personal">Pomegranate, B.</contributorName>
25
23
  </contributor>
26
24
  </contributors>
27
25
  <dates>
@@ -33,7 +31,7 @@
33
31
  <size>10 p.</size>
34
32
  </sizes>
35
33
  <descriptions>
36
- <description descriptionType="Abstract">
34
+ <description xml:lang="en" descriptionType="Abstract">
37
35
  The Division has been taking records of temperatures and humidities in groups of houses at various locations in Canada over the past several years. This survey has more recently been extended to include schools. Records obtained from classrooms in
38
36
  six schools in Ponhook Lake, Nova Scotia from June 1, 1961-October 12, 1962 are now reported.
39
37
  </description>
@@ -3,32 +3,33 @@
3
3
  <identifier identifierType="DOI">10.5072/geoPointExample</identifier>
4
4
  <creators>
5
5
  <creator>
6
- <creatorName>Schumann, Kai</creatorName>
6
+ <creatorName nameType="Personal">Schumann, Kai</creatorName>
7
7
  </creator>
8
8
  <creator>
9
- <creatorName>Völker, David</creatorName>
9
+ <creatorName nameType="Personal">Völker, David</creatorName>
10
10
  </creator>
11
11
  <creator>
12
- <creatorName>Weinrebe, Wilhelm Reiber</creatorName>
12
+ <creatorName nameType="Personal">Weinrebe, Wilhelm Reiber</creatorName>
13
13
  </creator>
14
14
  </creators>
15
15
  <titles>
16
- <title>
16
+ <title xml:lang="en">
17
17
  Gridded results of swath bathymetric mapping of Disko Bay, Western Greenland, 2007-2008
18
18
  </title>
19
19
  </titles>
20
- <publisher>
20
+ <publisher xml:lang="en">
21
21
  PANGAEA - Data Publisher for Earth &amp; Environmental Science
22
22
  </publisher>
23
23
  <publicationYear>2011</publicationYear>
24
24
  <subjects>
25
- <subject subjectScheme="DDC">551 Geology, hydrology, meteorology</subject>
25
+ <subject xml:lang="en" subjectScheme="DDC">551 Geology, hydrology, meteorology</subject>
26
26
  </subjects>
27
27
  <contributors>
28
28
  <contributor contributorType="HostingInstitution">
29
- <contributorName>
29
+ <contributorName nameType="Organizational">
30
30
  IFM-GEOMAR Leibniz-Institute of Marine Sciences, Kiel University
31
31
  </contributorName>
32
+ <nameIdentifier nameIdentifierScheme="ROR" schemeURI="http://ror.org/">https://ror.org/02h2x0161</nameIdentifier>
32
33
  </contributor>
33
34
  </contributors>
34
35
  <language>en</language>
@@ -43,10 +44,10 @@
43
44
  <format>application/zip</format>
44
45
  </formats>
45
46
  <rightsList>
46
- <rights rightsURI="http://creativecommons.org/licenses/by/3.0/deed">Creative Commons Attribution 3.0 Unported</rights>
47
- </rightsList>
47
+ <rights xml:lang="en-US" schemeURI="https://spdx.org/licenses/" rightsIdentifierScheme="SPDX" rightsIdentifier="
48
+ CC-BY-3.0" rightsURI="http://creativecommons.org/licenses/by/3.0/deed">Creative Commons Attribution-NoDerivs 2.0 Generic</rights></rightsList>
48
49
  <descriptions>
49
- <description descriptionType="Abstract">
50
+ <description xml:lang="en" descriptionType="Abstract">
50
51
  A ship-based acoustic mapping campaign was conducted at the exit of Ilulissat Ice Fjord and in the sedimentary basin of Disko Bay to the west of the fjord mouth. Submarine landscape and sediment distribution patterns are interpreted in terms of
51
52
  glaciomarine facies types that are related to variations in the past position of the glacier front. In particular, asymmetric ridges that form a curved entity and a large sill at the fjord mouth may represent moraines hat depict at least two
52
53
  relatively stable positions of the ice front in the Disko Bay and at the fjord mouth. In this respect, Ilulissat Glacier shows prominent differences to the East Greenland Kangerlussuaq Glacier which is comparable in present size and present role for
@@ -3,24 +3,32 @@
3
3
  <identifier identifierType="DOI">10.5072/example</identifier>
4
4
  <creators>
5
5
  <creator>
6
- <creatorName>Mari, Bernard</creatorName>
6
+ <creatorName nameType="Personal">Mari, Bernard</creatorName>
7
+ <givenName>Bernard</givenName>
8
+ <familyName>Mari</familyName>
7
9
  </creator>
8
10
  <creator>
9
- <creatorName>Puissegur, Marie-Pierre</creatorName>
11
+ <creatorName nameType="Personal">Puissegur, Marie-Pierre</creatorName>
12
+ <givenName>Marie-Pierre</givenName>
13
+ <familyName>Puissegur</familyName>
10
14
  </creator>
11
15
  <creator>
12
- <creatorName>Barbry, Pascal</creatorName>
16
+ <creatorName nameType="Personal">Barbry, Pascal</creatorName>
17
+ <givenName>Pascal</givenName>
18
+ <familyName>Barbry</familyName>
13
19
  </creator>
14
20
  <creator>
15
- <creatorName>Lebrigand, Kevin</creatorName>
21
+ <creatorName nameType="Personal">Lebrigand, Kevin</creatorName>
22
+ <givenName>Kevin</givenName>
23
+ <familyName>Lebrigand</familyName>
16
24
  </creator>
17
25
  </creators>
18
26
  <titles>
19
- <title>
27
+ <title xml:lang="en">
20
28
  Identification of putative novel specific targets of mir-210 in A549 human adenocarcinoma cells
21
29
  </title>
22
30
  </titles>
23
- <publisher>
31
+ <publisher xml:lang="fr">
24
32
  Institut de Pharmacologie Moleculaire et Cellulaire (IPMC), CNRS UMR6097, Universite de Nice Sophia-Antipolis, 660 route des lucioles, 06560 Valbonne - Sophia-Antipolis, France
25
33
  </publisher>
26
34
  <publicationYear>2010</publicationYear>
@@ -33,10 +41,10 @@
33
41
  </subjects>
34
42
  <contributors>
35
43
  <contributor contributorType="HostingInstitution">
36
- <contributorName>INIST-CNRS</contributorName>
44
+ <contributorName xml:lang="fr" nameType="Organizational">INIST-CNRS</contributorName>
37
45
  </contributor>
38
46
  </contributors>
39
- <language>eng</language>
47
+ <language>en</language>
40
48
  <resourceType resourceTypeGeneral="Text">Experiment report</resourceType>
41
49
  <relatedIdentifiers>
42
50
  <relatedIdentifier relatedIdentifierType="URL" relatedMetadataScheme="ISA-Tab" relationType="HasMetadata" schemeType="Text" schemeURI="http://isatab.sourceforge.net/docs/ISA-TAB_release-candidate-1_v1.0_24nov08.pdf">http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE18695</relatedIdentifier>
@@ -49,12 +57,9 @@
49
57
  <format>PDF</format>
50
58
  </formats>
51
59
  <rightsList>
52
- <rights rightsURI="http://creativecommons.org/licenses/by-nc-nd/3.0/">
53
- Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
54
- </rights>
55
- </rightsList>
60
+ <rights xml:lang="en-US" schemeURI="https://spdx.org/licenses/" rightsIdentifierScheme="SPDX" rightsIdentifier="CC-BY-NC-ND-3.0" rightsURI="http://creativecommons.org/licenses/by-nc-nd/3.0/"/> </rightsList>
56
61
  <descriptions>
57
- <description descriptionType="Abstract">
62
+ <description xml:lang="en" descriptionType="Abstract">
58
63
  To identify putative novel specific targets of mir-210, we overexpressed miR-210 as well as miR-34a and a siRNA targeted against E2F3 in A549 human adenocarcinoma cells by transfecting them with synthetic pre-miRNAs or a synthetic negative pre-miRNA
59
64
  as control (miR-Neg). RNA samples were harvested at 48 hours post-transfection and 2 independent experiments performed in dye-swap: miR-210 versus miR-Neg ; miR-34a versus miR-Neg ; si-E2F3 versus miR-Neg ; si-control versus miR-Neg.
60
65
  </description>