Current section
Files
Jump to
Current section
Files
framex_tools
README.md
README.md
# 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.1"}
]
end
```
## Choose a corpus source
The core `framex` package already includes a small demo corpus. Install
FramexTools when the application needs to fetch either the focused profile
artifact or the complete FrameNet release through Mix.
FramexTools has two corpus modes. Use a named profile when the application
needs a reproducible, focused corpus definition:
```bash
mix framex.tools.fetch --corpus_profile demo_en_17
```
`--corpus_profile NAME` selects the profile JSON bundled with FramexTools. The
profile records the FrameNet release, selected frames, lexical-unit IDs,
example limits, and the release checksum. The current fetch task verifies that
release and places its source data under the consumer project's
`priv/corpora`; profile-based artifact reduction is the next builder step.
Use the full-source mode when working with the complete release rather than a
named selection:
```bash
mix framex.tools.fetch --corpus_full
```
`--corpus_full` is the explicit full-release mode. It downloads and verifies
the complete FrameNet release without applying a profile selection. The two
switches are mutually exclusive.
The user-facing facade in a consumer project is also available as:
```bash
mix framex.corpus.fetch --full
mix framex.corpus.fetch --corpus_full
```
Both full-corpus switches are equivalent. `--corpus_profile NAME` selects the
small profile artifact.
The default destination is the consumer Mix project's `priv/corpora`.
Set `FRAMEX_CORPORA_DIR` when a different corpus root is needed.
After fetching, the source corpus is available at:
```text
priv/corpora/framenet-1.7-streamed
```
The profile definition remains bundled under the dependency's `priv/profiles`;
the downloaded source data belongs to the consumer project's `priv` tree.
## 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.