Example #1
0
 /**
  * Tests the serialization of graphs
  */
 public function testSerializeGraph()
 {
     // This is the expanded and flattened version of the test document
     // (the blank node labels have been renamed from _:t... to _:b...)
     $expected = Processor::loadDocument('[{
            "@id": "_:b0",
            "http://vocab.com/nested": [{
               "@value": "1.1"
            }]
         }, {
            "@id": "_:b1",
            "http://vocab.com/nested": [{
               "@value": "2.1"
            }]
         }, {
            "@id": "_:b2",
            "http://vocab.com/nested": [{
               "@value": "2.2"
            }]
         }, {
            "@id": "_:b3",
            "http://vocab.com/nested": [{
               "@value": "3.1"
            }]
         }, {
            "@id": "http://example.com/node/1",
            "@type": ["http://vocab.com/type/node"],
            "http://vocab.com/contains": [{
               "@id": "_:b0"
            }],
            "http://vocab.com/link": [{
               "@id": "http://example.com/node/2"
            }],
            "http://vocab.com/name": [{
               "@value": "1"
            }]
         }, {
            "@id": "http://example.com/node/2",
            "@type": ["http://vocab.com/type/nodeWithAliases"],
            "http://vocab.com/aliases": [{
               "@value": "node2"
            }, {
               "@value": 2,
               "@type": "http://www.w3.org/2001/XMLSchema#integer"
            }],
            "http://vocab.com/contains": [{
               "@id": "_:b1"
            }, {
               "@id": "_:b2"
            }],
            "http://vocab.com/lang": [{
               "@language": "en",
               "@value": "language-tagged string"
            }],
            "http://vocab.com/link": [{
               "@id": "http://example.com/node/3"
            }],
            "http://vocab.com/name": [{
               "@value": "2"
            }],
            "http://vocab.com/typed": [{
               "@type": "http://vocab.com/type/datatype",
               "@value": "typed value"
            }]
         }, {
            "@id": "http://example.com/node/3",
            "@type": ["http://vocab.com/type/node"],
            "http://vocab.com/contains": [{
               "@id": "_:b3"
            }],
            "http://vocab.com/lang": [{
               "@language": "en",
               "@value": "language-tagged string: en"
            }, {
               "@language": "de",
               "@value": "language-tagged string: de"
            }],
            "http://vocab.com/link": [{
               "@id": "http://example.com/node/1"
            }],
            "http://vocab.com/name": [{
               "@value": "3"
            }],
            "http://vocab.com/typed": [{
               "@type": "http://vocab.com/type/datatype",
               "@value": "typed value"
            }, {
               "@language": "ex:/type/otherDataType",
               "@value": "typed value"
            }, {
               "@language": "ex:/type/datatype",
               "@value": "typed value"
            }]
         }, {
            "@id": "http://vocab.com/type/node"
         }, {
            "@id": "http://vocab.com/type/nodeWithAliases"
         }]');
     $this->assertEquals($expected, $this->graph->toJsonLd(false), 'Serialize graph');
 }