rdf-turtle 3.0.2 → 3.0.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 +40 -46
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a8fb1c87f5b5149cc3430a1cdac50fdd7bfbaeacfeaa1a6770e54e83a1aff09
4
- data.tar.gz: 7bf9532ca0c78ce4e24e51ef3a4076a8563e2f0fa2e9f9853616f47776f0947f
3
+ metadata.gz: 499e06e63d69ec0216db2600e34260d5eda5c7a3736e8f1a42c63a91c716779c
4
+ data.tar.gz: 3443fdb3e53d2b12d66f6a9534a9532dabde58b0b319ecc62ffff0a4bd87afb3
5
5
  SHA512:
6
- metadata.gz: 55ec7f72b8b020506c134805828ff43341ce455b469edfb396332c61b67ae3cc7bdf2a0dcfcb3808c47201c77564e046a84d0aaaba2a74553fd2d1c30c93a184
7
- data.tar.gz: 308390211f1da6158fe12d322d8dec7e24ce94931ccd994fb202bf9ac5f38665ac3f1f2e7c02ae9a20e8f3b775462e8831b1357a96be045f8f427d5d241dbf84
6
+ metadata.gz: 1cad03d53fb973b02f541168549cc110769fde86da3b37c1a6187d7fbfffe8bee3f72bea687d14786094ad0cb6a2cd7d4f2072c9989ec4d0c62b6ad81020bccd
7
+ data.tar.gz: 1e7f38e3f561a6f16304727fa89b2bbeab0b93b31e8e5a58633f533ba69e2a874e461f59bcf31d015d23382290e33b9b2ecfd007691fe6f5dc0961c98ca0d285
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.2
1
+ 3.0.3
@@ -189,7 +189,7 @@ module RDF::Turtle
189
189
  # Remove lists that are referenced and have non-list properties;
190
190
  # these are legal, but can't be serialized as lists
191
191
  @lists.reject! do |node, list|
192
- ref_count(node) > 0 && non_list_prop_count(node) > 0
192
+ ref_count(node) > 0 && prop_count(node) > 0
193
193
  end
194
194
 
195
195
  order_subjects.each do |subject|
@@ -454,6 +454,44 @@ module RDF::Turtle
454
454
  end
455
455
  end
456
456
 
457
+ # Can subject be represented as a blankNodePropertyList?
458
+ def blankNodePropertyList?(resource, position)
459
+ resource.node? &&
460
+ !is_valid_list?(resource) &&
461
+ (!is_done?(resource) || position == :subject) &&
462
+ ref_count(resource) == (position == :object ? 1 : 0)
463
+ end
464
+
465
+ # Return the number of statements having this resource as a subject other than for list properties
466
+ # @return [Integer]
467
+ def prop_count(subject)
468
+ @subjects.fetch(subject, {}).
469
+ reject {|k, v| [RDF.type, RDF.first, RDF.rest].include?(k)}.
470
+ values.reduce(:+) || 0
471
+ end
472
+
473
+ # Return the number of times this node has been referenced in the object position
474
+ # @return [Integer]
475
+ def ref_count(resource)
476
+ @references.fetch(resource, 0)
477
+ end
478
+
479
+ # Increase the reference count of this resource
480
+ # @param [RDF::Resource] resource
481
+ # @return [Integer] resulting reference count
482
+ def bump_reference(resource)
483
+ @references[resource] = ref_count(resource) + 1
484
+ end
485
+
486
+ def is_done?(subject)
487
+ @serialized.include?(subject)
488
+ end
489
+
490
+ # Mark a subject as done.
491
+ def subject_done(subject)
492
+ @serialized[subject] = true
493
+ end
494
+
457
495
  private
458
496
 
459
497
  # Checks if l is a valid RDF list, i.e. no nodes have other properties.
@@ -478,7 +516,7 @@ module RDF::Turtle
478
516
  def collection(node, position)
479
517
  return false if !is_valid_list?(node)
480
518
  return false if position == :subject && ref_count(node) > 0
481
- return false if position == :object && non_list_prop_count(node) > 0
519
+ return false if position == :object && prop_count(node) > 0
482
520
  #log_debug("collection") {"#{node.to_ntriples}, #{position}"}
483
521
 
484
522
  @output.write(position == :subject ? "(" : " (")
@@ -486,14 +524,6 @@ module RDF::Turtle
486
524
  @output.write(')')
487
525
  end
488
526
 
489
- # Can subject be represented as a blankNodePropertyList?
490
- def blankNodePropertyList?(resource, position)
491
- resource.node? &&
492
- !is_valid_list?(resource) &&
493
- (!is_done?(resource) || position == :subject) &&
494
- ref_count(resource) == (position == :object ? 1 : 0)
495
- end
496
-
497
527
  # Represent resource as a blankNodePropertyList
498
528
  def blankNodePropertyList(resource, position)
499
529
  return false unless blankNodePropertyList?(resource, position)
@@ -592,41 +622,5 @@ module RDF::Turtle
592
622
  blankNodePropertyList(subject, :subject) || triples(subject)
593
623
  @output.puts
594
624
  end
595
-
596
- # Return the number of statements having this resource as a subject
597
- # @return [Integer]
598
- def prop_count(subject)
599
- @subjects.fetch(subject, {}).values.reduce(:+) || 0
600
- end
601
-
602
- # Return the number of statements having this resource as a subject other than for list properties
603
- # @return [Integer]
604
- def non_list_prop_count(subject)
605
- @subjects.fetch(subject, {}).
606
- reject {|k, v| [RDF.type, RDF.first, RDF.rest].include?(k)}.
607
- values.reduce(:+) || 0
608
- end
609
-
610
- # Return the number of times this node has been referenced in the object position
611
- # @return [Integer]
612
- def ref_count(resource)
613
- @references.fetch(resource, 0)
614
- end
615
-
616
- # Increase the reference count of this resource
617
- # @param [RDF::Resource] resource
618
- # @return [Integer] resulting reference count
619
- def bump_reference(resource)
620
- @references[resource] = ref_count(resource) + 1
621
- end
622
-
623
- def is_done?(subject)
624
- @serialized.include?(subject)
625
- end
626
-
627
- # Mark a subject as done.
628
- def subject_done(subject)
629
- @serialized[subject] = true
630
- end
631
625
  end
632
626
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-turtle
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.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: 2018-09-13 00:00:00.000000000 Z
11
+ date: 2018-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdf