NAME
    JSON::GRDDL - transform JSON to RDF

SYNOPSIS
     # Low-Level Interface
     #
     my $grddl = JSON::GRDDL->new;
     my @transformations = $grddl->discover($jsondoc, $baseuri);
     foreach my $trans (@transformations)
     {
       my $model = $grddl->transform_by_uri($jsondoc, $baseuri, $trans);
       # $model is an RDF::Trine::Model
     }

     # High-Level Interface
     #
     my $grddl = JSON::GRDDL->new;
     my $model = $grddl->data($jsondoc, $baseuri);
     # $model is an RDF::Trine::Model

DESCRIPTION
    This module implements jsonGRDDL, a port of GRDDL concepts from XML to
    JSON.

    jsonGRDDL is described at <http://buzzword.org.uk/2008/jsonGRDDL/spec>.

    This module attempts to provide a similar API to XML::GRDDL but differs
    in some respects.

  Constructor
    "JSON::GRDDL->new"
        The constructor accepts no parameters and returns a JSON::GRDDL
        object.

  Methods
    "$grddl->data($json, $base, %options)"
        This is usually what you want to call. It's a high-level method that
        does everything for you and returns the RDF you wanted. $json is the
        raw JSON source of the document, or an equivalent Perl
        hashref/arrayref structure. $base is the base URI for resolving
        relative references.

        Returns an RDF::Trine::Model.

    "$grddl->discover($json, $base, %options)"
        You only need to call this method if you're doing something unusual.

        Processes the JSON document to discover the transformation
        associated with it. $json is the raw JSON source of the document, or
        an equivalent Perl hashref/arrayref structure. $base is the base URI
        for resolving relative references.

        Returns a list of URLs as strings.

    "$grddl->transform_by_uri($json, $base, $transformation, %options)"
        You only need to call this method if you're doing something unusual.

        Transforms a JSON document into RDF using a JsonT transformation,
        specified by URI. $json is the raw JSON source of the document, or
        an equivalent Perl hashref/arrayref structure. $base is the base URI
        for resolving relative references. $transformation is the URI for
        the JsonT transformation.

        Returns an RDF::Trine::Model.

    "$grddl->transform_by_jsont($json, $base, $code, $name, %options)"
        You only need to call this method if you're doing something unusual.

        Transforms a JSON document into RDF using a JsonT transformation,
        specified as a Javascript code, variable name pair. $json is the raw
        JSON source of the document, or an equivalent Perl hashref/arrayref
        structure. $base is the base URI for resolving relative references.
        $code and $name must be suitable for passing to the "new"
        constructor from the JSON::T package.

        Returns an RDF::Trine::Model.

BUGS
    Please report any bugs to <http://rt.cpan.org/>.

SEE ALSO
    Specification: <http://buzzword.org.uk/2008/jsonGRDDL/spec>.

    Related modules: JSON, JSON::T, JSON::Path, XML::GRDDL.

    <http://www.perlrdf.org/>.

    This module is derived from Swignition
    <http://buzzword.org.uk/swignition/>.

AUTHOR
    Toby Inkster <tobyink@cpan.org>.

COPYRIGHT AND LICENCE
    Copyright 2008-2010 Toby Inkster.

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

