rdf-n3 0.3.5 → 0.3.6

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.
@@ -1,3 +1,13 @@
1
+ ## 0.3.6
2
+ * Update for RDF.rb 0.3.4
3
+ * Added format detection.
4
+
5
+ ## 0.3.5
6
+ * Use RDF::List for reading and writing lists.
7
+ * Performance improvements.
8
+ * Writer whitespace and property ordering improvements.
9
+ * Remove explicit Turtle support in Reader.
10
+
1
11
  ## 0.3.4.1
2
12
  * In Reader, if no base\_uri is used, make sure that @prefix : <#> is generated, not @prefix : <>.
3
13
  * In Writer, fix bug when trying to use `:standard\_prefixes` option.
@@ -81,7 +81,7 @@ http://www.w3.org/2000/10/swap/grammar/n3.n3 (along with bnf-rules.n3) using cwm
81
81
  * Create equivalent to `--think` to iterate on solutions.
82
82
 
83
83
  ## Dependencies
84
- * [RDF.rb](http://rubygems.org/gems/rdf) (>= 0.3.1)
84
+ * [RDF.rb](http://rubygems.org/gems/rdf) (>= 0.3.4)
85
85
 
86
86
  ## Documentation
87
87
  Full documentation available on [RubyForge](http://rdf.rubyforge.org/n3)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.5
1
+ 0.3.6
@@ -24,6 +24,31 @@ module RDF::N3
24
24
 
25
25
  reader { RDF::N3::Reader }
26
26
  writer { RDF::N3::Writer }
27
+
28
+ ##
29
+ # Sample detection to see if it matches N3 (or N-Triples or Turtle)
30
+ #
31
+ # Use a text sample to detect the format of an input file. Sub-classes implement
32
+ # a matcher sufficient to detect probably format matches, including disambiguating
33
+ # between other similar formats.
34
+ #
35
+ # @param [String] sample Beginning several bytes (~ 1K) of input.
36
+ # @return [Boolean]
37
+ def self.detect(sample)
38
+ !!sample.match(%r(
39
+ (?:@(base|prefix|keywords)) | # N3 keywords
40
+ "{3} | # Multi-line quotes
41
+ "[^"]*"^^ | "[^"]*"@ | # Typed/Language literals
42
+ (?:
43
+ (?:\s*(?:(?:<[^>]*>) | (?:\w*:\w+) | (?:"[^"]*"))\s*[,;]) ||
44
+ (?:\s*(?:(?:<[^>]*>) | (?:\w*:\w+) | (?:"[^"]*"))){3}
45
+ )
46
+ )mx) && !(
47
+ sample.match(%r(<(?:\/|html|rdf))i) || # HTML, RDF/XML
48
+ sample.match(%r(^(?:\s*<[^>]*>){4}.*\.\s*$)) || # N-Quads
49
+ sample.match(%r("@(context|subject|iri)")) # JSON-LD
50
+ )
51
+ end
27
52
  end
28
53
 
29
54
  # Alias for N3 format
@@ -19,12 +19,6 @@ module RDF::N3
19
19
  include Meta
20
20
  include Parser
21
21
 
22
- ##
23
- # Missing in 0.3.2
24
- def base_uri
25
- @options[:base_uri]
26
- end
27
-
28
22
  N3_KEYWORDS = %w(a is of has keywords prefix base true false forSome forAny)
29
23
 
30
24
  ##
@@ -49,7 +43,7 @@ module RDF::N3
49
43
  # @yield [reader] `self`
50
44
  # @yieldparam [RDF::Reader] reader
51
45
  # @yieldreturn [void] ignored
52
- # @raise [Error]:: Raises RDF::ReaderError if _validate_
46
+ # @raise [Error]:: Raises RDF::ReaderError if validating and an error is found
53
47
  def initialize(input = $stdin, options = {}, &block)
54
48
  super do
55
49
  input.rewind if input.respond_to?(:rewind)
@@ -70,16 +64,12 @@ module RDF::N3
70
64
  @variables = {} # variable definitions along with defining formula
71
65
 
72
66
  if options[:base_uri]
73
- add_debug("@uri", "#{base_uri.inspect}")
67
+ add_debug("@uri") { base_uri.inspect}
74
68
  namespace(nil, uri("#{base_uri}#"))
75
69
  end
76
- add_debug("validate", "#{validate?.inspect}")
77
- add_debug("canonicalize", "#{canonicalize?.inspect}")
78
- add_debug("intern", "#{intern?.inspect}")
79
-
80
- # Prefixes that may be used without being defined
81
- #prefix(:rdf, RDF.to_uri.to_s)
82
- #prefix(:xsd, RDF::XSD.to_uri.to_s)
70
+ add_debug("validate") {validate?.inspect}
71
+ add_debug("canonicalize") {canonicalize?.inspect}
72
+ add_debug("intern") {intern?.inspect}
83
73
 
84
74
  if block_given?
85
75
  case block.arity
@@ -133,7 +123,7 @@ module RDF::N3
133
123
  def onFinish
134
124
  prod = @productions.pop()
135
125
  handler = "#{prod}Finish".to_sym
136
- add_debug("#{handler}(#{respond_to?(handler)})", "#{prod}: #{@prod_data.last.inspect}")
126
+ add_debug("#{handler}(#{respond_to?(handler)})") {"#{prod}: #{@prod_data.last.inspect}"}
137
127
  send(handler) if respond_to?(handler)
138
128
  end
139
129
 
@@ -142,7 +132,7 @@ module RDF::N3
142
132
  unless @productions.empty?
143
133
  parentProd = @productions.last
144
134
  handler = "#{parentProd}Token".to_sym
145
- add_debug("#{handler}(#{respond_to?(handler)})", "#{prod}, #{tok}: #{@prod_data.last.inspect}")
135
+ add_debug("#{handler}(#{respond_to?(handler)})") {"#{prod}, #{tok}: #{@prod_data.last.inspect}"}
146
136
  send(handler, prod, tok) if respond_to?(handler)
147
137
  else
148
138
  error("Token has no parent production")
@@ -189,9 +179,9 @@ module RDF::N3
189
179
  # This means that <#foo> can be written :foo and using @keywords one can reduce that to foo.
190
180
 
191
181
  namespace(nil, uri.match(/[\/\#]$/) ? base_uri : process_uri("#{uri}#"))
192
- add_debug("declarationFinish[@base]", "@base=#{base_uri}")
182
+ add_debug("declarationFinish[@base]") {"@base=#{base_uri}"}
193
183
  when "@keywords"
194
- add_debug("declarationFinish[@keywords]", @keywords.inspect)
184
+ add_debug("declarationFinish[@keywords]") {@keywords.inspect}
195
185
  # Keywords are handled in tokenizer and maintained in @keywords array
196
186
  if (@keywords & N3_KEYWORDS) != @keywords
197
187
  error("Undefined keywords used: #{(@keywords - N3_KEYWORDS).to_sentence}") if validate?
@@ -241,7 +231,7 @@ module RDF::N3
241
231
  # If we're in teh middle of a pathtail, append
242
232
  if @prod_data.last[:pathtail] && expression[:pathitem] && expression[:pathtail]
243
233
  path_list = [expression[:pathitem]] + expression[:pathtail]
244
- add_debug("expressionFinish(pathtail)", "set pathtail to #{path_list.inspect}")
234
+ add_debug("expressionFinish(pathtail)") {"set pathtail to #{path_list.inspect}"}
245
235
  @prod_data.last[:pathtail] = path_list
246
236
 
247
237
  dir_list = [expression[:direction]] if expression[:direction]
@@ -404,7 +394,7 @@ module RDF::N3
404
394
  properties.each do |p|
405
395
  predicate = p[:verb]
406
396
  next unless predicate
407
- add_debug("simpleStatementFinish(pred)", predicate)
397
+ add_debug("simpleStatementFinish(pred)") {predicate.to_s}
408
398
  error(%(Illegal statment: "#{predicate}" missing object)) unless p.has_key?(:object)
409
399
  objects =[ p[:object]].flatten.compact
410
400
  objects.each do |object|
@@ -507,14 +497,14 @@ module RDF::N3
507
497
  ###################
508
498
 
509
499
  def process_anonnode(anonnode)
510
- add_debug("process_anonnode", anonnode.inspect)
500
+ add_debug("process_anonnode") {anonnode.inspect}
511
501
  bnode = RDF::Node.new
512
502
 
513
503
  if anonnode[:propertylist]
514
504
  properties = anonnode[:propertylist]
515
505
  properties.each do |p|
516
506
  predicate = p[:verb]
517
- add_debug("process_anonnode(verb)", predicate.inspect)
507
+ add_debug("process_anonnode(verb)") {predicate.inspect}
518
508
  objects = [p[:object]].flatten.compact
519
509
  objects.each { |object| add_triple("anonnode", bnode, predicate, object) }
520
510
  end
@@ -537,7 +527,7 @@ module RDF::N3
537
527
  #
538
528
  # Create triple and return property used for next iteration
539
529
  def process_path(expression)
540
- add_debug("process_path", expression.inspect)
530
+ add_debug("process_path") {expression.inspect}
541
531
 
542
532
  pathitem = expression[:pathitem]
543
533
  pathtail = expression[:pathtail]
@@ -581,7 +571,7 @@ module RDF::N3
581
571
  end
582
572
 
583
573
  uri = if prefix(prefix)
584
- add_debug('process_qname(ns)', "#{prefix(prefix)}, #{name}")
574
+ add_debug('process_qname(ns)') {"#{prefix(prefix)}, #{name}"}
585
575
  ns(prefix, name)
586
576
  elsif prefix == '_'
587
577
  add_debug('process_qname(bnode)', name)
@@ -591,7 +581,7 @@ module RDF::N3
591
581
  namespace(nil, uri("#{base_uri}#")) unless prefix(nil)
592
582
  ns(nil, name)
593
583
  end
594
- add_debug('process_qname', uri.inspect)
584
+ add_debug('process_qname') {uri.inspect}
595
585
  uri
596
586
  end
597
587
 
@@ -625,7 +615,10 @@ module RDF::N3
625
615
  #
626
616
  # @param [XML Node, any] node:: XML Node or string for showing context
627
617
  # @param [String] message::
628
- def add_debug(node, message)
618
+ # @yieldreturn [String] appended to message, to allow for lazy-evaulation of message
619
+ def add_debug(node, message = "")
620
+ return unless ::RDF::N3.debug? || @options[:debug]
621
+ message = message + yield if block_given?
629
622
  puts "[#{@lineno},#{@pos}]#{' ' * @productions.length}#{node}: #{message}" if ::RDF::N3::debug?
630
623
  @options[:debug] << "[#{@lineno},#{@pos}]#{' ' * @productions.length}#{node}: #{message}" if @options[:debug].is_a?(Array)
631
624
  end
@@ -645,7 +638,7 @@ module RDF::N3
645
638
  subject = subject.context if subject.graph?
646
639
  object = object.context if object.graph?
647
640
  statement = RDF::Statement.new(subject, predicate, object, context_opts || {})
648
- add_debug(node, statement.to_s)
641
+ add_debug(node) {statement.to_s}
649
642
  @callback.call(statement)
650
643
  end
651
644
 
@@ -654,7 +647,7 @@ module RDF::N3
654
647
  if uri == '#'
655
648
  uri = prefix(nil).to_s + '#'
656
649
  end
657
- add_debug("namespace", "'#{prefix}' <#{uri}>")
650
+ add_debug("namespace") {"'#{prefix}' <#{uri}>"}
658
651
  prefix(prefix, uri(uri))
659
652
  end
660
653
 
@@ -684,7 +677,7 @@ module RDF::N3
684
677
  def ns(prefix, suffix)
685
678
  base = prefix(prefix).to_s
686
679
  suffix = suffix.to_s.sub(/^\#/, "") if base.index("#")
687
- add_debug("ns", "base: '#{base}', suffix: '#{suffix}'")
680
+ add_debug("ns") {"base: '#{base}', suffix: '#{suffix}'"}
688
681
  uri(base + suffix.to_s)
689
682
  end
690
683
  end
@@ -139,7 +139,7 @@ module RDF::N3
139
139
 
140
140
  self.reset
141
141
 
142
- add_debug "\nserialize: graph: #{@graph.size}"
142
+ add_debug {"\nserialize: graph: #{@graph.size}"}
143
143
 
144
144
  preprocess
145
145
  start_document
@@ -164,7 +164,7 @@ module RDF::N3
164
164
  return nil
165
165
  end
166
166
 
167
- add_debug "get_qname(#{resource}), std?}"
167
+ add_debug {"get_qname(#{resource}), std?}"}
168
168
  qname = case
169
169
  when @uri_to_qname.has_key?(uri)
170
170
  return @uri_to_qname[uri]
@@ -172,13 +172,13 @@ module RDF::N3
172
172
  # Use a defined prefix
173
173
  prefix = @uri_to_prefix[u]
174
174
  prefix(prefix, u) unless u.to_s.empty? # Define for output
175
- add_debug "get_qname: add prefix #{prefix.inspect} => #{u}"
175
+ add_debug {"get_qname: add prefix #{prefix.inspect} => #{u}"}
176
176
  uri.sub(u.to_s, "#{prefix}:")
177
177
  when @options[:standard_prefixes] && vocab = RDF::Vocabulary.each.to_a.detect {|v| uri.index(v.to_uri.to_s) == 0}
178
178
  prefix = vocab.__name__.to_s.split('::').last.downcase
179
179
  @uri_to_prefix[vocab.to_uri.to_s] = prefix
180
180
  prefix(prefix, vocab.to_uri) # Define for output
181
- add_debug "get_qname: add standard prefix #{prefix.inspect} => #{vocab.to_uri}"
181
+ add_debug {"get_qname: add standard prefix #{prefix.inspect} => #{vocab.to_uri}"}
182
182
  uri.sub(vocab.to_uri.to_s, "#{prefix}:")
183
183
  else
184
184
  nil
@@ -213,7 +213,7 @@ module RDF::N3
213
213
  prop_list << prop.to_s
214
214
  end
215
215
 
216
- add_debug "sort_properties: #{prop_list.join(', ')}"
216
+ add_debug {"sort_properties: #{prop_list.join(', ')}"}
217
217
  prop_list
218
218
  end
219
219
 
@@ -251,7 +251,7 @@ module RDF::N3
251
251
  # @return [String]
252
252
  def format_uri(uri, options = {})
253
253
  md = relativize(uri)
254
- add_debug("relativize(#{uri.inspect}) => #{md.inspect}") if md != uri.to_s
254
+ add_debug {"relativize(#{uri.inspect}) => #{md.inspect}"} if md != uri.to_s
255
255
  md != uri.to_s ? "<#{md}>" : (get_qname(uri) || "<#{uri}>")
256
256
  end
257
257
 
@@ -270,20 +270,20 @@ module RDF::N3
270
270
  def start_document
271
271
  @started = true
272
272
 
273
- @output.write("#{indent}@base <#{@base_uri}> .\n") unless @base_uri.to_s.empty?
273
+ @output.write("#{indent}@base <#{base_uri}> .\n") unless base_uri.to_s.empty?
274
274
 
275
- add_debug("start_document: #{prefixes.inspect}")
275
+ add_debug {"start_document: #{prefixes.inspect}"}
276
276
  prefixes.keys.sort_by(&:to_s).each do |prefix|
277
277
  @output.write("#{indent}@prefix #{prefix}: <#{prefixes[prefix]}> .\n")
278
278
  end
279
279
  end
280
280
 
281
- # If @base_uri is defined, use it to try to make uri relative
281
+ # If base_uri is defined, use it to try to make uri relative
282
282
  # @param [#to_s] uri
283
283
  # @return [String]
284
284
  def relativize(uri)
285
285
  uri = uri.to_s
286
- @base_uri ? uri.sub(@base_uri.to_s, "") : uri
286
+ base_uri ? uri.sub(base_uri.to_s, "") : uri
287
287
  end
288
288
 
289
289
  # Defines rdf:type of subjects to be emitted at the beginning of the graph. Defaults to rdfs:Class
@@ -308,15 +308,17 @@ module RDF::N3
308
308
  subjects << base_uri
309
309
  seen[base_uri] = true
310
310
  end
311
+ add_debug {"subjects1: #{subjects.inspect}"}
311
312
 
312
313
  # Add distinguished classes
313
314
  top_classes.each do |class_uri|
314
315
  graph.query(:predicate => RDF.type, :object => class_uri).map {|st| st.subject}.sort.uniq.each do |subject|
315
- add_debug "order_subjects: #{subject.inspect}"
316
+ add_debug {"order_subjects: #{subject.inspect}"}
316
317
  subjects << subject
317
318
  seen[subject] = true
318
319
  end
319
320
  end
321
+ add_debug {"subjects2: #{subjects.inspect}"}
320
322
 
321
323
  # Sort subjects by resources over bnodes, ref_counts and the subject URI itself
322
324
  recursable = @subjects.keys.
@@ -324,7 +326,10 @@ module RDF::N3
324
326
  map {|r| [r.is_a?(RDF::Node) ? 1 : 0, ref_count(r), r]}.
325
327
  sort
326
328
 
329
+ add_debug {"subjects3: #{subjects.inspect}"}
327
330
  subjects += recursable.map{|r| r.last}
331
+ add_debug {"subjects4: #{subjects.inspect}"}
332
+ subjects
328
333
  end
329
334
 
330
335
  # Perform any preprocessing of statements required
@@ -344,7 +349,7 @@ module RDF::N3
344
349
  # prefixes.
345
350
  # @param [Statement] statement
346
351
  def preprocess_statement(statement)
347
- #add_debug "preprocess: #{statement.inspect}"
352
+ #add_debug {"preprocess: #{statement.inspect}"}
348
353
  references = ref_count(statement.object) + 1
349
354
  @references[statement.object] = references
350
355
  @subjects[statement.subject] = true
@@ -402,24 +407,27 @@ module RDF::N3
402
407
  # Add debug event to debug array, if specified
403
408
  #
404
409
  # @param [String] message::
405
- def add_debug(message)
410
+ # @yieldreturn [String] appended to message, to allow for lazy-evaulation of message
411
+ def add_debug(message = "")
412
+ return unless ::RDF::N3.debug? || @debug
413
+ message = message + yield if block_given?
406
414
  STDERR.puts message if ::RDF::N3::debug?
407
415
  @debug << message if @debug.is_a?(Array)
408
416
  end
409
417
 
410
418
  # Checks if l is a valid RDF list, i.e. no nodes have other properties.
411
419
  def is_valid_list(l)
412
- #add_debug "is_valid_list: #{l.inspect}"
420
+ #add_debug {"is_valid_list: #{l.inspect}"}
413
421
  return RDF::List.new(l, @graph).valid?
414
422
  end
415
423
 
416
424
  def do_list(l)
417
425
  list = RDF::List.new(l, @graph)
418
- add_debug "do_list: #{list.inspect}"
426
+ add_debug {"do_list: #{list.inspect}"}
419
427
  position = :subject
420
428
  list.each_statement do |st|
421
429
  next unless st.predicate == RDF.first
422
- add_debug " list this: #{st.subject} first: #{st.object}[#{position}]"
430
+ add_debug {" list this: #{st.subject} first: #{st.object}[#{position}]"}
423
431
  path(st.object, position)
424
432
  subject_done(st.subject)
425
433
  position = :object
@@ -428,7 +436,7 @@ module RDF::N3
428
436
 
429
437
  def p_list(node, position)
430
438
  return false if !is_valid_list(node)
431
- #add_debug "p_list: #{node.inspect}, #{position}"
439
+ #add_debug {"p_list: #{node.inspect}, #{position}"}
432
440
 
433
441
  @output.write(position == :subject ? "(" : " (")
434
442
  @depth += 2
@@ -446,7 +454,7 @@ module RDF::N3
446
454
  def p_squared(node, position)
447
455
  return false unless p_squared?(node, position)
448
456
 
449
- #add_debug "p_squared: #{node.inspect}, #{position}"
457
+ #add_debug {"p_squared: #{node.inspect}, #{position}"}
450
458
  subject_done(node)
451
459
  @output.write(position == :subject ? '[' : ' [')
452
460
  @depth += 2
@@ -458,18 +466,24 @@ module RDF::N3
458
466
  end
459
467
 
460
468
  def p_default(node, position)
461
- #add_debug "p_default: #{node.inspect}, #{position}"
469
+ #add_debug {"p_default: #{node.inspect}, #{position}"}
462
470
  l = (position == :subject ? "" : " ") + format_value(node)
463
471
  @output.write(l)
464
472
  end
465
473
 
466
474
  def path(node, position)
467
- add_debug "path: #{node.inspect}, pos: #{position}, []: #{is_valid_list(node)}, p2?: #{p_squared?(node, position)}, rc: #{ref_count(node)}"
475
+ add_debug do
476
+ "path: #{node.inspect}, " +
477
+ "pos: #{position}, " +
478
+ "[]: #{is_valid_list(node)}, " +
479
+ "p2?: #{p_squared?(node, position)}, " +
480
+ "rc: #{ref_count(node)}"
481
+ end
468
482
  raise RDF::WriterError, "Cannot serialize node '#{node}'" unless p_list(node, position) || p_squared(node, position) || p_default(node, position)
469
483
  end
470
484
 
471
485
  def verb(node)
472
- add_debug "verb: #{node.inspect}"
486
+ add_debug {"verb: #{node.inspect}"}
473
487
  if node == RDF.type
474
488
  @output.write(" a")
475
489
  else
@@ -478,7 +492,7 @@ module RDF::N3
478
492
  end
479
493
 
480
494
  def object_list(objects)
481
- add_debug "object_list: #{objects.inspect}"
495
+ add_debug {"object_list: #{objects.inspect}"}
482
496
  return if objects.empty?
483
497
 
484
498
  objects.each_with_index do |obj, i|
@@ -495,7 +509,7 @@ module RDF::N3
495
509
  end
496
510
 
497
511
  prop_list = sort_properties(properties) - [RDF.first.to_s, RDF.rest.to_s]
498
- add_debug "predicate_list: #{prop_list.inspect}"
512
+ add_debug {"predicate_list: #{prop_list.inspect}"}
499
513
  return if prop_list.empty?
500
514
 
501
515
  prop_list.each_with_index do |prop, i|
@@ -505,7 +519,7 @@ module RDF::N3
505
519
  verb(prop[0, 2] == "_:" ? RDF::Node.new(prop.split(':').last) : RDF::URI.intern(prop))
506
520
  object_list(properties[prop])
507
521
  rescue Addressable::URI::InvalidURIError => e
508
- add_debug "Predicate #{prop.inspect} is an invalid URI: #{e.message}"
522
+ add_debug {"Predicate #{prop.inspect} is an invalid URI: #{e.message}"}
509
523
  end
510
524
  end
511
525
  end
@@ -517,7 +531,7 @@ module RDF::N3
517
531
  def s_squared(subject)
518
532
  return false unless s_squared?(subject)
519
533
 
520
- add_debug "s_squared: #{subject.inspect}"
534
+ add_debug {"s_squared: #{subject.inspect}"}
521
535
  @output.write("\n#{indent} [")
522
536
  @depth += 1
523
537
  predicate_list(subject)
@@ -535,7 +549,7 @@ module RDF::N3
535
549
  end
536
550
 
537
551
  def statement(subject)
538
- add_debug "statement: #{subject.inspect}, s2?: #{s_squared?(subject)}"
552
+ add_debug {"statement: #{subject.inspect}, s2?: #{s_squared?(subject)}"}
539
553
  subject_done(subject)
540
554
  s_squared(subject) || s_default(subject)
541
555
  @output.write("\n")
metadata CHANGED
@@ -1,174 +1,122 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rdf-n3
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.6
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 3
9
- - 5
10
- version: 0.3.5
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Gregg
14
9
  - Kellogg
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2011-09-04 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2011-09-14 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: rdf
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &2157745840 !ruby/object:Gem::Requirement
25
18
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 21
30
- segments:
31
- - 0
32
- - 3
33
- - 3
34
- version: 0.3.3
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: 0.3.4
35
23
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: open-uri-cached
39
24
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *2157745840
26
+ - !ruby/object:Gem::Dependency
27
+ name: open-uri-cached
28
+ requirement: &2157745280 !ruby/object:Gem::Requirement
41
29
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
49
34
  type: :development
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: spira
53
35
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
36
+ version_requirements: *2157745280
37
+ - !ruby/object:Gem::Dependency
38
+ name: spira
39
+ requirement: &2157744300 !ruby/object:Gem::Requirement
55
40
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 7
60
- segments:
61
- - 0
62
- - 0
63
- - 12
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
64
44
  version: 0.0.12
65
45
  type: :development
66
- version_requirements: *id003
67
- - !ruby/object:Gem::Dependency
68
- name: rspec
69
46
  prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
47
+ version_requirements: *2157744300
48
+ - !ruby/object:Gem::Dependency
49
+ name: rspec
50
+ requirement: &2157743040 !ruby/object:Gem::Requirement
71
51
  none: false
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- hash: 27
76
- segments:
77
- - 2
78
- - 5
79
- - 0
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
80
55
  version: 2.5.0
81
56
  type: :development
82
- version_requirements: *id004
83
- - !ruby/object:Gem::Dependency
84
- name: rdf-spec
85
57
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
58
+ version_requirements: *2157743040
59
+ - !ruby/object:Gem::Dependency
60
+ name: rdf-spec
61
+ requirement: &2157741760 !ruby/object:Gem::Requirement
87
62
  none: false
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- hash: 23
92
- segments:
93
- - 0
94
- - 3
95
- - 2
96
- version: 0.3.2
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: 0.3.4
97
67
  type: :development
98
- version_requirements: *id005
99
- - !ruby/object:Gem::Dependency
100
- name: rdf-rdfxml
101
68
  prerelease: false
102
- requirement: &id006 !ruby/object:Gem::Requirement
69
+ version_requirements: *2157741760
70
+ - !ruby/object:Gem::Dependency
71
+ name: rdf-rdfxml
72
+ requirement: &2157717560 !ruby/object:Gem::Requirement
103
73
  none: false
104
- requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- hash: 21
108
- segments:
109
- - 0
110
- - 3
111
- - 3
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
112
77
  version: 0.3.3
113
78
  type: :development
114
- version_requirements: *id006
115
- - !ruby/object:Gem::Dependency
116
- name: rdf-turtle
117
79
  prerelease: false
118
- requirement: &id007 !ruby/object:Gem::Requirement
80
+ version_requirements: *2157717560
81
+ - !ruby/object:Gem::Dependency
82
+ name: rdf-turtle
83
+ requirement: &2157716260 !ruby/object:Gem::Requirement
119
84
  none: false
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- hash: 23
124
- segments:
125
- - 0
126
- - 0
127
- - 4
128
- version: 0.0.4
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: 0.1.0
129
89
  type: :development
130
- version_requirements: *id007
131
- - !ruby/object:Gem::Dependency
132
- name: rdf-isomorphic
133
90
  prerelease: false
134
- requirement: &id008 !ruby/object:Gem::Requirement
91
+ version_requirements: *2157716260
92
+ - !ruby/object:Gem::Dependency
93
+ name: rdf-isomorphic
94
+ requirement: &2157714760 !ruby/object:Gem::Requirement
135
95
  none: false
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- hash: 27
140
- segments:
141
- - 0
142
- - 3
143
- - 4
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
144
99
  version: 0.3.4
145
100
  type: :development
146
- version_requirements: *id008
147
- - !ruby/object:Gem::Dependency
148
- name: yard
149
101
  prerelease: false
150
- requirement: &id009 !ruby/object:Gem::Requirement
102
+ version_requirements: *2157714760
103
+ - !ruby/object:Gem::Dependency
104
+ name: yard
105
+ requirement: &2157712700 !ruby/object:Gem::Requirement
151
106
  none: false
152
- requirements:
153
- - - ">="
154
- - !ruby/object:Gem::Version
155
- hash: 7
156
- segments:
157
- - 0
158
- - 6
159
- - 0
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
160
110
  version: 0.6.0
161
111
  type: :development
162
- version_requirements: *id009
163
- description: RDF::N3 is an Notation-3 and Turtle reader/writer for the RDF.rb library suite.
112
+ prerelease: false
113
+ version_requirements: *2157712700
114
+ description: RDF::N3 is an Notation-3 reader/writer for the RDF.rb library suite.
164
115
  email: public-rdf-ruby@w3.org
165
116
  executables: []
166
-
167
117
  extensions: []
168
-
169
118
  extra_rdoc_files: []
170
-
171
- files:
119
+ files:
172
120
  - README.markdown
173
121
  - History.markdown
174
122
  - AUTHORS
@@ -185,39 +133,28 @@ files:
185
133
  - lib/rdf/n3/writer.rb
186
134
  - lib/rdf/n3.rb
187
135
  homepage: http://github.com/gkellogg/rdf-n3
188
- licenses:
136
+ licenses:
189
137
  - Public Domain
190
138
  post_install_message:
191
139
  rdoc_options: []
192
-
193
- require_paths:
140
+ require_paths:
194
141
  - lib
195
- required_ruby_version: !ruby/object:Gem::Requirement
142
+ required_ruby_version: !ruby/object:Gem::Requirement
196
143
  none: false
197
- requirements:
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- hash: 53
201
- segments:
202
- - 1
203
- - 8
204
- - 1
144
+ requirements:
145
+ - - ! '>='
146
+ - !ruby/object:Gem::Version
205
147
  version: 1.8.1
206
- required_rubygems_version: !ruby/object:Gem::Requirement
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
207
149
  none: false
208
- requirements:
209
- - - ">="
210
- - !ruby/object:Gem::Version
211
- hash: 3
212
- segments:
213
- - 0
214
- version: "0"
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
215
154
  requirements: []
216
-
217
155
  rubyforge_project: rdf-n3
218
- rubygems_version: 1.8.6
156
+ rubygems_version: 1.8.10
219
157
  signing_key:
220
158
  specification_version: 3
221
159
  summary: N3/Turtle reader/writer for RDF.rb.
222
160
  test_files: []
223
-