json-ld 1.1.11.1 → 1.99.0
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/json/ld/api.rb +2 -2
- data/lib/json/ld/context.rb +3 -1
- data/lib/json/ld/frame.rb +1 -1
- data/lib/json/ld/from_rdf.rb +1 -1
- data/lib/json/ld/streaming_writer.rb +2 -2
- data/spec/api_spec.rb +1 -1
- data/spec/context_spec.rb +35 -36
- data/spec/flatten_spec.rb +8 -8
- data/spec/frame_spec.rb +20 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/suite_helper.rb +1 -1
- data/spec/writer_spec.rb +2 -2
- metadata +20 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbd10c33d33b7cd63273e8f7a1f2aca15bd0c2fd
|
4
|
+
data.tar.gz: b4bcaa6cb6e5afb3ec20e3b9376e73b0a1666ac5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4fbfa5093a7396c09c04f611a9cf3071e8f68787cef16e389fecec055d1c2022bcbf605f209c66a476db0bf7922e52b8924f296a14f58cf1434c87b74a7be8b
|
7
|
+
data.tar.gz: b508589a20147522523e8d8e327a3dd0d2acb9b83d95b29604d825c5d6cb299026bd3aaa3ea830048b419384bd938cee4e04b55795b84e375ca99d572e2b800d
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.99.0
|
data/lib/json/ld/api.rb
CHANGED
@@ -421,7 +421,7 @@ module JSON::LD
|
|
421
421
|
# Start generating statements
|
422
422
|
graphs.each do |graph_name, graph|
|
423
423
|
context = as_resource(graph_name) unless graph_name == '@default'
|
424
|
-
debug(".toRdf") {"
|
424
|
+
debug(".toRdf") {"graph_name: #{context ? context.to_ntriples : 'null'}"}
|
425
425
|
# Drop results for graphs which are named with relative IRIs
|
426
426
|
if graph_name.is_a?(RDF::URI) && !graph_name.absolute
|
427
427
|
debug(".toRdf") {"drop relative graph_name: #{statement.to_ntriples}"}
|
@@ -445,7 +445,7 @@ module JSON::LD
|
|
445
445
|
next
|
446
446
|
end
|
447
447
|
|
448
|
-
statement.
|
448
|
+
statement.graph_name = context if context
|
449
449
|
if block_given?
|
450
450
|
yield statement
|
451
451
|
else
|
data/lib/json/ld/context.rb
CHANGED
@@ -196,7 +196,9 @@ module JSON::LD
|
|
196
196
|
def base=(value)
|
197
197
|
if value
|
198
198
|
raise JsonLdError::InvalidBaseIRI, "@base must be a string: #{value.inspect}" unless value.is_a?(String) || value.is_a?(RDF::URI)
|
199
|
-
|
199
|
+
value = RDF::URI(value).dup
|
200
|
+
value = @base.join(value) if @base && value.relative?
|
201
|
+
@base = value
|
200
202
|
@base.canonicalize! if @options[:canonicalize]
|
201
203
|
raise JsonLdError::InvalidBaseIRI, "@base must be an absolute IRI: #{value.inspect}" unless @base.absolute? || !@options[:validate]
|
202
204
|
@base
|
data/lib/json/ld/frame.rb
CHANGED
@@ -157,7 +157,7 @@ module JSON::LD
|
|
157
157
|
# If, after replacement, an array contains only the value null remove the value, leaving an empty array.
|
158
158
|
input.map {|o| cleanup_preserve(o)}.compact
|
159
159
|
when Hash
|
160
|
-
output = Hash.new
|
160
|
+
output = Hash.new
|
161
161
|
input.each do |key, value|
|
162
162
|
if key == '@preserve'
|
163
163
|
# replace all key-value pairs where the key is @preserve with the value from the key-pair
|
data/lib/json/ld/from_rdf.rb
CHANGED
@@ -24,7 +24,7 @@ module JSON::LD
|
|
24
24
|
input.each do |statement|
|
25
25
|
debug("statement") { statement.to_nquads.chomp}
|
26
26
|
|
27
|
-
name = statement.
|
27
|
+
name = statement.graph_name ? ec.expand_iri(statement.graph_name).to_s : '@default'
|
28
28
|
|
29
29
|
# Create a graph entry as needed
|
30
30
|
node_map = graph_map[name] ||= {}
|
@@ -38,9 +38,9 @@ module JSON::LD
|
|
38
38
|
# @return [void] `self`
|
39
39
|
def stream_statement(statement)
|
40
40
|
debug("ss") {"state: #{@state.inspect}, stmt: #{statement}"}
|
41
|
-
if @current_graph != statement.
|
41
|
+
if @current_graph != statement.graph_name
|
42
42
|
end_graph
|
43
|
-
start_graph(statement.
|
43
|
+
start_graph(statement.graph_name)
|
44
44
|
end
|
45
45
|
|
46
46
|
# If we're writing a list
|
data/spec/api_spec.rb
CHANGED
@@ -95,7 +95,7 @@ describe JSON::LD::API do
|
|
95
95
|
end if File.exist?(framed) && File.exist?(frame)
|
96
96
|
|
97
97
|
it "toRdf" do
|
98
|
-
expect(RDF::Repository.load(filename, adapter: adapter, debug: @debug)).to be_equivalent_graph(RDF::Repository.load(ttl), trace: @debug)
|
98
|
+
expect(RDF::Repository.load(filename, format: :jsonld, adapter: adapter, debug: @debug)).to be_equivalent_graph(RDF::Repository.load(ttl), trace: @debug)
|
99
99
|
end if File.exist?(ttl)
|
100
100
|
end
|
101
101
|
end
|
data/spec/context_spec.rb
CHANGED
@@ -65,7 +65,7 @@ describe JSON::LD::Context do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "notes non-existing @context" do
|
68
|
-
expect {subject.parse(StringIO.new("{}"))}.to raise_error
|
68
|
+
expect {subject.parse(StringIO.new("{}"))}.to raise_error(JSON::LD::JsonLdError::InvalidRemoteContext)
|
69
69
|
end
|
70
70
|
|
71
71
|
it "parses a referenced context at a relative URI" do
|
@@ -262,7 +262,7 @@ describe JSON::LD::Context do
|
|
262
262
|
"@type as object" => {"foo" => {"@type" => {}}},
|
263
263
|
"@type as array" => {"foo" => {"@type" => []}},
|
264
264
|
"@type as @list" => {"foo" => {"@type" => "@list"}},
|
265
|
-
"@type as @
|
265
|
+
"@type as @set" => {"foo" => {"@type" => "@set"}},
|
266
266
|
"@container as object" => {"foo" => {"@container" => {}}},
|
267
267
|
"@container as array" => {"foo" => {"@container" => []}},
|
268
268
|
"@container as string" => {"foo" => {"@container" => "true"}},
|
@@ -364,49 +364,49 @@ describe JSON::LD::Context do
|
|
364
364
|
it "@type with dependent prefixes in a single context" do
|
365
365
|
expect(subject.parse({
|
366
366
|
'xsd' => "http://www.w3.org/2001/XMLSchema#",
|
367
|
-
'homepage' => {'@id' => RDF::FOAF.homepage.to_s, '@type' => '@id'}
|
367
|
+
'homepage' => {'@id' => RDF::Vocab::FOAF.homepage.to_s, '@type' => '@id'}
|
368
368
|
}).
|
369
369
|
send(:clear_provided_context).
|
370
370
|
serialize).to produce({
|
371
371
|
"@context" => {
|
372
372
|
"xsd" => RDF::XSD.to_uri.to_s,
|
373
|
-
"homepage" => {"@id" => RDF::FOAF.homepage.to_s, "@type" => "@id"}
|
373
|
+
"homepage" => {"@id" => RDF::Vocab::FOAF.homepage.to_s, "@type" => "@id"}
|
374
374
|
}
|
375
375
|
}, @debug)
|
376
376
|
end
|
377
377
|
|
378
378
|
it "@list with @id definition in a single context" do
|
379
379
|
expect(subject.parse({
|
380
|
-
'knows' => {'@id' => RDF::FOAF.knows.to_s, '@container' => '@list'}
|
380
|
+
'knows' => {'@id' => RDF::Vocab::FOAF.knows.to_s, '@container' => '@list'}
|
381
381
|
}).
|
382
382
|
send(:clear_provided_context).
|
383
383
|
serialize).to produce({
|
384
384
|
"@context" => {
|
385
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@container" => "@list"}
|
385
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@container" => "@list"}
|
386
386
|
}
|
387
387
|
}, @debug)
|
388
388
|
end
|
389
389
|
|
390
390
|
it "@set with @id definition in a single context" do
|
391
391
|
expect(subject.parse({
|
392
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@container" => "@set"}
|
392
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@container" => "@set"}
|
393
393
|
}).
|
394
394
|
send(:clear_provided_context).
|
395
395
|
serialize).to produce({
|
396
396
|
"@context" => {
|
397
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@container" => "@set"}
|
397
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@container" => "@set"}
|
398
398
|
}
|
399
399
|
}, @debug)
|
400
400
|
end
|
401
401
|
|
402
402
|
it "@language with @id definition in a single context" do
|
403
403
|
expect(subject.parse({
|
404
|
-
"name" => {"@id" => RDF::FOAF.name.to_s, "@language" => "en"}
|
404
|
+
"name" => {"@id" => RDF::Vocab::FOAF.name.to_s, "@language" => "en"}
|
405
405
|
}).
|
406
406
|
send(:clear_provided_context).
|
407
407
|
serialize).to produce({
|
408
408
|
"@context" => {
|
409
|
-
"name" => {"@id" => RDF::FOAF.name.to_s, "@language" => "en"}
|
409
|
+
"name" => {"@id" => RDF::Vocab::FOAF.name.to_s, "@language" => "en"}
|
410
410
|
}
|
411
411
|
}, @debug)
|
412
412
|
end
|
@@ -414,13 +414,13 @@ describe JSON::LD::Context do
|
|
414
414
|
it "@language with @id definition in a single context and equivalent default" do
|
415
415
|
expect(subject.parse({
|
416
416
|
"@language" => 'en',
|
417
|
-
"name" => {"@id" => RDF::FOAF.name.to_s, "@language" => 'en'}
|
417
|
+
"name" => {"@id" => RDF::Vocab::FOAF.name.to_s, "@language" => 'en'}
|
418
418
|
}).
|
419
419
|
send(:clear_provided_context).
|
420
420
|
serialize).to produce({
|
421
421
|
"@context" => {
|
422
422
|
"@language" => 'en',
|
423
|
-
"name" => {"@id" => RDF::FOAF.name.to_s, "@language" => 'en'}
|
423
|
+
"name" => {"@id" => RDF::Vocab::FOAF.name.to_s, "@language" => 'en'}
|
424
424
|
}
|
425
425
|
}, @debug)
|
426
426
|
end
|
@@ -428,13 +428,13 @@ describe JSON::LD::Context do
|
|
428
428
|
it "@language with @id definition in a single context and different default" do
|
429
429
|
expect(subject.parse({
|
430
430
|
"@language" => 'en',
|
431
|
-
"name" => {"@id" => RDF::FOAF.name.to_s, "@language" => "de"}
|
431
|
+
"name" => {"@id" => RDF::Vocab::FOAF.name.to_s, "@language" => "de"}
|
432
432
|
}).
|
433
433
|
send(:clear_provided_context).
|
434
434
|
serialize).to produce({
|
435
435
|
"@context" => {
|
436
436
|
"@language" => 'en',
|
437
|
-
"name" => {"@id" => RDF::FOAF.name.to_s, "@language" => "de"}
|
437
|
+
"name" => {"@id" => RDF::Vocab::FOAF.name.to_s, "@language" => "de"}
|
438
438
|
}
|
439
439
|
}, @debug)
|
440
440
|
end
|
@@ -442,44 +442,44 @@ describe JSON::LD::Context do
|
|
442
442
|
it "null @language with @id definition in a single context and default" do
|
443
443
|
expect(subject.parse({
|
444
444
|
"@language" => 'en',
|
445
|
-
"name" => {"@id" => RDF::FOAF.name.to_s, "@language" => nil}
|
445
|
+
"name" => {"@id" => RDF::Vocab::FOAF.name.to_s, "@language" => nil}
|
446
446
|
}).
|
447
447
|
send(:clear_provided_context).
|
448
448
|
serialize).to produce({
|
449
449
|
"@context" => {
|
450
450
|
"@language" => 'en',
|
451
|
-
"name" => {"@id" => RDF::FOAF.name.to_s, "@language" => nil}
|
451
|
+
"name" => {"@id" => RDF::Vocab::FOAF.name.to_s, "@language" => nil}
|
452
452
|
}
|
453
453
|
}, @debug)
|
454
454
|
end
|
455
455
|
|
456
456
|
it "prefix with @type and @list" do
|
457
457
|
expect(subject.parse({
|
458
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@type" => "@id", "@container" => "@list"}
|
458
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@type" => "@id", "@container" => "@list"}
|
459
459
|
}).
|
460
460
|
send(:clear_provided_context).
|
461
461
|
serialize).to produce({
|
462
462
|
"@context" => {
|
463
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@type" => "@id", "@container" => "@list"}
|
463
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@type" => "@id", "@container" => "@list"}
|
464
464
|
}
|
465
465
|
}, @debug)
|
466
466
|
end
|
467
467
|
|
468
468
|
it "prefix with @type and @set" do
|
469
469
|
expect(subject.parse({
|
470
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@type" => "@id", "@container" => "@set"}
|
470
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@type" => "@id", "@container" => "@set"}
|
471
471
|
}).
|
472
472
|
send(:clear_provided_context).
|
473
473
|
serialize).to produce({
|
474
474
|
"@context" => {
|
475
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@type" => "@id", "@container" => "@set"}
|
475
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@type" => "@id", "@container" => "@set"}
|
476
476
|
}
|
477
477
|
}, @debug)
|
478
478
|
end
|
479
479
|
|
480
480
|
it "CURIE with @type" do
|
481
481
|
expect(subject.parse({
|
482
|
-
"foaf" => RDF::FOAF.to_uri.to_s,
|
482
|
+
"foaf" => RDF::Vocab::FOAF.to_uri.to_s,
|
483
483
|
"foaf:knows" => {
|
484
484
|
"@container" => "@list"
|
485
485
|
}
|
@@ -487,7 +487,7 @@ describe JSON::LD::Context do
|
|
487
487
|
send(:clear_provided_context).
|
488
488
|
serialize).to produce({
|
489
489
|
"@context" => {
|
490
|
-
"foaf" => RDF::FOAF.to_uri.to_s,
|
490
|
+
"foaf" => RDF::Vocab::FOAF.to_uri.to_s,
|
491
491
|
"foaf:knows" => {
|
492
492
|
"@container" => "@list"
|
493
493
|
}
|
@@ -498,20 +498,20 @@ describe JSON::LD::Context do
|
|
498
498
|
it "does not use aliased @id in key position" do
|
499
499
|
expect(subject.parse({
|
500
500
|
"id" => "@id",
|
501
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@container" => "@list"}
|
501
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@container" => "@list"}
|
502
502
|
}).
|
503
503
|
send(:clear_provided_context).
|
504
504
|
serialize).to produce({
|
505
505
|
"@context" => {
|
506
506
|
"id" => "@id",
|
507
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@container" => "@list"}
|
507
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@container" => "@list"}
|
508
508
|
}
|
509
509
|
}, @debug)
|
510
510
|
end
|
511
511
|
|
512
512
|
it "does not use aliased @id in value position" do
|
513
513
|
expect(subject.parse({
|
514
|
-
"foaf" => RDF::FOAF.to_uri.to_s,
|
514
|
+
"foaf" => RDF::Vocab::FOAF.to_uri.to_s,
|
515
515
|
"id" => "@id",
|
516
516
|
"foaf:homepage" => {
|
517
517
|
"@type" => "@id"
|
@@ -520,7 +520,7 @@ describe JSON::LD::Context do
|
|
520
520
|
send(:clear_provided_context).
|
521
521
|
serialize).to produce({
|
522
522
|
"@context" => {
|
523
|
-
"foaf" => RDF::FOAF.to_uri.to_s,
|
523
|
+
"foaf" => RDF::Vocab::FOAF.to_uri.to_s,
|
524
524
|
"id" => "@id",
|
525
525
|
"foaf:homepage" => {
|
526
526
|
"@type" => "@id"
|
@@ -531,14 +531,14 @@ describe JSON::LD::Context do
|
|
531
531
|
|
532
532
|
it "does not use aliased @type" do
|
533
533
|
expect(subject.parse({
|
534
|
-
"foaf" => RDF::FOAF.to_uri.to_s,
|
534
|
+
"foaf" => RDF::Vocab::FOAF.to_uri.to_s,
|
535
535
|
"type" => "@type",
|
536
536
|
"foaf:homepage" => {"@type" => "@id"}
|
537
537
|
}).
|
538
538
|
send(:clear_provided_context).
|
539
539
|
serialize).to produce({
|
540
540
|
"@context" => {
|
541
|
-
"foaf" => RDF::FOAF.to_uri.to_s,
|
541
|
+
"foaf" => RDF::Vocab::FOAF.to_uri.to_s,
|
542
542
|
"type" => "@type",
|
543
543
|
"foaf:homepage" => {"@type" => "@id"}
|
544
544
|
}
|
@@ -548,13 +548,13 @@ describe JSON::LD::Context do
|
|
548
548
|
it "does not use aliased @container" do
|
549
549
|
expect(subject.parse({
|
550
550
|
"container" => "@container",
|
551
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@container" => "@list"}
|
551
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@container" => "@list"}
|
552
552
|
}).
|
553
553
|
send(:clear_provided_context).
|
554
554
|
serialize).to produce({
|
555
555
|
"@context" => {
|
556
556
|
"container" => "@container",
|
557
|
-
"knows" => {"@id" => RDF::FOAF.knows.to_s, "@container" => "@list"}
|
557
|
+
"knows" => {"@id" => RDF::Vocab::FOAF.knows.to_s, "@container" => "@list"}
|
558
558
|
}
|
559
559
|
}, @debug)
|
560
560
|
end
|
@@ -881,7 +881,6 @@ describe JSON::LD::Context do
|
|
881
881
|
"unmapped" => ["foo", "foo"],
|
882
882
|
"bnode" => ["_:a", RDF::Node("a")],
|
883
883
|
"relative" => ["foo/bar", "http://base/foo/bar"],
|
884
|
-
"odd CURIE" => ["exp:s", "http://example.org/perts"],
|
885
884
|
"odd CURIE" => ["ex:perts", "http://example.org/perts"]
|
886
885
|
}.each do |title, (result, input)|
|
887
886
|
it title do
|
@@ -1044,9 +1043,9 @@ describe JSON::LD::Context do
|
|
1044
1043
|
describe "#expand_value" do
|
1045
1044
|
subject {
|
1046
1045
|
ctx = context.parse({
|
1047
|
-
"dc" => RDF::DC.to_uri.to_s,
|
1046
|
+
"dc" => RDF::Vocab::DC.to_uri.to_s,
|
1048
1047
|
"ex" => "http://example.org/",
|
1049
|
-
"foaf" => RDF::FOAF.to_uri.to_s,
|
1048
|
+
"foaf" => RDF::Vocab::FOAF.to_uri.to_s,
|
1050
1049
|
"xsd" => "http://www.w3.org/2001/XMLSchema#",
|
1051
1050
|
"foaf:age" => {"@type" => "xsd:integer"},
|
1052
1051
|
"foaf:knows" => {"@type" => "@id"},
|
@@ -1136,9 +1135,9 @@ describe JSON::LD::Context do
|
|
1136
1135
|
describe "#compact_value" do
|
1137
1136
|
let(:ctx) do
|
1138
1137
|
c = context.parse({
|
1139
|
-
"dc" => RDF::DC.to_uri.to_s,
|
1138
|
+
"dc" => RDF::Vocab::DC.to_uri.to_s,
|
1140
1139
|
"ex" => "http://example.org/",
|
1141
|
-
"foaf" => RDF::FOAF.to_uri.to_s,
|
1140
|
+
"foaf" => RDF::Vocab::FOAF.to_uri.to_s,
|
1142
1141
|
"xsd" => RDF::XSD.to_s,
|
1143
1142
|
"langmap" => {"@id" => "http://example.com/langmap", "@container" => "@language"},
|
1144
1143
|
"list" => {"@id" => "http://example.org/list", "@container" => "@list"},
|
@@ -1158,7 +1157,7 @@ describe JSON::LD::Context do
|
|
1158
1157
|
"integer" => ["foaf:age", "54", {"@value" => "54", "@type" => RDF::XSD.integer.to_s}],
|
1159
1158
|
"date " => ["dc:created", "2011-12-27Z", {"@value" => "2011-12-27Z", "@type" => RDF::XSD.date.to_s}],
|
1160
1159
|
"no IRI" => ["foo", {"@id" =>"http://example.com/"},{"@id" => "http://example.com/"}],
|
1161
|
-
"no IRI (CURIE)" => ["foo", {"@id" => RDF::FOAF.Person.to_s}, {"@id" => RDF::FOAF.Person.to_s}],
|
1160
|
+
"no IRI (CURIE)" => ["foo", {"@id" => RDF::Vocab::FOAF.Person.to_s}, {"@id" => RDF::Vocab::FOAF.Person.to_s}],
|
1162
1161
|
"no boolean" => ["foo", {"@value" => "true", "@type" => RDF::XSD.boolean.to_s},{"@value" => "true", "@type" => RDF::XSD.boolean.to_s}],
|
1163
1162
|
"no integer" => ["foo", {"@value" => "54", "@type" => RDF::XSD.integer.to_s},{"@value" => "54", "@type" => RDF::XSD.integer.to_s}],
|
1164
1163
|
"no date " => ["foo", {"@value" => "2011-12-27Z", "@type" => RDF::XSD.date.to_s}, {"@value" => "2011-12-27Z", "@type" => RDF::XSD.date.to_s}],
|
data/spec/flatten_spec.rb
CHANGED
@@ -16,7 +16,7 @@ describe JSON::LD::API do
|
|
16
16
|
"embedded object" => {
|
17
17
|
input: {
|
18
18
|
"@context" => {
|
19
|
-
"foaf" => RDF::FOAF.to_s
|
19
|
+
"foaf" => RDF::Vocab::FOAF.to_s
|
20
20
|
},
|
21
21
|
"@id" => "http://greggkellogg.net/foaf",
|
22
22
|
"@type" => ["foaf:PersonalProfileDocument"],
|
@@ -28,19 +28,19 @@ describe JSON::LD::API do
|
|
28
28
|
output: [
|
29
29
|
{
|
30
30
|
"@id" => "http://greggkellogg.net/foaf",
|
31
|
-
"@type" => [RDF::FOAF.PersonalProfileDocument.to_s],
|
32
|
-
RDF::FOAF.primaryTopic.to_s => [{"@id" => "http://greggkellogg.net/foaf#me"}]
|
31
|
+
"@type" => [RDF::Vocab::FOAF.PersonalProfileDocument.to_s],
|
32
|
+
RDF::Vocab::FOAF.primaryTopic.to_s => [{"@id" => "http://greggkellogg.net/foaf#me"}]
|
33
33
|
},
|
34
34
|
{
|
35
35
|
"@id" => "http://greggkellogg.net/foaf#me",
|
36
|
-
"@type" => [RDF::FOAF.Person.to_s]
|
36
|
+
"@type" => [RDF::Vocab::FOAF.Person.to_s]
|
37
37
|
}
|
38
38
|
]
|
39
39
|
},
|
40
40
|
"embedded anon" => {
|
41
41
|
input: {
|
42
42
|
"@context" => {
|
43
|
-
"foaf" => RDF::FOAF.to_s
|
43
|
+
"foaf" => RDF::Vocab::FOAF.to_s
|
44
44
|
},
|
45
45
|
"@id" => "http://greggkellogg.net/foaf",
|
46
46
|
"@type" => "foaf:PersonalProfileDocument",
|
@@ -51,12 +51,12 @@ describe JSON::LD::API do
|
|
51
51
|
output: [
|
52
52
|
{
|
53
53
|
"@id" => "_:b0",
|
54
|
-
"@type" => [RDF::FOAF.Person.to_s]
|
54
|
+
"@type" => [RDF::Vocab::FOAF.Person.to_s]
|
55
55
|
},
|
56
56
|
{
|
57
57
|
"@id" => "http://greggkellogg.net/foaf",
|
58
|
-
"@type" => [RDF::FOAF.PersonalProfileDocument.to_s],
|
59
|
-
RDF::FOAF.primaryTopic.to_s => [{"@id" => "_:b0"}]
|
58
|
+
"@type" => [RDF::Vocab::FOAF.PersonalProfileDocument.to_s],
|
59
|
+
RDF::Vocab::FOAF.primaryTopic.to_s => [{"@id" => "_:b0"}]
|
60
60
|
}
|
61
61
|
]
|
62
62
|
},
|
data/spec/frame_spec.rb
CHANGED
@@ -566,4 +566,24 @@ describe JSON::LD::API do
|
|
566
566
|
end
|
567
567
|
end
|
568
568
|
end
|
569
|
+
|
570
|
+
context "problem cases" do
|
571
|
+
it "pr #20" do
|
572
|
+
expanded = [
|
573
|
+
{
|
574
|
+
"@id"=>"_:gregg",
|
575
|
+
"@type"=>"http://xmlns.com/foaf/0.1/Person",
|
576
|
+
"http://xmlns.com/foaf/0.1/name" => "Gregg Kellogg"
|
577
|
+
}, {
|
578
|
+
"@id"=>"http://manu.sporny.org/#me",
|
579
|
+
"@type"=> "http://xmlns.com/foaf/0.1/Person",
|
580
|
+
"http://xmlns.com/foaf/0.1/knows"=> {"@id"=>"_:gregg"},
|
581
|
+
"http://xmlns.com/foaf/0.1/name"=>"Manu Sporny"
|
582
|
+
}
|
583
|
+
]
|
584
|
+
framed = JSON::LD::API.frame(expanded, {})
|
585
|
+
data = framed["@graph"].first
|
586
|
+
expect(data["mising_value"]).to be_nil
|
587
|
+
end
|
588
|
+
end
|
569
589
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/suite_helper.rb
CHANGED
data/spec/writer_spec.rb
CHANGED
@@ -71,7 +71,7 @@ describe JSON::LD::Writer do
|
|
71
71
|
it "should use CURIEs with empty prefix" do
|
72
72
|
input = %(<http://xmlns.com/foaf/0.1/b> <http://xmlns.com/foaf/0.1/c> <http://xmlns.com/foaf/0.1/d> .)
|
73
73
|
begin
|
74
|
-
expect(serialize(input, prefixes: { "" => RDF::FOAF})).
|
74
|
+
expect(serialize(input, prefixes: { "" => RDF::Vocab::FOAF})).
|
75
75
|
to produce({
|
76
76
|
"@context" => {
|
77
77
|
"" => "http://xmlns.com/foaf/0.1/"
|
@@ -133,7 +133,7 @@ describe JSON::LD::Writer do
|
|
133
133
|
to produce({
|
134
134
|
'@context' => {
|
135
135
|
"" => "http://www.w3.org/2006/03/test-description#",
|
136
|
-
"dc" => RDF::DC.to_s
|
136
|
+
"dc" => RDF::Vocab::DC.to_s
|
137
137
|
},
|
138
138
|
'@graph' => [
|
139
139
|
{'@id' => "http://example.com/test-cases/0001", '@type' => ":TestCase"},
|
metadata
CHANGED
@@ -1,26 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json-ld
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.99.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregg Kellogg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-14 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
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.1'
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.1.17
|
23
|
-
- - "<"
|
24
18
|
- !ruby/object:Gem::Version
|
25
19
|
version: '1.99'
|
26
20
|
type: :runtime
|
@@ -28,12 +22,6 @@ dependencies:
|
|
28
22
|
version_requirements: !ruby/object:Gem::Requirement
|
29
23
|
requirements:
|
30
24
|
- - "~>"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '1.1'
|
33
|
-
- - ">="
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version: 1.1.17
|
36
|
-
- - "<"
|
37
25
|
- !ruby/object:Gem::Version
|
38
26
|
version: '1.99'
|
39
27
|
- !ruby/object:Gem::Dependency
|
@@ -84,14 +72,14 @@ dependencies:
|
|
84
72
|
requirements:
|
85
73
|
- - "~>"
|
86
74
|
- !ruby/object:Gem::Version
|
87
|
-
version: 1.2
|
75
|
+
version: '1.2'
|
88
76
|
type: :development
|
89
77
|
prerelease: false
|
90
78
|
version_requirements: !ruby/object:Gem::Requirement
|
91
79
|
requirements:
|
92
80
|
- - "~>"
|
93
81
|
- !ruby/object:Gem::Version
|
94
|
-
version: 1.2
|
82
|
+
version: '1.2'
|
95
83
|
- !ruby/object:Gem::Dependency
|
96
84
|
name: rack-cache
|
97
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -153,9 +141,6 @@ dependencies:
|
|
153
141
|
requirement: !ruby/object:Gem::Requirement
|
154
142
|
requirements:
|
155
143
|
- - "~>"
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '1.1'
|
158
|
-
- - "<"
|
159
144
|
- !ruby/object:Gem::Version
|
160
145
|
version: '1.99'
|
161
146
|
type: :development
|
@@ -163,9 +148,6 @@ dependencies:
|
|
163
148
|
version_requirements: !ruby/object:Gem::Requirement
|
164
149
|
requirements:
|
165
150
|
- - "~>"
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
version: '1.1'
|
168
|
-
- - "<"
|
169
151
|
- !ruby/object:Gem::Version
|
170
152
|
version: '1.99'
|
171
153
|
- !ruby/object:Gem::Dependency
|
@@ -173,9 +155,6 @@ dependencies:
|
|
173
155
|
requirement: !ruby/object:Gem::Requirement
|
174
156
|
requirements:
|
175
157
|
- - "~>"
|
176
|
-
- !ruby/object:Gem::Version
|
177
|
-
version: '1.1'
|
178
|
-
- - "<"
|
179
158
|
- !ruby/object:Gem::Version
|
180
159
|
version: '1.99'
|
181
160
|
type: :development
|
@@ -183,9 +162,6 @@ dependencies:
|
|
183
162
|
version_requirements: !ruby/object:Gem::Requirement
|
184
163
|
requirements:
|
185
164
|
- - "~>"
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: '1.1'
|
188
|
-
- - "<"
|
189
165
|
- !ruby/object:Gem::Version
|
190
166
|
version: '1.99'
|
191
167
|
- !ruby/object:Gem::Dependency
|
@@ -193,9 +169,6 @@ dependencies:
|
|
193
169
|
requirement: !ruby/object:Gem::Requirement
|
194
170
|
requirements:
|
195
171
|
- - "~>"
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
version: '1.1'
|
198
|
-
- - "<"
|
199
172
|
- !ruby/object:Gem::Version
|
200
173
|
version: '1.99'
|
201
174
|
type: :development
|
@@ -203,11 +176,22 @@ dependencies:
|
|
203
176
|
version_requirements: !ruby/object:Gem::Requirement
|
204
177
|
requirements:
|
205
178
|
- - "~>"
|
206
|
-
- !ruby/object:Gem::Version
|
207
|
-
version: '1.1'
|
208
|
-
- - "<"
|
209
179
|
- !ruby/object:Gem::Version
|
210
180
|
version: '1.99'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: rdf-vocab
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0.8'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0.8'
|
211
195
|
- !ruby/object:Gem::Dependency
|
212
196
|
name: rdf-xsd
|
213
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -215,9 +199,6 @@ dependencies:
|
|
215
199
|
- - "~>"
|
216
200
|
- !ruby/object:Gem::Version
|
217
201
|
version: '1.1'
|
218
|
-
- - "<"
|
219
|
-
- !ruby/object:Gem::Version
|
220
|
-
version: '1.99'
|
221
202
|
type: :development
|
222
203
|
prerelease: false
|
223
204
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -225,23 +206,20 @@ dependencies:
|
|
225
206
|
- - "~>"
|
226
207
|
- !ruby/object:Gem::Version
|
227
208
|
version: '1.1'
|
228
|
-
- - "<"
|
229
|
-
- !ruby/object:Gem::Version
|
230
|
-
version: '1.99'
|
231
209
|
- !ruby/object:Gem::Dependency
|
232
210
|
name: rspec
|
233
211
|
requirement: !ruby/object:Gem::Requirement
|
234
212
|
requirements:
|
235
213
|
- - "~>"
|
236
214
|
- !ruby/object:Gem::Version
|
237
|
-
version: 3.2
|
215
|
+
version: '3.2'
|
238
216
|
type: :development
|
239
217
|
prerelease: false
|
240
218
|
version_requirements: !ruby/object:Gem::Requirement
|
241
219
|
requirements:
|
242
220
|
- - "~>"
|
243
221
|
- !ruby/object:Gem::Version
|
244
|
-
version: 3.2
|
222
|
+
version: '3.2'
|
245
223
|
- !ruby/object:Gem::Dependency
|
246
224
|
name: rspec-its
|
247
225
|
requirement: !ruby/object:Gem::Requirement
|