Practical overview
When it fits
Use it when you need a codebase for FrameNet-based sentence annotation and can work with the documented Python, DyNet, NLTK, FrameNet and GloVe requirements.
Who it is for
- NLP researchers experimenting with frame-semantic parsing and recurrent neural network models.
- Developers preparing FrameNet sentence data for semantic annotation.
Documented uses
- Identify FrameNet targets and frames in sentences.
- Label the frame elements associated with identified frames.
- Preprocess FrameNet XML and run staged parsing workflows that produce structured prediction files.
Requirements & limits
The project is distributed as a public GitHub repository under the Apache-2.0 license.
- The parser expects FrameNet XML and documents FrameNet versions 1.5, 1.6 and 1.7, with 1.7 as the default.
- The documented setup uses Python 3.7.9, DyNet 2.0.3 and NLTK 3.5, as well as specific NLTK data resources.
- Preprocessing relies on 100-dimensional GloVe embeddings trained on six billion tokens.
- Testing is a three-stage workflow: target identification, frame identification and argument identification, in that order.
- The repository notes that pretrained models may not reproduce reported performance on another machine.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Prepare FrameNet data for preprocessing
Set up the documented FrameNet and embedding inputs and convert the FrameNet data into the project’s required format.
Before you start
- Python 3.7.9
- DyNet 2.0.3 and NLTK 3.5, plus the averaged perceptron tagger and WordNet resources
- Extracted FrameNet data in XML format, defaulting to version 1.7; versions 1.6 and 1.5 are also supported
- 100-dimensional GloVe embeddings trained on six billion tokens
Steps
Clone the repository and change into its directory.
Place extracted FrameNet 1.7 data under
$DATA/fndata-1.7/and the extracted GloVe embeddings under$DATA/embeddings_glove/.If using a different FrameNet version or embeddings, adjust
configurations/global_config.jsonas needed.Run the command below.
python -m sesame.preprocess
Expected outcome
Preprocessed train, development and test files are written to `data/neural/fn1.7/`.
Guide limitations
- The codebase accepts FrameNet XML; preprocessing discards incomplete or inconsistent annotations and logs them in
preprocess-fn1.7.log. - The steps cover data preparation only, not training or running the parser.
Run the documented frame-semantic test stages
Use the project’s test workflow with model files for target, frame and argument identification.
Before you start
- Prepared data and model files in the repository’s expected locations
- Python 3.7.9 with the documented DyNet and NLTK dependencies
Steps
Run the target-identification model with the command below.
python -m sesame.targetid --mode test --model_name $MODEL_NAMERun frame identification with the command below.
python -m sesame.frameid --mode test --model_name $MODEL_NAMERun argument identification with the command below.
python -m sesame.argid --mode test --model_name $MODEL_NAME
Expected outcome
The README specifies predictions under `logs/$MODEL_NAME/`; outputs are in a CoNLL 2009-like format and frame-elements format for frame and argument identification.
Guide limitations
- The target, frame and argument stages must be executed in order; this workflow assumes their required models and inputs are already in place.
- The README reports that pretrained models may not reproduce published performance on a different machine and recommends training and testing from scratch for closer reproduction.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 17 October 2026
- Original website title
- swabhs/open-sesame · Official homepage title · retained in its source language

