{"id":25242978,"url":"https://github.com/danielgall500/mg-graph","last_synced_at":"2026-05-02T06:41:15.531Z","repository":{"id":261122501,"uuid":"883335489","full_name":"DanielGall500/MG-Graph","owner":"DanielGall500","description":"Web Application for Optimising Grammars and Comparing Grammar Sizes.","archived":false,"fork":false,"pushed_at":"2025-04-01T13:09:57.000Z","size":7094,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-01T14:25:09.066Z","etag":null,"topics":["cypher","neo4j","webapp"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DanielGall500.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-04T19:33:10.000Z","updated_at":"2025-02-23T11:41:15.000Z","dependencies_parsed_at":"2025-02-18T22:24:45.462Z","dependency_job_id":"8687976a-1a3e-40ab-bbf5-b7dbede50427","html_url":"https://github.com/DanielGall500/MG-Graph","commit_stats":null,"previous_names":["danielgall500/mg-size-calculator","danielgall500/mg-graph"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielGall500%2FMG-Graph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielGall500%2FMG-Graph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielGall500%2FMG-Graph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielGall500%2FMG-Graph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DanielGall500","download_url":"https://codeload.github.com/DanielGall500/MG-Graph/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399898,"owners_count":20932876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cypher","neo4j","webapp"],"created_at":"2025-02-12T00:38:46.660Z","updated_at":"2026-05-02T06:41:15.525Z","avatar_url":"https://github.com/DanielGall500.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 --\u003e\n\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\u003c!--\n*** Thanks for checking out the Best-README-Template. If you have a suggestion\n*** that would make this better, please fork the repo and create a pull request\n*** or simply open an issue with the tag \"enhancement\".\n*** Don't forget to give the project a star!\n*** Thanks again! Now go create something AMAZING! :D\n--\u003e\n\n\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** I'm using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables\n*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n--\u003e\n[![Rust][Rust]][Rust-url]\n[![TypeScript][TypeScript]][Typescript-url]\n[![Vue.js][Vue.js]][Vue-url]\n[![Tauri][Tauri]][Tauri-url]\n[![Neo4J][Neo4J]][Neo4J-url]\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"misc/MG-Graph-logo.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n\n  \u003ch3 align=\"center\"\u003eMG-Graph Desktop\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    An open-source cross-platform application for the exploration and analysis of Minimalist Grammars (MGs)\n    \u003cbr /\u003e\n    \u003c!-- \u003ca href=\"https://github.com/othneildrew/Best-README-Template\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e --\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"\"\u003eView Demo\u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://github.com/DanielGall500/MG-Graph/issues/new?labels=bug\u0026template=bug-report---.md\"\u003eReport Bug\u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://github.com/DanielGall500/MG-Graph/issues/new?labels=enhancement\u0026template=feature-request---.md\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\nMG-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.\n\nOne 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.\nMGs can additionally be created and saved locally so that you can have them all in one place.\n\nIn 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.\n\n\u003cimg src=\"misc/structure.png\" alt=\"Logo\" width=\"700\" height=\"500\"\u003e\n\n## Use Cases\n* Providing a unified, **interactive interface** for working with MGs.\n* Using **description length minimisation** as a metric for theoretical optimality and generalisation.\n* Enabling structured storage, querying, and analysis of MGs via **graph-based representations**.\n\n## 🧰 Features\n* **Graph-based MG modelling and storage** using Neo4j\n* **Grammar size calculation** using information-theoretic metrics\n* **Shortest path exploration** through feature graphs\n* **Human-in-the-loop lexical decomposition**\n* **Multigraph visualisations** of syntactic structure\n* **Cross-platform** support via Tauri (Windows, macOS, Linux)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Built With\nThis project aimed to model MGs using a graph database given how they naturally lend themselves to this type of representation.\nAn Actix backend API was implemented with Rust which communicates with the Vue.js / Tauri frontend.\n* [![Rust][Rust]][Rust-url]\n* [![TypeScript][TypeScript]][TypeScript-url]\n* [![Vue.js][Vue.js]][Vue-url]\n* [![Tauri][Tauri]][Tauri-url]\n* [![Neo4J][Neo4J]][Neo4J-url]\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf 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\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 🧱 System Requirements\n\n* **Neo4j Community Edition** (required to store and query grammars)\n\n  * Download: [https://neo4j.com/download/](https://neo4j.com/download/)\n* **Rust** (for backend execution)\n* **Node.js** (for frontend UI)\n\nYou must provide your Neo4J graph database settings in the Settings menu within the application.\n```\n  Address: bolt://localhost:7687,\n  Database Name: neo4j,\n  Username: neo4j,\n  Password: your_password\n```\n\n---\n\n## 🚀 Installation \u0026 Setup\n\n1. **Install Neo4j Community Edition**\n\n   * Launch Neo4j and create a new database.\n   * Take note of your *host*, *port*, *username*, and *password*.\n\n2. **Clone and build the MG Insight Toolkit**\n\n   ```bash\n   git clone https://github.com/DanielGall500/MG-Graph.git\n   cd MG-Graph\n   ```\n\n4. **Start the frontend (Tauri \u0026 Vue.js)**\n\n   ```bash\n   cargo tauri dev\n   ```\n\n5. **Configure database access** in the app settings:\n\n   * Input your Neo4j connection credentials and test the connection.\n\n---\n\n## 📊 Example Use Cases\n\n* Compare competing theoretical analyses for a syntactic phenomenon\n* Visualise derivational structure and movement paths\n* Estimate the complexity of a grammar via size metrics\n* Explore lexical item reuse and over-/under-generation patterns\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[issues-shield]: https://img.shields.io/github/issues/othneildrew/Best-README-Template.svg?style=for-the-badge\n[issues-url]: https://github.com/othneildrew/Best-README-Template/issues\n[license-shield]: https://img.shields.io/github/license/othneildrew/Best-README-Template.svg?style=for-the-badge\n[license-url]: https://github.com/othneildrew/Best-README-Template/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://www.linkedin.com/in/daniel-gallagher-a520161a3/\n[product-screenshot]: images/screenshot.png\n\n[Vue.js]: https://img.shields.io/badge/-Vue.js-4fc08d?style=flat\u0026logo=vuedotjs\u0026logoColor=white\n[Vue-url]: https://vuejs.org/\n\n[Rust]: https://img.shields.io/badge/Rust-000000?logo=rust\u0026logoColor=white\n[Rust-url]: https://www.rust-lang.org/\n\n[Tauri]: https://img.shields.io/badge/Tauri-24C8D8?logo=tauri\u0026logoColor=fff\n[Tauri-url]: https://v2.tauri.app\n\n[TypeScript]: https://shields.io/badge/TypeScript-3178C6?logo=TypeScript\u0026logoColor=FFF\u0026style=flat-square\n[TypeScript-url]: https://www.typescriptlang.org/\n\n[Neo4J]: https://img.shields.io/badge/Neo4j-008CC1?logo=neo4j\u0026logoColor=white\n[Neo4J-url]: [https://laravel.com](https://neo4j.com/)\n\n---\n\nFor questions or academic collaboration inquiries, please contact the maintainer via the GitHub repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielgall500%2Fmg-graph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielgall500%2Fmg-graph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielgall500%2Fmg-graph/lists"}