https://github.com/besser-pearl/dsl-tot-dm

DSL to facilitate the execution of the ToT framework for domain modeling

https://github.com/besser-pearl/dsl-tot-dm

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

DSL to facilitate the execution of the ToT framework for domain modeling

Basic Info
  • Host: GitHub
  • Owner: BESSER-PEARL
  • Language: Python
  • Default Branch: main
  • Size: 718 KB
Statistics
  • Stars: 4
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created about 2 years ago · Last pushed 10 months ago
Metadata Files
Readme

README.md

<!-- ABOUT THE PROJECT -->

Application of ToT to LLM-enabled DM

We propose a DSL to facilitate the configuration and automate the execution of the ToT framework based on the task decomposition required for a modeling process. The modeling process is divided by tasks, as shown in the following example: python task: level: 1 name: "Classes" description: "A class represents objects that share a common structure and behavior." assessments: "Classes are retrieved from nouns in the domain description." "The principal concepts of the domain are represented in classes." task: level: 2 name: "Association" description: "Associate is used when a class is related to another." assessments: "Associations and cardinalities are included in the model."

Setup

Prerequisites

Request OpenAI or Azure keys to have access to the LLM API. Instructions are in the following links:

Create the .env file with the variables indicated in this file:

Run the project

  1. Install Python 3.11 and create a virtual environment
  2. Install the required packages: sh pip install -r requirements.txt
  3. Create your model, see the how-to section.
  4. Run the application with your model: sh python run.py --model ER_3lev.dmtot #Replace by your model name
  5. A log will capture all the thoughts created by the LLM for the task decomposition configured.

How to create a new model for the DSL

The DSL is created with TextX, and the concrete syntax follows a grammar with a structured format where a Model is composed of a Tree, a Problem, multiple Tasks, and a Notation.

Examples of Entity Relationships diagram, UML class diagram, UML activity diagram, and BPMN workflow diagram are located here.

Paper Experiments

The results of the experiments include the reference models and the output from the experiments. To run the experiments, use the input data with the domain descriptions and models. Then execute the experiment: sh python run.py --model exercise2_asocclass_5lev.dmtot

Owner

  • Name: BESSER-PEARL
  • Login: BESSER-PEARL
  • Kind: organization
  • Email: jordi.cabot@list.lu
  • Location: Luxembourg

GitHub Events

Total
  • Watch event: 3
  • Push event: 6
  • Fork event: 1
Last Year
  • Watch event: 3
  • Push event: 6
  • Fork event: 1

Dependencies

requirements.txt pypi
  • Jinja2 ==3.1.4
  • backoff ==2.2.1
  • numpy ==1.24.3
  • openai ==1.30.5
  • python-dotenv ==1.0.1
  • textX ==4.0.1
  • tree-of-thoughts-llm ==0.1.0