An open-source cross-platform application for the exploration and analysis of Minimalist Grammars (MGs)
View Demo
·
Report Bug
·
Request Feature
MG-Graph is a cross-platform application designed for researchers in theoretical linguistics. It allows you to model, visualise, and analyse Minimalist Grammars in a graph-based format. The ultimate goal of the application is to make the comparison of different theories of natural language syntax easier, allowing you to quantitatively compare the Description Length metric of grammars as well as the potential derivations that are possible with a given grammar.
One of the core components of the application is an interface with a Neo4J Graph Database which allows for visualisation of grammars as a graph. Various operations can be performed on the graph in order to make generalisations about your grammar. MGs can additionally be created and saved locally so that you can have them all in one place.
In order to use this application you must download Neo4J Desktop, available also as a free Community Edition. From there you can run a graph database and provide the application with your Neo4J settings in the settings tab. More information is provided below.
- Providing a unified, interactive interface for working with MGs.
- Using description length minimisation as a metric for theoretical optimality and generalisation.
- Enabling structured storage, querying, and analysis of MGs via graph-based representations.
- Graph-based MG modelling and storage using Neo4j
- Grammar size calculation using information-theoretic metrics
- Shortest path exploration through feature graphs
- Human-in-the-loop lexical decomposition
- Multigraph visualisations of syntactic structure
- Cross-platform support via Tauri (Windows, macOS, Linux)
This project aimed to model MGs using a graph database given how they naturally lend themselves to this type of representation. An Actix backend API was implemented with Rust which communicates with the Vue.js / Tauri frontend.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
-
Neo4j Community Edition (required to store and query grammars)
- Download: https://neo4j.com/download/
-
Rust (for backend execution)
-
Node.js (for frontend UI)
You must provide your Neo4J graph database settings in the Settings menu within the application.
Address: bolt://localhost:7687,
Database Name: neo4j,
Username: neo4j,
Password: your_password
-
Install Neo4j Community Edition
- Launch Neo4j and create a new database.
- Take note of your host, port, username, and password.
-
Clone and build the MG Insight Toolkit
git clone https://github.com/DanielGall500/MG-Graph.git cd MG-Graph -
Start the frontend (Tauri & Vue.js)
cargo tauri dev
-
Configure database access in the app settings:
- Input your Neo4j connection credentials and test the connection.
- Compare competing theoretical analyses for a syntactic phenomenon
- Visualise derivational structure and movement paths
- Estimate the complexity of a grammar via size metrics
- Explore lexical item reuse and over-/under-generation patterns
For questions or academic collaboration inquiries, please contact the maintainer via the GitHub repository.
