- From: Gregg Kellogg <gregg@kellogg-assoc.com>
- Date: Thu, 5 Jan 2012 16:21:18 -0500
- To: "public-linked-json@w3.org JSON" <public-linked-json@w3.org>
I updated the test suite mechanics and added the compaction, expansion, framing and normalization tests from the jsonld.js project. The suite does not run itself yet, but the format is fairly straight forward:
In http://json-ld.org/test-suite/manifest.jsonld is the driving manifest, which loads manifests in the tests/ sub-directory for each category. These manifests have a list of the tests with their necessary inputs and outputs.
I run these tests through my Ruby runner, and I've attached the output I get at this point.
I made a couple of changes to the jsonld.js version of the tests: the manifests are now all JSON-LD documents, based on the test-description vocabulary used with RDFa. Context documents for compaction tests are now full JSON-LD documents, not just the content of the @context. The Node.js running used in jsonld.js should work with some minor updates.
The documentation page [1] could use some improvement, and could list the content of the manifests, if not be turned into a complete test runner.
Gregg
[1] http://json-ld.org/test-suite/
Test output for Ruby JSON-LD:
[json-ld] rspec spec/suite_spec.rb --format documentation
No examples matched {:focus=>true}. Running all.
Run filtered excluding {:ruby=>#<Proc:./spec/spec_helper.rb:34>}
JSON::LD
test suite
JSON-LD Test Suite
compact
compact-0001-in.jsonld: add context
compact-0002-in.jsonld: reduced context
compact-0003-in.jsonld: coerced ex:contains
compact-0004-in.jsonld: with coerce
compact-0005-in.jsonld: with date coerce
compact-0006-in.jsonld: native types
compact-0007-in.jsonld: native types with coerce
compact-0008-in.jsonld: literal with language
compact-0009-in.jsonld: disjoint graph as array (FAILED - 1)
compact-0010-in.jsonld: alias keywords (FAILED - 2)
expand
expand-0001-in.jsonld: id
expand-0002-in.jsonld: complex
expand-0003-in.jsonld: coerced ex:contains
expand-0004-in.jsonld: remove type-coercion context
expand-0005-in.jsonld: native types (FAILED - 3)
expand-0006-in.jsonld: native expanded type
expand-0007-in.jsonld: literal with language
expand-0008-in.jsonld: alias keywords
expand-0009-in.jsonld: terms
frame
frame-0001-in.jsonld: simple (PENDING: Framing)
frame-0002-in.jsonld: reframe w/extra CURIE value (PENDING: Framing)
frame-0003-in.jsonld: reframe (null) (PENDING: Framing)
frame-0004-in.jsonld: reframe (type) (PENDING: Framing)
frame-0005-in.jsonld: reframe (explicit) (PENDING: Framing)
frame-0006-in.jsonld: reframe (non-explicit) (PENDING: Framing)
frame-0007-in.jsonld: input has multiple types (PENDING: Framing)
frame-0008-in.jsonld: array framing cases (PENDING: Framing)
frame-0009-in.jsonld: default value (PENDING: Framing)
frame-0010-in.jsonld: property CURIE conflict (PENDING: Framing)
frame-0011-in.jsonld: @embed (PENDING: Framing)
frame-0012-in.jsonld: Array frame (PENDING: Framing)
frame-0013-in.jsonld: Replace existing embed (PENDING: Framing)
frame-0014-in.jsonld: Replace existing embed on 2nd pass (PENDING: Framing)
frame-0015-in.jsonld: Replace deeply-nested embed (PENDING: Framing)
normalize
normalize-0001-in.jsonld: simple id (PENDING: Normalization)
normalize-0002-in.jsonld: duplicate property iri values (PENDING: Normalization)
normalize-0003-in.jsonld: bnode (PENDING: Normalization)
normalize-0004-in.jsonld: bnode plus embed w/subject (PENDING: Normalization)
normalize-0005-in.jsonld: bnode embed (PENDING: Normalization)
normalize-0006-in.jsonld: multiple rdf types (PENDING: Normalization)
normalize-0007-in.jsonld: coerce CURIE value (PENDING: Normalization)
normalize-0008-in.jsonld: single subject complex (PENDING: Normalization)
normalize-0009-in.jsonld: multiple subjects - complex (PENDING: Normalization)
normalize-0010-in.jsonld: type (PENDING: Normalization)
normalize-0011-in.jsonld: type-coerced type (PENDING: Normalization)
normalize-0012-in.jsonld: type-coerced type, double reference (PENDING: Normalization)
normalize-0013-in.jsonld: type-coerced type, cycle (PENDING: Normalization)
normalize-0014-in.jsonld: check types (PENDING: Normalization)
normalize-0015-in.jsonld: top level context (PENDING: Normalization)
normalize-0016-in.jsonld: blank node - dual link - embed (PENDING: Normalization)
normalize-0017-in.jsonld: blank node - dual link - non-embed (PENDING: Normalization)
normalize-0018-in.jsonld: blank node - self link (PENDING: Normalization)
normalize-0019-in.jsonld: blank node - disjoint self links (PENDING: Normalization)
normalize-0020-in.jsonld: blank node - diamond (PENDING: Normalization)
normalize-0021-in.jsonld: blank node - circle of 2 (PENDING: Normalization)
normalize-0022-in.jsonld: blank node - double circle of 2 (PENDING: Normalization)
normalize-0023-in.jsonld: blank node - circle of 3 (PENDING: Normalization)
normalize-0024-in.jsonld: blank node - double circle of 3 (1-2-3) (PENDING: Normalization)
normalize-0025-in.jsonld: blank node - double circle of 3 (1-3-2) (PENDING: Normalization)
normalize-0026-in.jsonld: blank node - double circle of 3 (2-1-3) (PENDING: Normalization)
normalize-0027-in.jsonld: blank node - double circle of 3 (2-3-1) (PENDING: Normalization)
normalize-0028-in.jsonld: blank node - double circle of 3 (3-2-1) (PENDING: Normalization)
normalize-0029-in.jsonld: blank node - double circle of 3 (3-1-2) (PENDING: Normalization)
normalize-0030-in.jsonld: blank node - point at circle of 3 (PENDING: Normalization)
normalize-0031-in.jsonld: bnode (1) (PENDING: Normalization)
normalize-0032-in.jsonld: bnode (2) (PENDING: Normalization)
normalize-0033-in.jsonld: disjoint identical subgraphs (1) (PENDING: Normalization)
normalize-0034-in.jsonld: disjoint identical subgraphs (2) (PENDING: Normalization)
normalize-0035-in.jsonld: reordered w/strings (1) (PENDING: Normalization)
normalize-0036-in.jsonld: reordered w/strings (2) (PENDING: Normalization)
normalize-0037-in.jsonld: reordered w/strings (3) (PENDING: Normalization)
normalize-0038-in.jsonld: reordered 4 bnodes, reordered 2 properties (1) (PENDING: Normalization)
normalize-0039-in.jsonld: reordered 4 bnodes, reordered 2 properties (2) (PENDING: Normalization)
normalize-0040-in.jsonld: reordered 6 bnodes (1) (PENDING: Normalization)
normalize-0041-in.jsonld: reordered 6 bnodes (2) (PENDING: Normalization)
normalize-0042-in.jsonld: reordered 6 bnodes (3) (PENDING: Normalization)
normalize-0043-in.jsonld: literal with language (PENDING: Normalization)
normalize-0044-in.jsonld: evil (1) (PENDING: Normalization)
normalize-0045-in.jsonld: evil (2) (PENDING: Normalization)
normalize-0046-in.jsonld: evil (3) (PENDING: Normalization)
normalize-0047-in.jsonld: deep diff (1) (PENDING: Normalization)
normalize-0048-in.jsonld: deep diff (2) (PENDING: Normalization)
normalize-0049-in.jsonld: remove null (PENDING: Normalization)
normalize-0050-in.jsonld: nulls (PENDING: Normalization)
normalize-0051-in.jsonld: merging subjects (PENDING: Normalization)
normalize-0052-in.jsonld: alias keywords (PENDING: Normalization)
rdf
rdf-0001.jsonld: Plain literal with URIs
rdf-0002.jsonld: Plain literal with CURIE from default context
rdf-0003.jsonld: Default subject is BNode
rdf-0004.jsonld: Literal with language tag
rdf-0005.jsonld: Extended character set literal
rdf-0006.jsonld: Typed literal
rdf-0007.jsonld: Tests 'a' generates rdf:type and object is implicit IRI
rdf-0008.jsonld: Test prefix defined in @context
rdf-0009.jsonld: Test using default prefix
rdf-0010.jsonld: Test object processing defines object
rdf-0011.jsonld: Test object processing defines object with implicit BNode
rdf-0012.jsonld: Multiple Objects for a Single Property
rdf-0013.jsonld: Creation of an empty list
rdf-0014.jsonld: Creation of a list with single element
rdf-0015.jsonld: Creation of a list with multiple elements
rdf-0016.jsonld: Empty IRI expands to resource location
rdf-0017.jsonld: Relative IRI expands relative resource location
rdf-0018.jsonld: Frag ID expands relative resource location
rdf-0019.jsonld: Test type coercion to anyURI
rdf-0020.jsonld: Test type coercion to typed literal
rdf-0021.jsonld: Test coercion of decimal value to double
rdf-0022.jsonld: Test coercion of double value
rdf-0023.jsonld: Test coercion of integer value
rdf-0024.jsonld: Test coercion of boolean value
rdf-0025.jsonld: Test list coercion with single element
rdf-0026.jsonld: Test creation of multiple types
Pending:
JSON::LD test suite JSON-LD Test Suite frame frame-0001-in.jsonld: simple
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0002-in.jsonld: reframe w/extra CURIE value
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0003-in.jsonld: reframe (null)
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0004-in.jsonld: reframe (type)
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0005-in.jsonld: reframe (explicit)
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0006-in.jsonld: reframe (non-explicit)
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0007-in.jsonld: input has multiple types
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0008-in.jsonld: array framing cases
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0009-in.jsonld: default value
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0010-in.jsonld: property CURIE conflict
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0011-in.jsonld: @embed
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0012-in.jsonld: Array frame
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0013-in.jsonld: Replace existing embed
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0014-in.jsonld: Replace existing embed on 2nd pass
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite frame frame-0015-in.jsonld: Replace deeply-nested embed
# Framing
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0001-in.jsonld: simple id
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0002-in.jsonld: duplicate property iri values
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0003-in.jsonld: bnode
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0004-in.jsonld: bnode plus embed w/subject
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0005-in.jsonld: bnode embed
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0006-in.jsonld: multiple rdf types
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0007-in.jsonld: coerce CURIE value
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0008-in.jsonld: single subject complex
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0009-in.jsonld: multiple subjects - complex
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0010-in.jsonld: type
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0011-in.jsonld: type-coerced type
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0012-in.jsonld: type-coerced type, double reference
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0013-in.jsonld: type-coerced type, cycle
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0014-in.jsonld: check types
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0015-in.jsonld: top level context
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0016-in.jsonld: blank node - dual link - embed
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0017-in.jsonld: blank node - dual link - non-embed
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0018-in.jsonld: blank node - self link
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0019-in.jsonld: blank node - disjoint self links
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0020-in.jsonld: blank node - diamond
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0021-in.jsonld: blank node - circle of 2
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0022-in.jsonld: blank node - double circle of 2
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0023-in.jsonld: blank node - circle of 3
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0024-in.jsonld: blank node - double circle of 3 (1-2-3)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0025-in.jsonld: blank node - double circle of 3 (1-3-2)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0026-in.jsonld: blank node - double circle of 3 (2-1-3)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0027-in.jsonld: blank node - double circle of 3 (2-3-1)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0028-in.jsonld: blank node - double circle of 3 (3-2-1)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0029-in.jsonld: blank node - double circle of 3 (3-1-2)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0030-in.jsonld: blank node - point at circle of 3
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0031-in.jsonld: bnode (1)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0032-in.jsonld: bnode (2)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0033-in.jsonld: disjoint identical subgraphs (1)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0034-in.jsonld: disjoint identical subgraphs (2)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0035-in.jsonld: reordered w/strings (1)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0036-in.jsonld: reordered w/strings (2)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0037-in.jsonld: reordered w/strings (3)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0038-in.jsonld: reordered 4 bnodes, reordered 2 properties (1)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0039-in.jsonld: reordered 4 bnodes, reordered 2 properties (2)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0040-in.jsonld: reordered 6 bnodes (1)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0041-in.jsonld: reordered 6 bnodes (2)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0042-in.jsonld: reordered 6 bnodes (3)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0043-in.jsonld: literal with language
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0044-in.jsonld: evil (1)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0045-in.jsonld: evil (2)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0046-in.jsonld: evil (3)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0047-in.jsonld: deep diff (1)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0048-in.jsonld: deep diff (2)
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0049-in.jsonld: remove null
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0050-in.jsonld: nulls
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0051-in.jsonld: merging subjects
# Normalization
# ./spec/suite_spec.rb:14
JSON::LD test suite JSON-LD Test Suite normalize normalize-0052-in.jsonld: alias keywords
# Normalization
# ./spec/suite_spec.rb:14
Failures:
1) JSON::LD test suite JSON-LD Test Suite compact compact-0009-in.jsonld: disjoint graph as array
Failure/Error: result = JSON::LD::API.compact(t.input, t.context,
TypeError:
can't convert Array into Hash
# ./lib/json/ld/api.rb:155:in `merge'
# ./lib/json/ld/api.rb:155:in `block in compact'
# ./lib/json/ld/api.rb:31:in `initialize'
# ./lib/json/ld/api.rb:148:in `new'
# ./lib/json/ld/api.rb:148:in `compact'
# ./spec/suite_spec.rb:18:in `block (8 levels) in <top (required)>'
2) JSON::LD test suite JSON-LD Test Suite compact compact-0010-in.jsonld: alias keywords
Failure/Error: JSON.parse(result).should produce(expected, t.debug)
Expected: {
"@context": {
"http://example.org/test#property2": {
"@type": "uri"
},
"http://example.org/test#property3": {
"@type": "uri"
},
"uri": "@id"
},
"http://example.org/test#property1": {
"http://example.org/test#property4": "foo",
"uri": "http://example.org/test#example2"
},
"http://example.org/test#property2": "http://example.org/test#example3",
"http://example.org/test#property3": "http://example.org/test#example4",
"uri": "http://example.org/test#example1"
}
Actual : {
"@context": {
"http://example.org/test#property1": {
"@type": "uri"
},
"http://example.org/test#property2": {
"@type": "uri"
},
"http://example.org/test#property3": {
"@type": "uri"
},
"uri": "@id"
},
"@id": "http://example.org/test#example1",
"http://example.org/test#property1": {
"@id": "http://example.org/test#example2",
"http://example.org/test#property4": "foo"
},
"http://example.org/test#property2": "http://example.org/test#example3",
"http://example.org/test#property3": "http://example.org/test#example4"
}
Processing results:
init: iri_to_term: {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd"}
expand: input: Hash, predicate: nil, context: [EvaluationContext, mappings[0]={}, coercions[0]={}, lists[0]={}]
expand: @id: "http://example.org/test#example1"
expand_iri: prefix: "http", suffix: "//example.org/test#example1"
expand: => #<RDF::URI:0x8159960c(http://example.org/test#example1)>
expand: http://example.org/test#property1: {"@id"=>"http://example.org/test#example2", "http://example.org/test#property4"=>"foo"}
expand_iri: prefix: "http", suffix: "//example.org/test#property1"
expand: input: Hash, predicate: #<RDF::URI:0x81594044(http://example.org/test#property1)>, context: [EvaluationContext, mappings[0]={}, coercions[0]={}, lists[0]={}]
expand: @id: "http://example.org/test#example2"
expand_iri: prefix: "http", suffix: "//example.org/test#example2"
expand: => #<RDF::URI:0x8159339c(http://example.org/test#example2)>
expand: http://example.org/test#property4: "foo"
expand_iri: prefix: "http", suffix: "//example.org/test#property4"
expand_value: predicate: http://example.org/test#property4, value: "foo", coerce: nil
=> "foo"
expand: => "foo"
expand: => {"@id"=>#<RDF::URI:0x8159339c(http://example.org/test#example2)>, "http://example.org/test#property4"=>"foo"}
expand: http://example.org/test#property2: {"@id"=>"http://example.org/test#example3"}
expand_iri: prefix: "http", suffix: "//example.org/test#property2"
expand: input: Hash, predicate: #<RDF::URI:0x81591a10(http://example.org/test#property2)>, context: [EvaluationContext, mappings[0]={}, coercions[0]={}, lists[0]={}]
expand: @id: "http://example.org/test#example3"
expand_iri: prefix: "http", suffix: "//example.org/test#example3"
expand: => #<RDF::URI:0x81590da4(http://example.org/test#example3)>
expand: => {"@id"=>#<RDF::URI:0x81590da4(http://example.org/test#example3)>}
expand: http://example.org/test#property3: {"@id"=>"http://example.org/test#example4"}
expand_iri: prefix: "http", suffix: "//example.org/test#property3"
expand: input: Hash, predicate: #<RDF::URI:0x8157bf80(http://example.org/test#property3)>, context: [EvaluationContext, mappings[0]={}, coercions[0]={}, lists[0]={}]
expand: @id: "http://example.org/test#example4"
expand_iri: prefix: "http", suffix: "//example.org/test#example4"
expand: => #<RDF::URI:0x81578484(http://example.org/test#example4)>
expand: => {"@id"=>#<RDF::URI:0x81578484(http://example.org/test#example4)>}
init: iri_to_term: {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd"}
parse: io: #<File:0x00000102b35080>
parse: => provided_context: {"http://example.org/test#property1"=>{"@type"=>"uri"}, "http://example.org/test#property2"=>{"@type"=>"uri"}, "http://example.org/test#property3"=>{"@type"=>"uri"}, "uri"=>"@id"}
parse: Hash[http://example.org/test#property1] = {"@type"=>"uri"}
expand_iri: prefix: "http", suffix: "//example.org/test#property1"
parse: Hash[http://example.org/test#property2] = {"@type"=>"uri"}
expand_iri: prefix: "http", suffix: "//example.org/test#property2"
parse: Hash[http://example.org/test#property3] = {"@type"=>"uri"}
expand_iri: prefix: "http", suffix: "//example.org/test#property3"
parse: Hash[uri] = "@id"
expand_iri: prefix: "@id", suffix: nil
map "uri" to @id
parse: Hash[http://example.org/test#property1] = {"@type"=>"uri"}
expand_iri: prefix: "http", suffix: "//example.org/test#property1"
parse: Hash[http://example.org/test#property2] = {"@type"=>"uri"}
expand_iri: prefix: "http", suffix: "//example.org/test#property2"
parse: Hash[http://example.org/test#property3] = {"@type"=>"uri"}
expand_iri: prefix: "http", suffix: "//example.org/test#property3"
parse: Hash[uri] = "@id"
expand_iri: prefix: "@id", suffix: nil
parse: coercion/list: Hash[http://example.org/test#property1] = {"@type"=>"uri"}
expand_iri: prefix: "http", suffix: "//example.org/test#property1"
expand_iri: prefix: "uri", suffix: nil
parse: coerce "http://example.org/test#property1" to #<RDF::URI:0x81571c88(@id)>
coerce "http://example.org/test#property1" to @id
parse: coercion/list: Hash[http://example.org/test#property2] = {"@type"=>"uri"}
expand_iri: prefix: "http", suffix: "//example.org/test#property2"
expand_iri: prefix: "uri", suffix: nil
parse: coerce "http://example.org/test#property2" to #<RDF::URI:0x81555268(@id)>
coerce "http://example.org/test#property2" to @id
parse: coercion/list: Hash[http://example.org/test#property3] = {"@type"=>"uri"}
expand_iri: prefix: "http", suffix: "//example.org/test#property3"
expand_iri: prefix: "uri", suffix: nil
parse: coerce "http://example.org/test#property3" to #<RDF::URI:0x81554070(@id)>
coerce "http://example.org/test#property3" to @id
parse: coercion/list: Hash[uri] = "@id"
expand_iri: prefix: "uri", suffix: nil
compact: input: Hash, predicate: nil
compact: @id: #<RDF::URI:0x8159960c(http://example.org/test#example1)>
compact_iri({:position=>:subject, :depth=>nil}, #<RDF::URI:0x8159960c(http://example.org/test#example1)>)
get_curie(#<RDF::URI:0x8159960c(http://example.org/test#example1)>)
no mapping found for http://example.org/test#example1 in {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd", "@id"=>"uri"}
=> "http://example.org/test#example1"
compact: => "http://example.org/test#example1"
compact: http://example.org/test#property1: {"@id"=>#<RDF::URI:0x8159339c(http://example.org/test#example2)>, "http://example.org/test#property4"=>"foo"}
compact_iri({:position=>:predicate, :depth=>nil}, "http://example.org/test#property1")
get_curie("http://example.org/test#property1")
no mapping found for http://example.org/test#property1 in {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd", "@id"=>"uri"}
=> "http://example.org/test#property1"
compact: => compacted key: "http://example.org/test#property1"
compact: object
compact: input: Hash, predicate: #<RDF::URI:0x8153d410(http://example.org/test#property1)>
compact: @id: #<RDF::URI:0x8159339c(http://example.org/test#example2)>
compact_iri({:position=>:subject, :depth=>1}, #<RDF::URI:0x8159339c(http://example.org/test#example2)>)
get_curie(#<RDF::URI:0x8159339c(http://example.org/test#example2)>)
no mapping found for http://example.org/test#example2 in {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd", "@id"=>"uri"}
=> "http://example.org/test#example2"
compact: => "http://example.org/test#example2"
compact: http://example.org/test#property4: "foo"
compact_iri({:position=>:predicate, :depth=>1}, "http://example.org/test#property4")
get_curie("http://example.org/test#property4")
no mapping found for http://example.org/test#property4 in {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd", "@id"=>"uri"}
=> "http://example.org/test#property4"
compact: => compacted key: "http://example.org/test#property4"
compact: value
compact: => compacted value: "foo"
compact: => compacted value: {"@id"=>"http://example.org/test#example2", "http://example.org/test#property4"=>"foo"}
compact: http://example.org/test#property2: {"@id"=>#<RDF::URI:0x81590da4(http://example.org/test#example3)>}
compact_iri({:position=>:predicate, :depth=>0}, "http://example.org/test#property2")
get_curie("http://example.org/test#property2")
no mapping found for http://example.org/test#property2 in {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd", "@id"=>"uri"}
=> "http://example.org/test#property2"
compact: => compacted key: "http://example.org/test#property2"
compact: keys: ["@id"]
compact_value: predicate: #<RDF::URI:0x815264f4(http://example.org/test#property2)>, value: {"@id"=>#<RDF::URI:0x81590da4(http://example.org/test#example3)>}, coerce: #<RDF::URI:0x81555268(@id)>
(@id & coerce)
compact_iri({:position=>:object}, #<RDF::URI:0x81590da4(http://example.org/test#example3)>)
get_curie(#<RDF::URI:0x81590da4(http://example.org/test#example3)>)
no mapping found for http://example.org/test#example3 in {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd", "@id"=>"uri"}
=> "http://example.org/test#example3"
=> "http://example.org/test#example3"
compact: => compacted value: "http://example.org/test#example3"
compact: http://example.org/test#property3: {"@id"=>#<RDF::URI:0x81578484(http://example.org/test#example4)>}
compact_iri({:position=>:predicate, :depth=>0}, "http://example.org/test#property3")
get_curie("http://example.org/test#property3")
no mapping found for http://example.org/test#property3 in {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd", "@id"=>"uri"}
=> "http://example.org/test#property3"
compact: => compacted key: "http://example.org/test#property3"
compact: keys: ["@id"]
compact_value: predicate: #<RDF::URI:0x81524690(http://example.org/test#property3)>, value: {"@id"=>#<RDF::URI:0x81578484(http://example.org/test#example4)>}, coerce: #<RDF::URI:0x81554070(@id)>
(@id & coerce)
compact_iri({:position=>:object}, #<RDF::URI:0x81578484(http://example.org/test#example4)>)
get_curie(#<RDF::URI:0x81578484(http://example.org/test#example4)>)
no mapping found for http://example.org/test#example4 in {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd", "@id"=>"uri"}
=> "http://example.org/test#example4"
=> "http://example.org/test#example4"
compact: => compacted value: "http://example.org/test#example4"
serlialize: reuse context: {"http://example.org/test#property1"=>{"@type"=>"uri"}, "http://example.org/test#property2"=>{"@type"=>"uri"}, "http://example.org/test#property3"=>{"@type"=>"uri"}, "uri"=>"@id"}
# ./spec/suite_spec.rb:22:in `block (8 levels) in <top (required)>'
3) JSON::LD test suite JSON-LD Test Suite expand expand-0005-in.jsonld: native types
Failure/Error: JSON.parse(result).should produce(expected, t.debug)
Expected: {
"@id": "http://example.org/test",
"http://example.org/vocab#bool": {
"@literal": "true",
"@type": "http://www.w3.org/2001/XMLSchema#boolean"
},
"http://example.org/vocab#double": {
"@literal": "1.230000e+00",
"@type": "http://www.w3.org/2001/XMLSchema#double"
},
"http://example.org/vocab#double-zero": {
"@literal": "0.000000e+00",
"@type": "http://www.w3.org/2001/XMLSchema#double"
},
"http://example.org/vocab#int": {
"@literal": "123",
"@type": "http://www.w3.org/2001/XMLSchema#integer"
}
}
Actual : {
"@id": "http://example.org/test",
"http://example.org/vocab#bool": {
"@literal": "true",
"@type": "http://www.w3.org/2001/XMLSchema#boolean"
},
"http://example.org/vocab#double": {
"@literal": "1.23",
"@type": "http://www.w3.org/2001/XMLSchema#double"
},
"http://example.org/vocab#double-zero": {
"@literal": "0",
"@type": "http://www.w3.org/2001/XMLSchema#integer"
},
"http://example.org/vocab#int": {
"@literal": "123",
"@type": "http://www.w3.org/2001/XMLSchema#integer"
}
}
Processing results:
init: iri_to_term: {"http://www.w3.org/1999/02/22-rdf-syntax-ns#"=>"rdf", "http://www.w3.org/2001/XMLSchema#"=>"xsd"}
expand: input: Hash, predicate: nil, context: [EvaluationContext, mappings[0]={}, coercions[0]={}, lists[0]={}]
parse: => provided_context: {"d"=>"http://purl.org/dc/elements/1.1/", "e"=>"http://example.org/vocab#", "e:double-zero"=>{"@type"=>"xsd:double"}, "f"=>"http://xmlns.com/foaf/0.1/", "xsd"=>"http://www.w3.org/2001/XMLSchema#"}
parse: Hash[d] = "http://purl.org/dc/elements/1.1/"
expand_iri: prefix: "http", suffix: "//purl.org/dc/elements/1.1/"
map "d" to http://purl.org/dc/elements/1.1/
parse: Hash[e] = "http://example.org/vocab#"
expand_iri: prefix: "http", suffix: "//example.org/vocab#"
map "e" to http://example.org/vocab#
parse: Hash[e:double-zero] = {"@type"=>"xsd:double"}
expand_iri: prefix: "e", suffix: "double-zero"
parse: Hash[f] = "http://xmlns.com/foaf/0.1/"
expand_iri: prefix: "http", suffix: "//xmlns.com/foaf/0.1/"
map "f" to http://xmlns.com/foaf/0.1/
parse: Hash[xsd] = "http://www.w3.org/2001/XMLSchema#"
expand_iri: prefix: "http", suffix: "//www.w3.org/2001/XMLSchema#"
map "xsd" to http://www.w3.org/2001/XMLSchema#
parse: Hash[d] = "http://purl.org/dc/elements/1.1/"
expand_iri: prefix: "http", suffix: "//purl.org/dc/elements/1.1/"
parse: Hash[e] = "http://example.org/vocab#"
expand_iri: prefix: "http", suffix: "//example.org/vocab#"
parse: Hash[e:double-zero] = {"@type"=>"xsd:double"}
expand_iri: prefix: "e", suffix: "double-zero"
parse: Hash[f] = "http://xmlns.com/foaf/0.1/"
expand_iri: prefix: "http", suffix: "//xmlns.com/foaf/0.1/"
parse: Hash[xsd] = "http://www.w3.org/2001/XMLSchema#"
expand_iri: prefix: "http", suffix: "//www.w3.org/2001/XMLSchema#"
parse: coercion/list: Hash[d] = "http://purl.org/dc/elements/1.1/"
expand_iri: prefix: "d", suffix: nil
parse: coercion/list: Hash[e] = "http://example.org/vocab#"
expand_iri: prefix: "e", suffix: nil
parse: coercion/list: Hash[e:double-zero] = {"@type"=>"xsd:double"}
expand_iri: prefix: "e", suffix: "double-zero"
expand_iri: prefix: "xsd", suffix: "double"
parse: coerce "http://example.org/vocab#double-zero" to #<RDF::URI:0x8147d0fc(http://www.w3.org/2001/XMLSchema#double)>
coerce "http://example.org/vocab#double-zero" to http://www.w3.org/2001/XMLSchema#double
parse: coercion/list: Hash[f] = "http://xmlns.com/foaf/0.1/"
expand_iri: prefix: "f", suffix: nil
parse: coercion/list: Hash[xsd] = "http://www.w3.org/2001/XMLSchema#"
expand_iri: prefix: "xsd", suffix: nil
expand: @context: {"d"=>"http://purl.org/dc/elements/1.1/", "e"=>"http://example.org/vocab#", "e:double-zero"=>{"@type"=>"xsd:double"}, "f"=>"http://xmlns.com/foaf/0.1/", "xsd"=>"http://www.w3.org/2001/XMLSchema#"}
expand: @id: "http://example.org/test"
expand_iri: prefix: "http", suffix: "//example.org/test"
expand: => #<RDF::URI:0x8147a208(http://example.org/test)>
expand: e:bool: true
expand_iri: prefix: "e", suffix: "bool"
expand_value: predicate: http://example.org/vocab#bool, value: true, coerce: nil
=> {"@literal"=>"true", "@type"=>"http://www.w3.org/2001/XMLSchema#boolean"}
expand: => {"@literal"=>"true", "@type"=>"http://www.w3.org/2001/XMLSchema#boolean"}
expand: e:double: 1.23
expand_iri: prefix: "e", suffix: "double"
expand_value: predicate: http://example.org/vocab#double, value: 1.23, coerce: nil
=> {"@literal"=>"1.23", "@type"=>"http://www.w3.org/2001/XMLSchema#double"}
expand: => {"@literal"=>"1.23", "@type"=>"http://www.w3.org/2001/XMLSchema#double"}
expand: e:double-zero: 0
expand_iri: prefix: "e", suffix: "double-zero"
expand_value: predicate: http://example.org/vocab#double-zero, value: 0, coerce: #<RDF::URI:0x8147d0fc(http://www.w3.org/2001/XMLSchema#double)>
=> {"@literal"=>"0", "@type"=>"http://www.w3.org/2001/XMLSchema#integer"}
expand: => {"@literal"=>"0", "@type"=>"http://www.w3.org/2001/XMLSchema#integer"}
expand: e:int: 123
expand_iri: prefix: "e", suffix: "int"
expand_value: predicate: http://example.org/vocab#int, value: 123, coerce: nil
=> {"@literal"=>"123", "@type"=>"http://www.w3.org/2001/XMLSchema#integer"}
expand: => {"@literal"=>"123", "@type"=>"http://www.w3.org/2001/XMLSchema#integer"}
# ./spec/suite_spec.rb:28:in `block (8 levels) in <top (required)>'
Finished in 2.21 seconds
112 examples, 3 failures, 67 pending
Failed examples:
rspec ./spec/suite_spec.rb:14 # JSON::LD test suite JSON-LD Test Suite compact compact-0009-in.jsonld: disjoint graph as array
rspec ./spec/suite_spec.rb:14 # JSON::LD test suite JSON-LD Test Suite compact compact-0010-in.jsonld: alias keywords
rspec ./spec/suite_spec.rb:14 # JSON::LD test suite JSON-LD Test Suite expand expand-0005-in.jsonld: native types
[json-ld]
Received on Thursday, 5 January 2012 21:22:32 UTC