---
name: "JSONLD"
section: "3pm"
platform: "linux"
package: "libjsonld-perl"
version: "0.006-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/JSONLD"
---

# JSONLD(3pm)

A toolkit for transforming JSON-LD data.

## NAME

JSONLD - A toolkit for transforming JSON-LD data.

## VERSION

This document describes JSONLD version 0.006.

## SYNOPSIS

```
  use v5.14;
  use JSON;
  use JSONLD;

  my $infile = 'test.jsonld';
  open(my $fh, '<', $infile) or die $!;
  my $content   = do { local($/); <$fh> };
  my $data = JSON->new()->boolean_values(0, 1)->decode($content);

  my $jld = JSONLD->new();
  my $expanded  = $jld->expand($data);
```

## DESCRIPTION

This module implements part of the JSON-LD 1.1 standard for manipulating JSON data as linked data.

This version provides full support for the JSON-LD 1.1 "Expansion" and "toRdf" transformations (the latter primarily being useful through a subclass of JSON-LD, such as that provided by AtteanX::Parser::JSONLD). Partial support for the "Compaction" transformation is provided, but it contains many known deficiencies. Full support for "Compaction" may be forthcoming in a future release. No other JSON-LD transformation are supported at this time.

## METHODS

- "compact( $data, \[$context\] )"

  Returns the JSON-LD compaction of `$data`, using the optionally supplied `$context`.

  NOTE: Support for JSON-LD Compaction is not fully supported in this version.

- "expand( $data, \[expandContext =\> $ctx\] )"

  Returns the JSON-LD expansion of `$data`.

  If an `"expandContext"` value is supplied, it is used to construct the initial active context for the expansion process.

- "to\_rdf( $data, \[expandContext =\> $ctx\] )"

  Returns the dataset generated by turning the JSON-LD expansion of `$data` into RDF.

  If an `"expandContext"` value is supplied, it is passed to the `"expand"` function call that takes place internally prior to generating RDF.

  Note: this method must be called on a `"JSONLD"` subclass which implements the RDF-related methods:

  - •

    `default_graph()`

  - •

    `new_dataset()`

  - •

    `"new_triple($s, $p, $o)"`

  - •

    `"new_quad($s, $p, $o, $g)"`

  - •

    `new_iri($value)`

  - •

    `new_graphname($value)`

  - •

    `new_blank( [$id] )`

  - •

    `"new_lang_literal($value, $lang)"`

  - •

    `"new_dt_literal($value, $datatype)"`

  - •

    `"add_quad($quad, $dataset)"`

  See AtteanX::Parser::JSONLD for an API that provides this functionality.

## BUGS

Please report any bugs or feature requests to through the GitHub web interface at \<https://github.com/kasei/perl-jsonld/issues\>.

## SEE ALSO

- \<irc://irc.perl.org/#perlrdf\>

  - AtteanX::Parser::JSONLD

  - \<https://www.w3.org/TR/json-ld11/\>

  - \<https://www.w3.org/TR/json-ld-api/\>

  - MooX::Role::JSON\_LD

  ## AUTHOR

Gregory Todd Williams  `"<gwilliams@cpan.org>"`

## COPYRIGHT

Copyright (c) 2019--2020 Gregory Todd Williams. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
