elm-cardano/json-ld/1.0.0

elm-cardano/json-ld

JSON-LD parsing, N-Quads serialization, and RDFC-1.0 canonicalization for Elm.

Only inline contexts are supported (no remote HTTP fetching of @context URLs).

API

import Json.Decode exposing (Value)
import JsonLd
import JsonLd.Rdf exposing (Dataset)

-- Full pipeline: JSON-LD to canonical N-Quads (RDFC-1.0, SHA-256)
JsonLd.toCanonicalNQuads : Value -> Result String String

-- Individual steps
JsonLd.expand : Value -> Result String Value
JsonLd.toRdf  : Value -> Result String Dataset
import JsonLd.NQuads
import JsonLd.Rdf exposing (Dataset)

JsonLd.NQuads.serialize : Dataset -> String
JsonLd.NQuads.parse     : String -> Result String Dataset
import JsonLd.Canonicalize
import JsonLd.Rdf exposing (Dataset)

JsonLd.Canonicalize.canonicalize     : Dataset -> Result String String
JsonLd.Canonicalize.canonicalizeWith : Options -> Dataset -> Result String String

See the module docs for the full API.

Install

elm install elm-cardano/json-ld

Performance

See bench/ for the benchmarking setup and bench/REPORT.md for the history of optimizations.

Development

pnpm install
pnpm test          # run tests
pnpm review        # elm-review
pnpm format:check  # check formatting