public function toRdf(array $document)
    {
        $nodeMap = new JsonObject();
        $nodeMap->{'-' . JsonLD::DEFAULT_GRAPH} = new JsonObject();

        $this->generateNodeMap($nodeMap, $document);

        $result = array();

        foreach ($nodeMap as $graphName => $graph) {
            $graphName = substr($graphName, 1);
            if (JsonLD::DEFAULT_GRAPH === $graphName) {
                $activegraph = null;
            } else {
                $activegraph = new IRI($graphName);

                if (false === $activegraph->isAbsolute()) {
                    continue;
                }
            }

            foreach ($graph as $subject => $node) {
                $activesubj = new IRI(substr($subject, 1));

                if (false === $activesubj->isAbsolute()) {
                    continue;
                }

                foreach ($node as $property => $values) {
                    if ('@id' === $property) {
                        continue;
                    } elseif ('@type' === $property) {
                        $activeprty = new IRI(RdfConstants::RDF_TYPE);
                        foreach ($values as $value) {
                            $result[] = new Quad($activesubj, $activeprty, new IRI($value), $activegraph);
                        }

                        continue;
                    } elseif ('@' === $property[0]) {
                        continue;
                    }

                    // Exclude triples/quads with a blank node predicate if generalized RDF isn't enabled
                    if ((0 === strncmp($property, '_:', 2)) && (false === $this->generalizedRdf)) {
                        continue;
                    }

                    $activeprty = new IRI($property);
                    if (false === $activeprty->isAbsolute()) {
                        continue;
                    }

                    foreach ($values as $value) {
                        if (property_exists($value, '@list')) {
                            $quads = array();
                            $head = $this->listToRdf($value->{'@list'}, $quads, $activegraph);

                            $result[] = new Quad($activesubj, $activeprty, $head, $activegraph);
                            foreach ($quads as $quad) {
                                $result[] = $quad;
                            }
                        } else {
                            $object = $this->elementToRdf($value);

                            if (null === $object) {
                                continue;
                            }

                            $result[] = new Quad($activesubj, $activeprty, $object, $activegraph);
                        }
                    }
                }
            }
        }

        return $result;
    }
public function toRdf(array $document)
    {
        $nodeMap = new JsonObject();
        $nodeMap->{'-' . JsonLD::DEFAULT_GRAPH} = new JsonObject();

        $this->generateNodeMap($nodeMap, $document);

        $result = array();

        foreach ($nodeMap as $graphName => $graph) {
            $graphName = substr($graphName, 1);
            if (JsonLD::DEFAULT_GRAPH === $graphName) {
                $activegraph = null;
            } else {
                $activegraph = new IRI($graphName);

                if (false === $activegraph->isAbsolute()) {
                    continue;
                }
            }

            foreach ($graph as $subject => $node) {
                $activesubj = new IRI(substr($subject, 1));

                if (false === $activesubj->isAbsolute()) {
                    continue;
                }

                foreach ($node as $property => $values) {
                    if ('@id' === $property) {
                        continue;
                    } elseif ('@type' === $property) {
                        $activeprty = new IRI(RdfConstants::RDF_TYPE);
                        foreach ($values as $value) {
                            $result[] = new Quad($activesubj, $activeprty, new IRI($value), $activegraph);
                        }

                        continue;
                    } elseif ('@' === $property[0]) {
                        continue;
                    }

                    // Exclude triples/quads with a blank node predicate if generalized RDF isn't enabled
                    if ((0 === strncmp($property, '_:', 2)) && (false === $this->generalizedRdf)) {
                        continue;
                    }

                    $activeprty = new IRI($property);
                    if (false === $activeprty->isAbsolute()) {
                        continue;
                    }

                    foreach ($values as $value) {
                        if (property_exists($value, '@list')) {
                            $quads = array();
                            $head = $this->listToRdf($value->{'@list'}, $quads, $activegraph);

                            $result[] = new Quad($activesubj, $activeprty, $head, $activegraph);
                            foreach ($quads as $quad) {
                                $result[] = $quad;
                            }
                        } else {
                            $object = $this->elementToRdf($value);

                            if (null === $object) {
                                continue;
                            }

                            $result[] = new Quad($activesubj, $activeprty, $object, $activegraph);
                        }
                    }
                }
            }
        }

        return $result;
    }
public function toRdf ( array $ document ) { $ nodeMap = new JsonObject ( ) ; $ nodeMap -> { '-' . JsonLD :: DEFAULT_GRAPH } = new JsonObject ( ) ; $ this -> generateNodeMap ( $ nodeMap , $ document ) ; $ result = array ( ) ; foreach ( $ nodeMap as $ graphName => $ graph ) { $ graphName = substr ( $ graphName , 1 ) ; if ( JsonLD :: DEFAULT_GRAPH === $ graphName ) { $ activegraph = null ; } else { $ activegraph = new IRI ( $ graphName ) ; if ( false === $ activegraph -> isAbsolute ( ) ) { continue ; } } foreach ( $ graph as $ subject => $ node ) { $ activesubj = new IRI ( substr ( $ subject , 1 ) ) ; if ( false === $ activesubj -> isAbsolute ( ) ) { continue ; } foreach ( $ node as $ property => $ values ) { if ( '@id' === $ property ) { continue ; } elseif ( '@type' === $ property ) { $ activeprty = new IRI ( RdfConstants :: RDF_TYPE ) ; foreach ( $ values as $ value ) { $ result [ ] = new Quad ( $ activesubj , $ activeprty , new IRI ( $ value ) , $ activegraph ) ; } continue ; } elseif ( '@' === $ property [ 0 ] ) { continue ; } // Exclude triples/quads with a blank node predicate if generalized RDF isn't enabled if ( ( 0 === strncmp ( $ property , '_:' , 2 ) ) && ( false === $ this -> generalizedRdf ) ) { continue ; } $ activeprty = new IRI ( $ property ) ; if ( false === $ activeprty -> isAbsolute ( ) ) { continue ; } foreach ( $ values as $ value ) { if ( property_exists ( $ value , '@list' ) ) { $ quads = array ( ) ; $ head = $ this -> listToRdf ( $ value -> { '@list' } , $ quads , $ activegraph ) ; $ result [ ] = new Quad ( $ activesubj , $ activeprty , $ head , $ activegraph ) ; foreach ( $ quads as $ quad ) { $ result [ ] = $ quad ; } } else { $ object = $ this -> elementToRdf ( $ value ) ; if ( null === $ object ) { continue ; } $ result [ ] = new Quad ( $ activesubj , $ activeprty , $ object , $ activegraph ) ; } } } } } return $ result ; }
Converts an expanded JSON-LD document to RDF quads

The result is an array of Quads.

@param array $document The expanded JSON-LD document to be transformed into quads.

@return Quad[] The extracted quads.
Converts an expanded JSON - LD document to RDF quads