rdf-n3 3.0.0 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/rdf/n3/writer.rb +29 -12
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1e295c958340c4c0dd8f47583cf716f65d3d2164acdddda485281cb2038c09a
|
4
|
+
data.tar.gz: eb2280ffe26460e5eb01e3c99cf330a47a2aa565711679f4c7ddbb4fffcc0546
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75ca555fe8e9369e7450fd1631f484ddba0af4ba2d370bfb5710310a1c74636cc78d6f8b64358d5dfd0825707be64b489537d2a6759b91d203e00715bb7b7078
|
7
|
+
data.tar.gz: 2179ab00eec3d52700a4d03cfc07d63ec54e6ec84b17fe922f280181d95bac402c627bed85abfe1789e35d15e2d707b5fcb871e379fd61199fa07c99d4a1f420
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.0.
|
1
|
+
3.0.1
|
data/lib/rdf/n3/writer.rb
CHANGED
@@ -273,8 +273,6 @@ module RDF::N3
|
|
273
273
|
protected
|
274
274
|
# Output @base and @prefix definitions
|
275
275
|
def start_document
|
276
|
-
@started = true
|
277
|
-
|
278
276
|
@output.write("#{indent}@base <#{base_uri}> .\n") unless base_uri.to_s.empty?
|
279
277
|
|
280
278
|
log_debug {"start_document: #{prefixes.inspect}"}
|
@@ -317,14 +315,24 @@ module RDF::N3
|
|
317
315
|
|
318
316
|
# Add distinguished classes
|
319
317
|
top_classes.each do |class_uri|
|
320
|
-
graph.query(predicate:
|
321
|
-
|
318
|
+
graph.query(predicate: RDF.type, object: class_uri).
|
319
|
+
map {|st| st.subject}.
|
320
|
+
sort.
|
321
|
+
uniq.
|
322
|
+
each do |subject|
|
323
|
+
log_debug("order_subjects") {subject.to_ntriples}
|
322
324
|
subjects << subject
|
323
325
|
seen[subject] = true
|
324
326
|
end
|
325
327
|
end
|
326
328
|
log_debug {"subjects2: #{subjects.inspect}"}
|
327
|
-
|
329
|
+
|
330
|
+
# Mark as seen lists that are part of another list
|
331
|
+
@lists.values.map(&:statements).
|
332
|
+
flatten.each do |st|
|
333
|
+
seen[st.object] if @lists.has_key?(st.object)
|
334
|
+
end
|
335
|
+
|
328
336
|
# Sort subjects by resources over bnodes, ref_counts and the subject URI itself
|
329
337
|
recursable = @subjects.keys.
|
330
338
|
select {|s| !seen.include?(s)}.
|
@@ -358,7 +366,17 @@ module RDF::N3
|
|
358
366
|
references = ref_count(statement.object) + 1
|
359
367
|
@references[statement.object] = references
|
360
368
|
@subjects[statement.subject] = true
|
361
|
-
|
369
|
+
|
370
|
+
# Collect lists
|
371
|
+
if statement.predicate == RDF.first
|
372
|
+
@lists[statement.subject] = RDF::List.new(subject: statement.subject, graph: graph)
|
373
|
+
end
|
374
|
+
|
375
|
+
if statement.object == RDF.nil || statement.subject == RDF.nil
|
376
|
+
# Add an entry for the list tail
|
377
|
+
@lists[RDF.nil] ||= RDF::List[]
|
378
|
+
end
|
379
|
+
|
362
380
|
# Pre-fetch qnames, to fill prefixes
|
363
381
|
get_qname(statement.subject)
|
364
382
|
get_qname(statement.predicate)
|
@@ -385,12 +403,10 @@ module RDF::N3
|
|
385
403
|
def reset
|
386
404
|
@depth = 0
|
387
405
|
@lists = {}
|
388
|
-
|
406
|
+
|
389
407
|
@references = {}
|
390
408
|
@serialized = {}
|
391
409
|
@subjects = {}
|
392
|
-
@shortNames = {}
|
393
|
-
@started = false
|
394
410
|
end
|
395
411
|
|
396
412
|
##
|
@@ -412,11 +428,11 @@ module RDF::N3
|
|
412
428
|
# Checks if l is a valid RDF list, i.e. no nodes have other properties.
|
413
429
|
def is_valid_list(l)
|
414
430
|
#log_debug {"is_valid_list: #{l.inspect}"}
|
415
|
-
return
|
431
|
+
return @lists[l] && @lists[l].valid?
|
416
432
|
end
|
417
433
|
|
418
434
|
def do_list(l)
|
419
|
-
list =
|
435
|
+
list = @lists[l]
|
420
436
|
log_debug {"do_list: #{list.inspect}"}
|
421
437
|
position = :subject
|
422
438
|
list.each_statement do |st|
|
@@ -502,7 +518,8 @@ module RDF::N3
|
|
502
518
|
properties[st.predicate.to_s] << st.object
|
503
519
|
end
|
504
520
|
|
505
|
-
prop_list = sort_properties(properties)
|
521
|
+
prop_list = sort_properties(properties)
|
522
|
+
prop_list -= [RDF.first.to_s, RDF.rest.to_s] if subject.node?
|
506
523
|
log_debug {"predicate_list: #{prop_list.inspect}"}
|
507
524
|
return if prop_list.empty?
|
508
525
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf-n3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregg
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-09-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdf
|
@@ -175,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
175
|
version: '0'
|
176
176
|
requirements: []
|
177
177
|
rubyforge_project:
|
178
|
-
rubygems_version: 2.7.
|
178
|
+
rubygems_version: 2.7.6
|
179
179
|
signing_key:
|
180
180
|
specification_version: 4
|
181
181
|
summary: Notation3 reader/writer for RDF.rb.
|