# `JSON.LD.Context`
[🔗](https://github.com/rdf-elixir/jsonld-ex/blob/v1.0.1/lib/json/ld/context.ex#L1)

Implementation of the JSON-LD 1.1 _Context Processing Algorithm_.

<https://www.w3.org/TR/json-ld11-api/#context-processing-algorithms>

# `local`

```elixir
@type local() :: map() | String.t() | nil
```

# `remote`

```elixir
@type remote() :: [map()]
```

# `t`

```elixir
@type t() :: %JSON.LD.Context{
  api_base_iri: String.t() | nil,
  base_direction: String.t() | nil,
  base_iri: String.t() | nil | :not_present,
  default_language: String.t() | nil,
  inverse_context: map() | nil,
  original_base_url: String.t() | nil,
  previous_context: t() | nil,
  term_defs: map(),
  vocabulary_mapping: String.t() | nil
}
```

# `base`

```elixir
@spec base(t()) :: String.t() | nil
```

# `create`

```elixir
@spec create(map(), JSON.LD.Options.convertible()) :: t()
```

# `empty?`

```elixir
@spec empty?(t()) :: boolean()
```

# `inverse`

```elixir
@spec inverse(t()) :: map()
```

Inverse Context Creation algorithm

See <https://www.w3.org/TR/json-ld11-api/#inverse-context-creation>

# `language`

```elixir
@spec language(t(), String.t()) :: String.t() | nil
```

# `new`

```elixir
@spec new(JSON.LD.Options.convertible()) :: t()
```

# `set_inverse`

```elixir
@spec set_inverse(t()) :: t()
```

# `update`

```elixir
@spec update(t(), [local()] | local(), JSON.LD.Options.convertible()) :: t()
```

# `update`

```elixir
@spec update(t(), [local()] | local(), keyword(), JSON.LD.Options.convertible()) ::
  t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
