[{"name":"Rdf.Wire.Decode","comment":" `Json.Decode.Decoder`s for every wire-format type in\n[`Rdf.Wire.Types`](Rdf-Wire-Types).\n\nTypical usage in an elm-pages app:\n\n    port receiveJSONdataModelV2 : (Json.Decode.Value -> msg) -> Sub msg\n\n    subscriptions : Sub Msg\n    subscriptions =\n        receiveJSONdataModelV2 <|\n            \\value ->\n                case Json.Decode.decodeValue Rdf.Wire.Decode.jsonDataModel value of\n                    Ok payload ->\n                        GotDataModel payload\n\n                    Err err ->\n                        DataModelDecodeFailed (Json.Decode.errorToString err)\n\n@docs jsonRdfTermTypeAndValue\n@docs jsonRdfObject\n@docs jsonRdfQuad\n@docs jsonDataModel\n@docs graphTicket\n@docs prefixObject\n\n","unions":[],"aliases":[],"values":[{"name":"graphTicket","comment":" Decoder for `GraphTicket` — sent on `quadStoreUpdated` after a\nTTL parse.\n","type":"Json.Decode.Decoder Rdf.Wire.Types.GraphTicket"},{"name":"jsonDataModel","comment":" Decoder for `JSONdataModel` — a SPARQL query response payload.\n","type":"Json.Decode.Decoder Rdf.Wire.Types.JSONdataModel"},{"name":"jsonRdfObject","comment":" Decoder for `JSONrdfObject` — the wire shape of an RDF object term,\nincluding optional `language` and `datatype` for literals.\n\n`language` decodes from JSON `null` or missing field to `Nothing`;\n`datatype` likewise.\n\n","type":"Json.Decode.Decoder Rdf.Wire.Types.JSONrdfObject"},{"name":"jsonRdfQuad","comment":" Decoder for `JSONrdfQuad`.\n","type":"Json.Decode.Decoder Rdf.Wire.Types.JSONrdfQuad"},{"name":"jsonRdfTermTypeAndValue","comment":" Decoder for `JSONrdfTermTypeAndValue` — the wire shape of a named\nnode, blank node, or default-graph marker.\n","type":"Json.Decode.Decoder Rdf.Wire.Types.JSONrdfTermTypeAndValue"},{"name":"prefixObject","comment":" Decoder for one entry of the TS-side prefix table.\n","type":"Json.Decode.Decoder Rdf.Wire.Types.PrefixObject"}],"binops":[]},{"name":"Rdf.Wire.Encode","comment":" `Json.Encode` constructors for every wire-format type in\n[`Rdf.Wire.Types`](Rdf-Wire-Types). Use these when the Elm side needs\nto construct a wire value to send back to the TypeScript companion via\na port — for example, to ship a list of `JSONrdfQuad`s to `writeQuads`\nor `shaclValidateWithQuads`.\n\n@docs jsonRdfTermTypeAndValue\n@docs jsonRdfObject\n@docs jsonRdfQuad\n@docs jsonDataModel\n@docs graphTicket\n@docs prefixObject\n\n","unions":[],"aliases":[],"values":[{"name":"graphTicket","comment":" Encode a `GraphTicket`.\n","type":"Rdf.Wire.Types.GraphTicket -> Json.Encode.Value"},{"name":"jsonDataModel","comment":" Encode a `JSONdataModel`.\n","type":"Rdf.Wire.Types.JSONdataModel -> Json.Encode.Value"},{"name":"jsonRdfObject","comment":" Encode a `JSONrdfObject`. `language` and `datatype` are emitted as\nJSON `null` when `Nothing`.\n","type":"Rdf.Wire.Types.JSONrdfObject -> Json.Encode.Value"},{"name":"jsonRdfQuad","comment":" Encode a `JSONrdfQuad`.\n","type":"Rdf.Wire.Types.JSONrdfQuad -> Json.Encode.Value"},{"name":"jsonRdfTermTypeAndValue","comment":" Encode a `JSONrdfTermTypeAndValue`.\n","type":"Rdf.Wire.Types.JSONrdfTermTypeAndValue -> Json.Encode.Value"},{"name":"prefixObject","comment":" Encode a `PrefixObject`.\n","type":"Rdf.Wire.Types.PrefixObject -> Json.Encode.Value"}],"binops":[]},{"name":"Rdf.Wire.Types","comment":" Type aliases for the JSON wire format produced and consumed by the\n[@ralphtq/elm-rdf-n3-quads](https://github.com/ralphtq/elm-rdf-n3-quads)\nTypeScript companion. Use [`Rdf.Wire.Decode`](Rdf-Wire-Decode) to decode JSON\narriving via an Elm port, and [`Rdf.Wire.Encode`](Rdf-Wire-Encode) to construct\nthe same shapes from Elm to send back through a port.\n\nThis module is intentionally minimal. It defines only the wire-format\ntypes — no higher-level `Quad` or `RDFterm` abstraction. Apps that want\nthose build them on top, or wait for a future `ralphtq/elm-rdf` package.\n\n\n# String aliases\n\n@docs IRI, Prefix, BaseURI, GraphId, TermId\n\n\n# Wire shapes\n\n@docs JSONrdfTermTypeAndValue\n@docs JSONrdfObject\n@docs JSONrdfQuad\n@docs JSONdataModel\n@docs GraphTicket\n@docs PrefixObject\n\n","unions":[],"aliases":[{"name":"BaseURI","comment":" The base IRI of a named graph.\n","args":[],"type":"String.String"},{"name":"GraphId","comment":" Graph identifier — the IRI of a named graph in the quad store.\n","args":[],"type":"String.String"},{"name":"GraphTicket","comment":" Sent by the TS side after a TTL parse completes. Tells the Elm side\nwhich graph just landed, how many quads were added, and what\n`owl:imports` IRIs the graph declared.\n","args":[],"type":"{ baseURI : Rdf.Wire.Types.BaseURI, numberOfQuads : Basics.Int, imports : List.List Rdf.Wire.Types.GraphId }"},{"name":"IRI","comment":" Any IRI string (e.g. `\"http://qudt.org/schema/qudt/Unit\"`).\n","args":[],"type":"String.String"},{"name":"JSONdataModel","comment":" The payload of a SPARQL query response or schema-resources query.\nCarries the base URI of the focus graph, the result quads, and the\nprefix table the TS side knows about.\n","args":[],"type":"{ baseURI : Rdf.Wire.Types.BaseURI, quads : List.List Rdf.Wire.Types.JSONrdfQuad, prefixes : List.List Rdf.Wire.Types.PrefixObject }"},{"name":"JSONrdfObject","comment":" The wire shape of an RDF object term. Adds `language` and `datatype`\nfields for literals. Mirrors the TypeScript `termToObject` output.\n","args":[],"type":"{ termType : String.String, value : String.String, language : Maybe.Maybe String.String, datatype : Maybe.Maybe Rdf.Wire.Types.JSONrdfTermTypeAndValue, id : String.String }"},{"name":"JSONrdfQuad","comment":" The wire shape of a complete RDF quad.\n","args":[],"type":"{ subject : Rdf.Wire.Types.JSONrdfTermTypeAndValue, predicate : Rdf.Wire.Types.JSONrdfTermTypeAndValue, object : Rdf.Wire.Types.JSONrdfObject, graph : Rdf.Wire.Types.JSONrdfTermTypeAndValue }"},{"name":"JSONrdfTermTypeAndValue","comment":" The wire shape of an RDF term that is either a named node, blank\nnode, or default-graph marker. Mirrors the TypeScript\n`termToTypeAndValue` output:\n\n    { termType = \"NamedNode\" | \"BlankNode\" | \"\"\n    , value = \"http://example.org/Alice\"\n    , id = \"http://example.org/Alice\"\n    }\n\nFor the default graph, the TS side sends `{ termType = \"NamedNode\", value = \"\", id = \"\" }`.\n\n","args":[],"type":"{ termType : String.String, value : String.String, id : String.String }"},{"name":"Prefix","comment":" A CURIE prefix label (e.g. `\"qudt\"`).\n","args":[],"type":"String.String"},{"name":"PrefixObject","comment":" One entry in the TS-side prefix table.\n","args":[],"type":"{ prefix : Rdf.Wire.Types.Prefix, iri : Rdf.Wire.Types.IRI }"},{"name":"TermId","comment":" An RDF resource identifier — IRI or blank node id, depending on context.\n","args":[],"type":"String.String"}],"values":[],"binops":[]}]