rdf 1.1.4 → 1.1.4.1

Sign up to get free protection for your applications and to get access to all the features.
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,