https://github.com/besser-pearl/dsl-tot-dm
DSL to facilitate the execution of the ToT framework for domain modeling
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
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
Metadata Files
README.md
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
- Install Python 3.11 and create a virtual environment
- Install the required packages:
sh pip install -r requirements.txt - Create your model, see the how-to section.
- Run the application with your model:
sh python run.py --model ER_3lev.dmtot #Replace by your model name - 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
- Repositories: 1
- Profile: https://github.com/BESSER-PEARL
GitHub Events
Total
- Watch event: 3
- Push event: 6
- Fork event: 1
Last Year
- Watch event: 3
- Push event: 6
- Fork event: 1
Dependencies
- 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