rdf 1.1.4 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dcb26de738e672fd9328d6f653a98b7171f65805
4
- data.tar.gz: da26233652361aaa44fa23fe258d0fbbc666dbf0
3
+ metadata.gz: 4528e4244296e7f1bfa2c3751d49678d90bb4cd2
4
+ data.tar.gz: 209cd71246df1ff9b0a50e3e8bcd6e8eacb71d53
5
5
  SHA512:
6
- metadata.gz: da30c447f12e8412899db7ca822097ced698a689384384a698a5c1ea326d6d1faf32c65053d363424c3f4c73460417bf02fbc8cd6d0930c9edaf3667dfe7b6dd
7
- data.tar.gz: b4093866aba7ef2198e458d41537eec08142e5faae9f56c0fee832d1f34e88e1f7481a9b5d11257b779719b2b4f37c41be73900277a64c7bcaab11c67df1ae1b
6
+ metadata.gz: 3adc84e76a53c55caf276e33bca707cd371ac71301b5c7dbc48dd555e786cd58744cabe96a56642a2012a05050eb8fabdbaeddf06361fa3076fa8a2e8a177af5
7
+ data.tar.gz: 884a542d5a761812dc881212ae913e4e8d06201cfed0f4dcc1b8ab3901baa2c2ab86ff9ad5216fecc06ed9d7d56d253c1207127e7692e2249a5ad97522aca56b
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.4
1
+ 1.1.4.1
@@ -134,7 +134,7 @@ module RDF
134
134
  # This file generated automatically using vocab-fetch from #{source}
135
135
  require 'rdf'
136
136
  module #{module_name}
137
- class #{class_name} < RDF::#{"Strict" if @strict}Vocabulary("#{uri}")
137
+ class #{class_name} < #{"Strict" if @strict}Vocabulary("#{uri}")
138
138
  ).gsub(/^ /, '') if @output_class_file
139
139
 
140
140
  # Extract statements with subjects that have the vocabulary prefix and organize into a hash of properties and values
@@ -25,7 +25,7 @@ class RDF::Query
25
25
  undef_method(*instance_methods.
26
26
  map(&:to_s).
27
27
  select {|m| m =~ /^\w+$/}.
28
- reject {|m| %w(object_id dup instance_eval inspect to_s class should should_not pretty_print).include?(m) || m[0,2] == '__'}.
28
+ reject {|m| %w(object_id dup instance_eval inspect to_s private_methods class should should_not pretty_print).include?(m) || m[0,2] == '__'}.
29
29
  map(&:to_sym))
30
30
 
31
31
  include Enumerable
@@ -431,6 +431,7 @@ module RDF
431
431
  lineno: lineno)
432
432
  end
433
433
 
434
+ public
434
435
  ##
435
436
  # Returns the encoding of the input stream.
436
437
  #
@@ -85,6 +85,17 @@ module RDF; module Util
85
85
  end
86
86
  value
87
87
  end
88
+
89
+ ##
90
+ # Remove cache entry for key
91
+ #
92
+ # @param [Object] key
93
+ # @return [Object] the previously referenced object
94
+ def delete(key)
95
+ id = @cache[key]
96
+ @cache.delete(key)
97
+ @index.delete(id) if id
98
+ end
88
99
  end # ObjectSpaceCache
89
100
 
90
101
  ##
@@ -124,6 +135,16 @@ module RDF; module Util
124
135
  end
125
136
  value
126
137
  end
138
+
139
+ ##
140
+ # Remove cache entry for key
141
+ #
142
+ # @param [Object] key
143
+ # @return [Object] the previously referenced object
144
+ def delete(key)
145
+ ref = @cache.delete(key)
146
+ ref.__getobj__ rescue nil
147
+ end
127
148
  end # WeakRefCache
128
149
  end # Cache
129
150
  end; end # RDF::Util
@@ -57,8 +57,9 @@ module RDF; module Util
57
57
  result = nil
58
58
  until remote_document do
59
59
  Net::HTTP::start(parsed_url.host, parsed_url.port,
60
- :open_timeout => 60 * 1000,
61
- :use_ssl => filename_or_url.start_with?("https")
60
+ open_timeout: 60 * 1000,
61
+ use_ssl: parsed_url.scheme == 'https',
62
+ verify_mode: OpenSSL::SSL::VERIFY_NONE
62
63
  ) do |http|
63
64
  request = Net::HTTP::Get.new(parsed_url.request_uri, headers)
64
65
  http.request(request) do |response|
@@ -134,8 +134,10 @@ module RDF
134
134
  else
135
135
  name, options = args
136
136
  options = {:label => name.to_s, vocab: self}.merge(options || {})
137
- prop = Term.intern([to_s, name.to_s].join(''), attributes: options)
138
- props[prop] = options
137
+ uri_str = [to_s, name.to_s].join('')
138
+ Term.cache.delete(uri_str) # Clear any previous entry
139
+ prop = Term.intern(uri_str, attributes: options)
140
+ props[name.to_sym] = prop
139
141
  (class << self; self; end).send(:define_method, name) { prop } unless name.to_s == "property"
140
142
  prop
141
143
  end
@@ -148,7 +150,7 @@ module RDF
148
150
  ##
149
151
  # @return [Array<RDF::URI>] a list of properties in the current vocabulary
150
152
  def properties
151
- props.keys
153
+ props.values
152
154
  end
153
155
  alias_method :__properties__, :properties
154
156
 
@@ -157,6 +159,7 @@ module RDF
157
159
  #
158
160
  # @param [String, #to_s] pname
159
161
  # @return [RDF::URI]
162
+ # @raise [KeyError] if pname suffix not found in identified vocabulary
160
163
  def expand_pname(pname)
161
164
  prefix, suffix = pname.to_s.split(":", 2)
162
165
  if prefix == "rdf"
@@ -169,12 +172,18 @@ module RDF
169
172
  end
170
173
 
171
174
  ##
172
- # Return the Vocabulary associated with a URI
175
+ # Return the Vocabulary associated with a URI. Allows the trailing '/' or '#' to be excluded
173
176
  #
174
177
  # @param [RDF::URI] uri
175
178
  # @return [Vocabulary]
176
179
  def find(uri)
177
- RDF::Vocabulary.detect {|v| RDF::URI(uri).start_with?(v.to_uri)}
180
+ RDF::Vocabulary.detect do |v|
181
+ if uri.length >= v.to_uri.length
182
+ RDF::URI(uri).start_with?(v.to_uri)
183
+ else
184
+ v.to_uri.to_s.sub(%r([/#]$), '') == uri.to_s
185
+ end
186
+ end
178
187
  end
179
188
 
180
189
  ##
@@ -186,7 +195,7 @@ module RDF
186
195
  uri = RDF::URI(uri)
187
196
  return uri if uri.is_a?(Vocabulary::Term)
188
197
  vocab = RDF::Vocabulary.detect {|v| uri.start_with?(v.to_uri)}
189
- term = vocab[uri.to_s[vocab.to_uri.to_s.length..-1]] if vocab
198
+ vocab[uri.to_s[vocab.to_uri.to_s.length..-1]] if vocab
190
199
  end
191
200
 
192
201
  ##
@@ -195,21 +204,48 @@ module RDF
195
204
  # @param [#to_s] property
196
205
  # @return [RDF::URI]
197
206
  def [](property)
198
- if self.respond_to?(property.to_sym)
199
- self.send(property.to_sym)
207
+ if props.has_key?(property.to_sym)
208
+ props[property.to_sym]
200
209
  else
201
210
  Term.intern([to_s, property.to_s].join(''), attributes: {vocab: self})
202
211
  end
203
212
  end
204
213
 
214
+ ##
215
+ # List of vocabularies this vocabulary `owl:imports`
216
+ #
217
+ # @note the alias {__imports__} guards against `RDF::OWL.imports` returning a term, rather than an array of vocabularies
218
+ # @return [Array<RDF::Vocabulary>]
219
+ def imports
220
+ @imports ||= begin
221
+ Array(self[""].attributes["owl:imports"]).map {|pn|find(expand_pname(pn)) rescue nil}.compact
222
+ rescue KeyError
223
+ []
224
+ end
225
+ end
226
+ alias_method :__imports__, :imports
227
+
228
+ ##
229
+ # List of vocabularies which import this vocabulary
230
+ # @return [Array<RDF::Vocabulary>]
231
+ def imported_from
232
+ @imported_from ||= begin
233
+ RDF::Vocabulary.select {|v| v.__imports__.include?(self)}
234
+ end
235
+ end
236
+
237
+ ##
205
238
  # @return [String] The label for the named property
239
+ # @deprecated Use {RDF::Vocabulary::Term#label}
206
240
  def label_for(name)
207
- props.fetch(self[name], {}).fetch(:label, "")
241
+ self[name].label || ''
208
242
  end
209
243
 
244
+ ##
210
245
  # @return [String] The comment for the named property
246
+ # @deprecated Use {RDF::Vocabulary::Term#comment}
211
247
  def comment_for(name)
212
- props.fetch(self[name], {}).fetch(:comment, "")
248
+ self[name].comment || ''
213
249
  end
214
250
 
215
251
  ##
@@ -244,8 +280,8 @@ module RDF
244
280
  # @yield statement
245
281
  # @yieldparam [RDF::Statement]
246
282
  def each_statement(&block)
247
- props.each do |subject, attributes|
248
- attributes.each do |prop, values|
283
+ props.each do |name, subject|
284
+ subject.attributes.each do |prop, values|
249
285
  prop = RDF::Vocabulary.expand_pname(prop) unless prop.is_a?(Symbol)
250
286
  next unless prop
251
287
  Array(values).each do |value|
@@ -344,9 +380,8 @@ module RDF
344
380
  term_defs
345
381
  end
346
382
 
347
- # Create each term
348
383
  term_defs.each do |term, attributes|
349
- vocab.term term, attributes
384
+ vocab.__property__ term, attributes
350
385
  end
351
386
 
352
387
  vocab
@@ -494,23 +529,23 @@ module RDF
494
529
  #
495
530
  # @overload URI(options = {})
496
531
  # @param [Hash{Symbol => Object}] options
497
- # @option options [Boolean] :validate (false)
498
- # @option options [Boolean] :canonicalize (false)
499
- # @option [Vocabulary] :vocab The {Vocabulary} associated with this term.
500
- # @option [String, #to_s] :scheme The scheme component.
501
- # @option [String, #to_s] :user The user component.
502
- # @option [String, #to_s] :password The password component.
503
- # @option [String, #to_s] :userinfo
504
- # The userinfo component. If this is supplied, the user and password
505
- # components must be omitted.
506
- # @option [String, #to_s] :host The host component.
507
- # @option [String, #to_s] :port The port component.
508
- # @option [String, #to_s] :authority
509
- # The authority component. If this is supplied, the user, password,
510
- # userinfo, host, and port components must be omitted.
511
- # @option [String, #to_s] :path The path component.
512
- # @option [String, #to_s] :query The query component.
513
- # @option [String, #to_s] :fragment The fragment component.
532
+ # @option options options [Boolean] :validate (false)
533
+ # @option options options [Boolean] :canonicalize (false)
534
+ # @option options [Vocabulary] :vocab The {Vocabulary} associated with this term.
535
+ # @option options [String, #to_s] :scheme The scheme component.
536
+ # @option options [String, #to_s] :user The user component.
537
+ # @option options [String, #to_s] :password The password component.
538
+ # @option options [String, #to_s] :userinfo
539
+ # The u optionsserinfo component. If this is supplied, the user and password
540
+ # compo optionsnents must be omitted.
541
+ # @option options [String, #to_s] :host The host component.
542
+ # @option options [String, #to_s] :port The port component.
543
+ # @option options [String, #to_s] :authority
544
+ # The a optionsuthority component. If this is supplied, the user, password,
545
+ # useri optionsnfo, host, and port components must be omitted.
546
+ # @option options [String, #to_s] :path The path component.
547
+ # @option options [String, #to_s] :query The query component.
548
+ # @option options [String, #to_s] :fragment The fragment component.
514
549
  # @option options [Hash{Symbol,Resource => Term, #to_s}] :attributes
515
550
  # Attributes of this vocabulary term, used for finding `label` and `comment` and to serialize the term back to RDF
516
551
  def initialize(*args)
@@ -616,10 +651,14 @@ module RDF
616
651
  # Is this a strict vocabulary, or a liberal vocabulary allowing arbitrary properties?
617
652
  def strict?; true; end
618
653
 
654
+ ##
655
+ # Returns the URI for the term `property` in this vocabulary.
656
+ #
657
+ # @param [#to_s] property
658
+ # @return [RDF::URI]
659
+ # @raise [KeyError] if property not defined in vocabulary
619
660
  def [](name)
620
- prop = super
621
- props.fetch(prop) #raises KeyError on missing value
622
- return prop
661
+ props.fetch(name.to_sym)
623
662
  end
624
663
  end
625
664
  end # StrictVocabulary
@@ -64,7 +64,7 @@ module RDF
64
64
  label: "RSA Public Key".freeze,
65
65
  "rdfs:isDefinedBy" => %(cert:).freeze,
66
66
  "rdfs:seeAlso" => %(http://en.wikipedia.org/wiki/RSA).freeze,
67
- subClassOf: "cert:PublicKey".freeze,
67
+ subClassOf: ["cert:PublicKey".freeze, "cert:RSAKey".freeze],
68
68
  type: "owl:Class".freeze,
69
69
  "vs:term_status" => %(unstable).freeze
70
70
  term :Signature,
@@ -108,16 +108,16 @@ module RDF
108
108
  It turns out that this relation is unintuitive to write out and to name.
109
109
  One should instead use cert:key
110
110
  ).freeze,
111
- type: "rdf:Property".freeze,
111
+ type: ["rdf:Property".freeze, "owl:ObjectProperty".freeze],
112
112
  "vs:term_status" => %(archaic).freeze
113
113
  property :key,
114
114
  comment: %(relates an agent to a key - most often the public key.).freeze,
115
115
  domain: "foaf:Agent".freeze,
116
116
  label: "key".freeze,
117
117
  "owl:inverseOf" => %(cert:identity).freeze,
118
- range: "cert:Key".freeze,
118
+ range: ["cert:Key".freeze, "cert:PublicKey".freeze],
119
119
  "rdfs:isDefinedBy" => %(cert:).freeze,
120
- type: "rdf:Property".freeze,
120
+ type: ["rdf:Property".freeze, "owl:InverseFunctionalProperty".freeze, "owl:ObjectProperty".freeze],
121
121
  "vs:term_status" => %(unstable).freeze
122
122
  property :modulus,
123
123
  comment: %(
@@ -132,9 +132,9 @@ module RDF
132
132
  <p>The only difference is that the octet string is then encoded using either xsd:base64Binary or xsd:hexBinary. Currently for all usages of this relation, the xsd:hexBinary datatype should be used until the SPARQL working group specifies specifies in its <a href="http://www.w3.org/TR/sparql11-entailment/#DEntRegime">D-Entailment</a> that those two types are equivalent.</p>
133
133
  <p>It would have been better had there been a hexInteger datatype that was standard and supported by all tools.</p>
134
134
  ).freeze,
135
- domain: "cert:DSAKey".freeze,
135
+ domain: ["cert:DSAKey".freeze, "cert:RSAKey".freeze],
136
136
  label: "modulus".freeze,
137
- range: "xsd:base64Binary".freeze,
137
+ range: ["xsd:base64Binary".freeze, "xsd:hexBinary".freeze],
138
138
  "rdfs:isDefinedBy" => %(cert:).freeze,
139
139
  type: "owl:DatatypeProperty".freeze,
140
140
  "vs:term_status" => %(unstable).freeze
@@ -12,7 +12,7 @@ module RDF
12
12
  "dc:issued" => %(2008-01-14).freeze,
13
13
  label: "Agent".freeze,
14
14
  "rdfs:isDefinedBy" => %(dc:).freeze,
15
- type: "dc:AgentClass".freeze
15
+ type: ["dc:AgentClass".freeze, "rdfs:Class".freeze]
16
16
  term :AgentClass,
17
17
  comment: %(A group of agents.).freeze,
18
18
  "dc:description" => %(Examples of Agent Class include groups seen as classes, such as students, women, charities, lecturers.).freeze,
@@ -184,7 +184,7 @@ module RDF
184
184
  "dc:modified" => %(2008-01-14).freeze,
185
185
  label: "Abstract".freeze,
186
186
  "rdfs:isDefinedBy" => %(dc:).freeze,
187
- subPropertyOf: "dc11:description".freeze,
187
+ subPropertyOf: ["dc11:description".freeze, "dc:description".freeze],
188
188
  type: "rdf:Property".freeze
189
189
  property :accessRights,
190
190
  comment: %(Information about who can access the resource or an indication of its security status.).freeze,
@@ -195,7 +195,7 @@ module RDF
195
195
  label: "Access Rights".freeze,
196
196
  range: "dc:RightsStatement".freeze,
197
197
  "rdfs:isDefinedBy" => %(dc:).freeze,
198
- subPropertyOf: "dc11:rights".freeze,
198
+ subPropertyOf: ["dc11:rights".freeze, "dc:rights".freeze],
199
199
  type: "rdf:Property".freeze
200
200
  property :accrualMethod,
201
201
  comment: %(The method by which items are added to a collection.).freeze,
@@ -236,7 +236,7 @@ module RDF
236
236
  label: "Alternative Title".freeze,
237
237
  range: "rdfs:Literal".freeze,
238
238
  "rdfs:isDefinedBy" => %(dc:).freeze,
239
- subPropertyOf: "dc11:title".freeze,
239
+ subPropertyOf: ["dc11:title".freeze, "dc:title".freeze],
240
240
  type: "rdf:Property".freeze
241
241
  property :audience,
242
242
  comment: %(A class of entity for whom the resource is intended or useful.).freeze,
@@ -255,7 +255,7 @@ module RDF
255
255
  label: "Date Available".freeze,
256
256
  range: "rdfs:Literal".freeze,
257
257
  "rdfs:isDefinedBy" => %(dc:).freeze,
258
- subPropertyOf: "dc11:date".freeze,
258
+ subPropertyOf: ["dc11:date".freeze, "dc:date".freeze],
259
259
  type: "rdf:Property".freeze
260
260
  property :bibliographicCitation,
261
261
  comment: %(A bibliographic reference for the resource.).freeze,
@@ -267,7 +267,7 @@ module RDF
267
267
  label: "Bibliographic Citation".freeze,
268
268
  range: "rdfs:Literal".freeze,
269
269
  "rdfs:isDefinedBy" => %(dc:).freeze,
270
- subPropertyOf: "dc11:identifier".freeze,
270
+ subPropertyOf: ["dc11:identifier".freeze, "dc:identifier".freeze],
271
271
  type: "rdf:Property".freeze
272
272
  property :conformsTo,
273
273
  comment: %(An established standard to which the described resource conforms.).freeze,
@@ -277,7 +277,7 @@ module RDF
277
277
  label: "Conforms To".freeze,
278
278
  range: "dc:Standard".freeze,
279
279
  "rdfs:isDefinedBy" => %(dc:).freeze,
280
- subPropertyOf: "dc11:relation".freeze,
280
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
281
281
  type: "rdf:Property".freeze
282
282
  property :contributor,
283
283
  comment: %(An entity responsible for making contributions to the resource.).freeze,
@@ -309,7 +309,7 @@ module RDF
309
309
  label: "Date Created".freeze,
310
310
  range: "rdfs:Literal".freeze,
311
311
  "rdfs:isDefinedBy" => %(dc:).freeze,
312
- subPropertyOf: "dc11:date".freeze,
312
+ subPropertyOf: ["dc11:date".freeze, "dc:date".freeze],
313
313
  type: "rdf:Property".freeze
314
314
  property :creator,
315
315
  comment: %(An entity primarily responsible for making the resource.).freeze,
@@ -321,7 +321,7 @@ module RDF
321
321
  "owl:equivalentProperty" => %(foaf:maker).freeze,
322
322
  range: "dc:Agent".freeze,
323
323
  "rdfs:isDefinedBy" => %(dc:).freeze,
324
- subPropertyOf: "dc11:creator".freeze,
324
+ subPropertyOf: ["dc11:creator".freeze, "dc:contributor".freeze],
325
325
  type: "rdf:Property".freeze
326
326
  property :date,
327
327
  comment: %(A point or period of time associated with an event in the lifecycle of the resource.).freeze,
@@ -343,7 +343,7 @@ module RDF
343
343
  label: "Date Accepted".freeze,
344
344
  range: "rdfs:Literal".freeze,
345
345
  "rdfs:isDefinedBy" => %(dc:).freeze,
346
- subPropertyOf: "dc11:date".freeze,
346
+ subPropertyOf: ["dc11:date".freeze, "dc:date".freeze],
347
347
  type: "rdf:Property".freeze
348
348
  property :dateCopyrighted,
349
349
  comment: %(Date of copyright.).freeze,
@@ -353,7 +353,7 @@ module RDF
353
353
  label: "Date Copyrighted".freeze,
354
354
  range: "rdfs:Literal".freeze,
355
355
  "rdfs:isDefinedBy" => %(dc:).freeze,
356
- subPropertyOf: "dc11:date".freeze,
356
+ subPropertyOf: ["dc11:date".freeze, "dc:date".freeze],
357
357
  type: "rdf:Property".freeze
358
358
  property :dateSubmitted,
359
359
  comment: %(Date of submission of the resource.).freeze,
@@ -364,7 +364,7 @@ module RDF
364
364
  label: "Date Submitted".freeze,
365
365
  range: "rdfs:Literal".freeze,
366
366
  "rdfs:isDefinedBy" => %(dc:).freeze,
367
- subPropertyOf: "dc11:date".freeze,
367
+ subPropertyOf: ["dc11:date".freeze, "dc:date".freeze],
368
368
  type: "rdf:Property".freeze
369
369
  property :description,
370
370
  comment: %(An account of the resource.).freeze,
@@ -394,7 +394,7 @@ module RDF
394
394
  label: "Extent".freeze,
395
395
  range: "dc:SizeOrDuration".freeze,
396
396
  "rdfs:isDefinedBy" => %(dc:).freeze,
397
- subPropertyOf: "dc11:format".freeze,
397
+ subPropertyOf: ["dc11:format".freeze, "dc:format".freeze],
398
398
  type: "rdf:Property".freeze
399
399
  property :format,
400
400
  comment: %(The file format, physical medium, or dimensions of the resource.).freeze,
@@ -415,7 +415,7 @@ module RDF
415
415
  label: "Has Format".freeze,
416
416
  "rdfs:isDefinedBy" => %(dc:).freeze,
417
417
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
418
- subPropertyOf: "dc11:relation".freeze,
418
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
419
419
  type: "rdf:Property".freeze
420
420
  property :hasPart,
421
421
  comment: %(A related resource that is included either physically or logically in the described resource.).freeze,
@@ -425,7 +425,7 @@ module RDF
425
425
  label: "Has Part".freeze,
426
426
  "rdfs:isDefinedBy" => %(dc:).freeze,
427
427
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
428
- subPropertyOf: "dc11:relation".freeze,
428
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
429
429
  type: "rdf:Property".freeze
430
430
  property :hasVersion,
431
431
  comment: %(A related resource that is a version, edition, or adaptation of the described resource.).freeze,
@@ -435,7 +435,7 @@ module RDF
435
435
  label: "Has Version".freeze,
436
436
  "rdfs:isDefinedBy" => %(dc:).freeze,
437
437
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
438
- subPropertyOf: "dc11:relation".freeze,
438
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
439
439
  type: "rdf:Property".freeze
440
440
  property :identifier,
441
441
  comment: %(An unambiguous reference to the resource within a given context.).freeze,
@@ -466,7 +466,7 @@ module RDF
466
466
  label: "Is Format Of".freeze,
467
467
  "rdfs:isDefinedBy" => %(dc:).freeze,
468
468
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
469
- subPropertyOf: "dc11:relation".freeze,
469
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
470
470
  type: "rdf:Property".freeze
471
471
  property :isPartOf,
472
472
  comment: %(A related resource in which the described resource is physically or logically included.).freeze,
@@ -476,7 +476,7 @@ module RDF
476
476
  label: "Is Part Of".freeze,
477
477
  "rdfs:isDefinedBy" => %(dc:).freeze,
478
478
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
479
- subPropertyOf: "dc11:relation".freeze,
479
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
480
480
  type: "rdf:Property".freeze
481
481
  property :isReferencedBy,
482
482
  comment: %(A related resource that references, cites, or otherwise points to the described resource.).freeze,
@@ -486,7 +486,7 @@ module RDF
486
486
  label: "Is Referenced By".freeze,
487
487
  "rdfs:isDefinedBy" => %(dc:).freeze,
488
488
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
489
- subPropertyOf: "dc11:relation".freeze,
489
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
490
490
  type: "rdf:Property".freeze
491
491
  property :isReplacedBy,
492
492
  comment: %(A related resource that supplants, displaces, or supersedes the described resource.).freeze,
@@ -496,7 +496,7 @@ module RDF
496
496
  label: "Is Replaced By".freeze,
497
497
  "rdfs:isDefinedBy" => %(dc:).freeze,
498
498
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
499
- subPropertyOf: "dc11:relation".freeze,
499
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
500
500
  type: "rdf:Property".freeze
501
501
  property :isRequiredBy,
502
502
  comment: %(A related resource that requires the described resource to support its function, delivery, or coherence.).freeze,
@@ -506,7 +506,7 @@ module RDF
506
506
  label: "Is Required By".freeze,
507
507
  "rdfs:isDefinedBy" => %(dc:).freeze,
508
508
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
509
- subPropertyOf: "dc11:relation".freeze,
509
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
510
510
  type: "rdf:Property".freeze
511
511
  property :isVersionOf,
512
512
  comment: %(A related resource of which the described resource is a version, edition, or adaptation.).freeze,
@@ -517,7 +517,7 @@ module RDF
517
517
  label: "Is Version Of".freeze,
518
518
  "rdfs:isDefinedBy" => %(dc:).freeze,
519
519
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
520
- subPropertyOf: "dc11:relation".freeze,
520
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
521
521
  type: "rdf:Property".freeze
522
522
  property :issued,
523
523
  comment: %(Date of formal issuance \(e.g., publication\) of the resource.).freeze,
@@ -527,7 +527,7 @@ module RDF
527
527
  label: "Date Issued".freeze,
528
528
  range: "rdfs:Literal".freeze,
529
529
  "rdfs:isDefinedBy" => %(dc:).freeze,
530
- subPropertyOf: "dc11:date".freeze,
530
+ subPropertyOf: ["dc11:date".freeze, "dc:date".freeze],
531
531
  type: "rdf:Property".freeze
532
532
  property :language,
533
533
  comment: %(A language of the resource.).freeze,
@@ -548,7 +548,7 @@ module RDF
548
548
  label: "License".freeze,
549
549
  range: "dc:LicenseDocument".freeze,
550
550
  "rdfs:isDefinedBy" => %(dc:).freeze,
551
- subPropertyOf: "dc11:rights".freeze,
551
+ subPropertyOf: ["dc11:rights".freeze, "dc:rights".freeze],
552
552
  type: "rdf:Property".freeze
553
553
  property :mediator,
554
554
  comment: %(An entity that mediates access to the resource and for whom the resource is intended or useful.).freeze,
@@ -570,7 +570,7 @@ module RDF
570
570
  label: "Medium".freeze,
571
571
  range: "dc:PhysicalMedium".freeze,
572
572
  "rdfs:isDefinedBy" => %(dc:).freeze,
573
- subPropertyOf: "dc11:format".freeze,
573
+ subPropertyOf: ["dc11:format".freeze, "dc:format".freeze],
574
574
  type: "rdf:Property".freeze
575
575
  property :modified,
576
576
  comment: %(Date on which the resource was changed.).freeze,
@@ -580,7 +580,7 @@ module RDF
580
580
  label: "Date Modified".freeze,
581
581
  range: "rdfs:Literal".freeze,
582
582
  "rdfs:isDefinedBy" => %(dc:).freeze,
583
- subPropertyOf: "dc11:date".freeze,
583
+ subPropertyOf: ["dc11:date".freeze, "dc:date".freeze],
584
584
  type: "rdf:Property".freeze
585
585
  property :provenance,
586
586
  comment: %(A statement of any changes in ownership and custody of the resource since its creation that are significant for its authenticity, integrity, and interpretation.).freeze,
@@ -611,7 +611,7 @@ module RDF
611
611
  label: "References".freeze,
612
612
  "rdfs:isDefinedBy" => %(dc:).freeze,
613
613
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
614
- subPropertyOf: "dc11:relation".freeze,
614
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
615
615
  type: "rdf:Property".freeze
616
616
  property :relation,
617
617
  comment: %(A related resource.).freeze,
@@ -632,7 +632,7 @@ module RDF
632
632
  label: "Replaces".freeze,
633
633
  "rdfs:isDefinedBy" => %(dc:).freeze,
634
634
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
635
- subPropertyOf: "dc11:relation".freeze,
635
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
636
636
  type: "rdf:Property".freeze
637
637
  property :requires,
638
638
  comment: %(A related resource that is required by the described resource to support its function, delivery, or coherence.).freeze,
@@ -642,7 +642,7 @@ module RDF
642
642
  label: "Requires".freeze,
643
643
  "rdfs:isDefinedBy" => %(dc:).freeze,
644
644
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
645
- subPropertyOf: "dc11:relation".freeze,
645
+ subPropertyOf: ["dc11:relation".freeze, "dc:relation".freeze],
646
646
  type: "rdf:Property".freeze
647
647
  property :rights,
648
648
  comment: %(Information about rights held in and over the resource.).freeze,
@@ -673,7 +673,7 @@ module RDF
673
673
  label: "Source".freeze,
674
674
  "rdfs:isDefinedBy" => %(dc:).freeze,
675
675
  "skos:note" => %(This term is intended to be used with non-literal values as defined in the DCMI Abstract Model \(http://dublincore.org/documents/abstract-model/\). As of December 2007, the DCMI Usage Board is seeking a way to express this intention with a formal range declaration.).freeze,
676
- subPropertyOf: "dc11:source".freeze,
676
+ subPropertyOf: ["dc11:source".freeze, "dc:relation".freeze],
677
677
  type: "rdf:Property".freeze
678
678
  property :spatial,
679
679
  comment: %(Spatial characteristics of the resource.).freeze,
@@ -683,7 +683,7 @@ module RDF
683
683
  label: "Spatial Coverage".freeze,
684
684
  range: "dc:Location".freeze,
685
685
  "rdfs:isDefinedBy" => %(dc:).freeze,
686
- subPropertyOf: "dc11:coverage".freeze,
686
+ subPropertyOf: ["dc11:coverage".freeze, "dc:coverage".freeze],
687
687
  type: "rdf:Property".freeze
688
688
  property :subject,
689
689
  comment: %(The topic of the resource.).freeze,
@@ -703,7 +703,7 @@ module RDF
703
703
  "dc:modified" => %(2008-01-14).freeze,
704
704
  label: "Table Of Contents".freeze,
705
705
  "rdfs:isDefinedBy" => %(dc:).freeze,
706
- subPropertyOf: "dc11:description".freeze,
706
+ subPropertyOf: ["dc11:description".freeze, "dc:description".freeze],
707
707
  type: "rdf:Property".freeze
708
708
  property :temporal,
709
709
  comment: %(Temporal characteristics of the resource.).freeze,
@@ -713,7 +713,7 @@ module RDF
713
713
  label: "Temporal Coverage".freeze,
714
714
  range: "dc:PeriodOfTime".freeze,
715
715
  "rdfs:isDefinedBy" => %(dc:).freeze,
716
- subPropertyOf: "dc11:coverage".freeze,
716
+ subPropertyOf: ["dc11:coverage".freeze, "dc:coverage".freeze],
717
717
  type: "rdf:Property".freeze
718
718
  property :title,
719
719
  comment: %(A name given to the resource.).freeze,
@@ -744,7 +744,7 @@ module RDF
744
744
  label: "Date Valid".freeze,
745
745
  range: "rdfs:Literal".freeze,
746
746
  "rdfs:isDefinedBy" => %(dc:).freeze,
747
- subPropertyOf: "dc11:date".freeze,
747
+ subPropertyOf: ["dc11:date".freeze, "dc:date".freeze],
748
748
  type: "rdf:Property".freeze
749
749
 
750
750
  # Datatype definitions
@@ -858,6 +858,11 @@ module RDF
858
858
  type: "rdfs:Datatype".freeze
859
859
 
860
860
  # Extra definitions
861
+ term :"",
862
+ "dc:modified" => %(2012-06-14).freeze,
863
+ "dc:publisher" => %(http://purl.org/dc/aboutdcmi#DCMI).freeze,
864
+ "dc:title" => %(DCMI Metadata Terms - other).freeze,
865
+ label: "".freeze
861
866
  term :DCMIType,
862
867
  comment: %(The set of classes specified by the DCMI Type Vocabulary, used to categorize the nature or genre of the resource.).freeze,
863
868
  "dc:hasVersion" => %(http://dublincore.org/usage/terms/history/#DCMIType-005).freeze,