# FramexTools

Maintained by Erdal Turan.

`FramexTools` manages named corpus profiles for [Framex](https://hex.pm/packages/framex).
A profile selects frames, lexical units, exemplar limits, semantic-type closure,
and the frame relations needed to make a small, reproducible artifact.

FramexTools is an optional companion to the read-only `framex` query package.
It does not embed the full FrameNet corpus in Hex.

## Install

```elixir
def deps do
  [
    {:framex_tools, "~> 0.1"}
  ]
end
```

## Install the full corpus once

Download `framex-en-1.7.tar.gz` from the [Framex Corpora v1.7.0
release](https://github.com/collective-mind/framex-corpora/releases/tag/v1.7.0),
verify the SHA-256 in that repository's release manifest, then unpack it into
the default corpus directory:

```bash
mkdir -p ~/.framex/corpora
tar -xzf framex-en-1.7.tar.gz -C ~/.framex/corpora
```

Set `FRAMEX_CORPORA_DIR` only when a different corpus root is needed.

## Inspect a profile

```bash
mix framex.tools.profiles --corpus_profile demo_en_17
```

The profile name is the only required selector. `demo_en_17` resolves its
source corpus, bundled profile definition, and output directory automatically.

## Plan a profile expansion

```bash
mix framex.tools.expand --corpus_profile demo_en_17 hope.v
```

The default is a dry run. It reports the selected lexical unit, frame, valence
patterns, semantic-type records, and raw FrameNet relation fields. Add
`--apply` to update the profile selection after reviewing the plan.

```bash
mix framex.tools.expand --corpus_profile demo_en_17 hope.v --apply
```

The full FrameNet source data is licensed separately under CC BY 3.0 Unported;
the FramexTools code is licensed under Apache-2.0.
