rdf-n3 0.3.5 → 0.3.6

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