rdf-turtle 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/rdf/turtle/writer.rb +31 -24
  4. metadata +37 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9093a424b624c733fd209a33dc7ac8ceb650bd2f
4
- data.tar.gz: ab2bb587fdb532cbb6a7068df58d0c40c4fb2b98
3
+ metadata.gz: 0e70f98dd4b68010ecd944b0adaab421d282fc68
4
+ data.tar.gz: c8133157388afcc8b8fdfaef1cdc7818cf8ee101
5
5
  SHA512:
6
- metadata.gz: 05ba9c14422a1be8c51ca24f6e2c7e87fafae3ee24b04023a96f726cf112bb51b7fde1cc053659c61ee6cf87e04dff92d719065a44705dd84ca3fa65cf417c10
7
- data.tar.gz: 5020e9eb963ea2433c173557750cfb8d62de8a218deee5e5ff406642e53d1e8b3ef8b7979199827c93f86241e974b198e8e439e2611ce7066cb9ed53f709d9aa
6
+ metadata.gz: 9b0f9a3588b5e5f1e0ac0745d3a197bc28a90b49afdd616812af04c6149283e6037c0365cacb52b26ef6def7a61e8747e8bf36db12684447bd637e90885c84a6
7
+ data.tar.gz: 9a9286be339a48c7697a8886008d781c3fb7ef030b319d979e81bb98be36c009230c1eae80886e7fc8e5b9f239b583982fdb3b9945c5e71c2d786d6a92e39b14
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.2
1
+ 1.1.3
@@ -266,7 +266,7 @@ module RDF::Turtle
266
266
  # @return [String]
267
267
  def format_uri(uri, options = {})
268
268
  md = relativize(uri)
269
- debug("relativize") {"#{uri.inspect} => #{md.inspect}"} if md != uri.to_s
269
+ debug("relativize") {"#{uri.to_ntriples} => #{md.inspect}"} if md != uri.to_s
270
270
  md != uri.to_s ? "<#{md}>" : (get_pname(uri) || "<#{uri}>")
271
271
  end
272
272
 
@@ -325,7 +325,7 @@ module RDF::Turtle
325
325
  # Add distinguished classes
326
326
  top_classes.each do |class_uri|
327
327
  graph.query(:predicate => RDF.type, :object => class_uri).map {|st| st.subject}.sort.uniq.each do |subject|
328
- debug("order_subjects") {subject.inspect}
328
+ debug("order_subjects") {subject.to_ntriples}
329
329
  subjects << subject
330
330
  seen[subject] = true
331
331
  end
@@ -362,7 +362,7 @@ module RDF::Turtle
362
362
  # prefixes.
363
363
  # @param [Statement] statement
364
364
  def preprocess_statement(statement)
365
- #debug("preprocess") {statement.inspect}
365
+ #debug("preprocess") {statement.to_ntriples}
366
366
  bump_reference(statement.object)
367
367
  @subjects[statement.subject] = true
368
368
 
@@ -413,11 +413,12 @@ module RDF::Turtle
413
413
  return unless @options[:debug] || RDF::Turtle.debug?
414
414
  options = args.last.is_a?(Hash) ? args.pop : {}
415
415
  depth = options[:depth] || @depth
416
+ d_str = depth > 100 ? ' ' * 100 + '+' : ' ' * depth
416
417
  message = args.pop
417
418
  message = message.call if message.is_a?(Proc)
418
419
  args << message if message
419
420
  args << yield if block_given?
420
- message = "#{args.join(': ')}"
421
+ message = "#{d_str}#{args.join(': ')}"
421
422
  @options[:debug] << message if @options[:debug].is_a?(Array)
422
423
  $stderr.puts(message) if RDF::Turtle.debug?
423
424
  end
@@ -445,7 +446,7 @@ module RDF::Turtle
445
446
 
446
447
  def collection(node, position)
447
448
  return false if !is_valid_list?(node)
448
- #debug("collection") {"#{node.inspect}, #{position}"}
449
+ #debug("collection") {"#{node.to_ntriples}, #{position}"}
449
450
 
450
451
  @output.write(position == :subject ? "(" : " (")
451
452
  @depth += 2
@@ -454,31 +455,31 @@ module RDF::Turtle
454
455
  @output.write(')')
455
456
  end
456
457
 
457
- # Can object be represented using a predicateObjectList?
458
+ # Can object be represented using a blankNodePropertyList?
458
459
  def p_squared?(resource, position)
459
460
  resource.is_a?(RDF::Node) &&
460
461
  !@serialized.has_key?(resource) &&
461
462
  ref_count(resource) <= 1
462
463
  end
463
464
 
464
- # Represent an object as a predicateObjectList
465
+ # Represent an object as a blankNodePropertyList
465
466
  def p_squared(resource, position)
466
467
  return false unless p_squared?(resource, position)
467
468
 
468
- #debug("p_squared") {"#{resource.inspect}, #{position}"}
469
+ #debug("p_squared") {"#{resource.to_ntriples}, #{position}"}
469
470
  subject_done(resource)
470
471
  @output.write(position == :subject ? '[' : ' [')
471
472
  @depth += 2
472
- predicateObjectList(resource)
473
+ num_props = predicateObjectList(resource, true)
474
+ @output.write(num_props > 1 ? "\n#{indent} ]" : "]")
473
475
  @depth -= 2
474
- @output.write(']')
475
476
 
476
477
  true
477
478
  end
478
479
 
479
480
  # Default singular resource representation.
480
481
  def p_default(resource, position)
481
- #debug("p_default") {"#{resource.inspect}, #{position}"}
482
+ #debug("p_default") {"#{resource.to_ntriples}, #{position}"}
482
483
  l = (position == :subject ? "" : " ") + format_value(resource)
483
484
  @output.write(l)
484
485
  end
@@ -487,17 +488,17 @@ module RDF::Turtle
487
488
  # Use either collection, blankNodePropertyList or singular resource notation.
488
489
  def path(resource, position)
489
490
  debug("path") do
490
- "#{resource.inspect}, " +
491
+ "#{resource.to_ntriples}, " +
491
492
  "pos: #{position}, " +
492
- "[]: #{is_valid_list?(resource)}, " +
493
- "p2?: #{p_squared?(resource, position)}, " +
493
+ "()?: #{is_valid_list?(resource)}, " +
494
+ "[]?: #{p_squared?(resource, position)}, " +
494
495
  "rc: #{ref_count(resource)}"
495
496
  end
496
497
  raise RDF::WriterError, "Cannot serialize resource '#{resource}'" unless collection(resource, position) || p_squared(resource, position) || p_default(resource, position)
497
498
  end
498
499
 
499
500
  def predicate(resource)
500
- debug("predicate") {resource.inspect}
501
+ debug("predicate") {resource.to_ntriples}
501
502
  if resource == RDF.type
502
503
  @output.write(" a")
503
504
  else
@@ -511,23 +512,28 @@ module RDF::Turtle
511
512
  return if objects.empty?
512
513
 
513
514
  objects.each_with_index do |obj, i|
514
- @output.write(",\n#{indent(4)}") if i > 0
515
+ if i > 0 && p_squared?(obj, :object)
516
+ @output.write ", "
517
+ elsif i > 0
518
+ @output.write ",\n#{indent(4)}"
519
+ end
515
520
  path(obj, :object)
516
521
  end
517
522
  end
518
523
 
519
524
  # Render a predicateObjectList having a common subject.
520
- def predicateObjectList(subject)
525
+ # @return [Integer] the number of properties serialized
526
+ def predicateObjectList(subject, from_bpl = false)
521
527
  properties = {}
522
528
  @graph.query(:subject => subject) do |st|
523
- properties[st.predicate.to_s] ||= []
524
- properties[st.predicate.to_s] << st.object
529
+ (properties[st.predicate.to_s] ||= []) << st.object
525
530
  end
526
531
 
527
532
  prop_list = sort_properties(properties) - [RDF.first.to_s, RDF.rest.to_s]
528
533
  debug("predicateObjectList") {prop_list.inspect}
529
- return if prop_list.empty?
534
+ return 0 if prop_list.empty?
530
535
 
536
+ @output.write("\n#{indent(2)}") if properties.keys.length > 1 && from_bpl
531
537
  prop_list.each_with_index do |prop, i|
532
538
  begin
533
539
  @output.write(";\n#{indent(2)}") if i > 0
@@ -536,6 +542,7 @@ module RDF::Turtle
536
542
  objectList(properties[prop])
537
543
  end
538
544
  end
545
+ properties.keys.length
539
546
  end
540
547
 
541
548
  # Can subject be represented as a blankNodePropertyList?
@@ -547,12 +554,12 @@ module RDF::Turtle
547
554
  def blankNodePropertyList(subject)
548
555
  return false unless blankNodePropertyList?(subject)
549
556
 
550
- debug("blankNodePropertyList") {subject.inspect}
557
+ debug("blankNodePropertyList") {subject.to_ntriples}
551
558
  @output.write("\n#{indent} [")
552
559
  @depth += 1
553
- predicateObjectList(subject)
560
+ num_props = predicateObjectList(subject, true)
554
561
  @depth -= 1
555
- @output.write("] .")
562
+ @output.write(num_props > 1 ? "\n#{indent} ] ." : "] .")
556
563
  true
557
564
  end
558
565
 
@@ -566,7 +573,7 @@ module RDF::Turtle
566
573
  end
567
574
 
568
575
  def statement(subject)
569
- debug("statement") {"#{subject.inspect}, bnodePL?: #{blankNodePropertyList?(subject)}"}
576
+ debug("statement") {"#{subject.to_ntriples}, bnodePL?: #{blankNodePropertyList?(subject)}"}
570
577
  subject_done(subject)
571
578
  blankNodePropertyList(subject) || triples(subject)
572
579
  @output.puts
metadata CHANGED
@@ -1,139 +1,145 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-turtle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg Kellogg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-26 00:00:00.000000000 Z
11
+ date: 2014-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdf
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1.1.1
19
+ version: '1.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.1.2.1
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - '>='
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.1'
30
+ - - ">="
25
31
  - !ruby/object:Gem::Version
26
- version: 1.1.1.1
32
+ version: 1.1.2.1
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: ebnf
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - '>='
37
+ - - ">="
32
38
  - !ruby/object:Gem::Version
33
39
  version: 0.3.5
34
40
  type: :runtime
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
- - - '>='
44
+ - - ">="
39
45
  - !ruby/object:Gem::Version
40
46
  version: 0.3.5
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: open-uri-cached
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - '>='
51
+ - - ">="
46
52
  - !ruby/object:Gem::Version
47
53
  version: 0.0.5
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - '>='
58
+ - - ">="
53
59
  - !ruby/object:Gem::Version
54
60
  version: 0.0.5
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: rspec
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - '>='
65
+ - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: 2.12.0
67
+ version: '2.14'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
- - - '>='
72
+ - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: 2.12.0
74
+ version: '2.14'
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: rdf-isomorphic
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
- - - '>='
79
+ - - "~>"
74
80
  - !ruby/object:Gem::Version
75
81
  version: '1.1'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
- - - '>='
86
+ - - "~>"
81
87
  - !ruby/object:Gem::Version
82
88
  version: '1.1'
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: json-ld
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
- - - '>='
93
+ - - "~>"
88
94
  - !ruby/object:Gem::Version
89
95
  version: '1.1'
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
- - - '>='
100
+ - - "~>"
95
101
  - !ruby/object:Gem::Version
96
102
  version: '1.1'
97
103
  - !ruby/object:Gem::Dependency
98
104
  name: yard
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
- - - '>='
107
+ - - ">="
102
108
  - !ruby/object:Gem::Version
103
- version: 0.8.3
109
+ version: 0.8.7
104
110
  type: :development
105
111
  prerelease: false
106
112
  version_requirements: !ruby/object:Gem::Requirement
107
113
  requirements:
108
- - - '>='
114
+ - - ">="
109
115
  - !ruby/object:Gem::Version
110
- version: 0.8.3
116
+ version: 0.8.7
111
117
  - !ruby/object:Gem::Dependency
112
118
  name: rdf-spec
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
- - - '>='
121
+ - - "~>"
116
122
  - !ruby/object:Gem::Version
117
123
  version: '1.1'
118
124
  type: :development
119
125
  prerelease: false
120
126
  version_requirements: !ruby/object:Gem::Requirement
121
127
  requirements:
122
- - - '>='
128
+ - - "~>"
123
129
  - !ruby/object:Gem::Version
124
130
  version: '1.1'
125
131
  - !ruby/object:Gem::Dependency
126
132
  name: rake
127
133
  requirement: !ruby/object:Gem::Requirement
128
134
  requirements:
129
- - - '>='
135
+ - - ">="
130
136
  - !ruby/object:Gem::Version
131
137
  version: '0'
132
138
  type: :development
133
139
  prerelease: false
134
140
  version_requirements: !ruby/object:Gem::Requirement
135
141
  requirements:
136
- - - '>='
142
+ - - ">="
137
143
  - !ruby/object:Gem::Version
138
144
  version: '0'
139
145
  description: RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.
@@ -143,10 +149,11 @@ extensions: []
143
149
  extra_rdoc_files: []
144
150
  files:
145
151
  - AUTHORS
146
- - README.md
147
152
  - History
153
+ - README.md
148
154
  - UNLICENSE
149
155
  - VERSION
156
+ - lib/rdf/turtle.rb
150
157
  - lib/rdf/turtle/format.rb
151
158
  - lib/rdf/turtle/freebase_reader.rb
152
159
  - lib/rdf/turtle/meta.rb
@@ -155,7 +162,6 @@ files:
155
162
  - lib/rdf/turtle/terminals.rb
156
163
  - lib/rdf/turtle/version.rb
157
164
  - lib/rdf/turtle/writer.rb
158
- - lib/rdf/turtle.rb
159
165
  homepage: http://ruby-rdf.github.com/rdf-turtle
160
166
  licenses:
161
167
  - Public Domain
@@ -166,17 +172,17 @@ require_paths:
166
172
  - lib
167
173
  required_ruby_version: !ruby/object:Gem::Requirement
168
174
  requirements:
169
- - - '>='
175
+ - - ">="
170
176
  - !ruby/object:Gem::Version
171
177
  version: 1.9.2
172
178
  required_rubygems_version: !ruby/object:Gem::Requirement
173
179
  requirements:
174
- - - '>='
180
+ - - ">="
175
181
  - !ruby/object:Gem::Version
176
182
  version: '0'
177
183
  requirements: []
178
184
  rubyforge_project: rdf-turtle
179
- rubygems_version: 2.1.11
185
+ rubygems_version: 2.2.2
180
186
  signing_key:
181
187
  specification_version: 4
182
188
  summary: Turtle reader/writer for Ruby.