This is an automated email from the ASF dual-hosted git repository.

jin pushed a commit to branch text2gql
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph-ai.git

commit 5aa54f930781e3064e5467144a93535e37563565
Author: Lriver <[email protected]>
AuthorDate: Tue Sep 30 21:13:31 2025 +0800

    docs: add project README with quick start guide and usage instructions
---
 text2gremlin/AST_Text2Gremlin/README.md | 302 ++++++++++++++++++++++++++++++++
 1 file changed, 302 insertions(+)

diff --git a/text2gremlin/AST_Text2Gremlin/README.md 
b/text2gremlin/AST_Text2Gremlin/README.md
new file mode 100644
index 00000000..5218bcb4
--- /dev/null
+++ b/text2gremlin/AST_Text2Gremlin/README.md
@@ -0,0 +1,302 @@
+# Gremlin语料库生成系统 (base_v2)
+
+## 📖 项目背景
+
+本项目是一个基于ANTLR的Gremlin查询语料库生成系统,专为Text-to-Gremlin任务提供高质量的训练数据。系统能够从少量的Gremlin查询模板出发,通过智能泛化和随机增强技术,生成大量语法正确、语义丰富的Gremlin查询及其对应的中文自然语言描述。
+
+### 🎯 核心价值
+
+- **数据稀缺问题解决**: 解决Text-to-Gremlin任务中训练数据不足的问题
+- **高质量语料生成**: 生成语法正确、语义准确的查询-描述对
+- **智能泛化能力**: 从少量模板生成大量多样化的查询变体
+- **中文本土化**: 提供准确的中文自然语言描述
+
+## 🔧 核心原理
+
+### 1. Gremlin泛化原理
+
+系统采用**基于Schema的智能泛化**策略:
+
+```
+模板查询 → ANTLR解析 → 结构化Recipe → Schema引导泛化 → 多样化查询
+```
+
+**泛化维度:**
+- **实体泛化**: `person` → `movie`, `user`, `genre`等
+- **属性泛化**: `name` → `title`, `born`, `duration`等  
+- **关系泛化**: `acted_in` → `directed`, `produce`, `rate`等
+- **数据泛化**: 从CSV文件中获取真实数据值进行替换
+
+### 2. 翻译原理
+
+采用**多层次翻译机制**:
+
+```
+英文术语 → Schema字典查询 → 中文术语 → 模板格式化 → 自然语言描述
+```
+
+**翻译层次:**
+- **Schema术语翻译**: `movie`→`电影`, `title`→`标题`
+- **操作步骤翻译**: `.out()`→`沿着...的出边`, `.has()`→`其...属性为`
+- **上下文感知**: 根据查询上下文选择合适的翻译
+
+### 3. 随机增强原理
+
+基于**查询状态感知的随机增强**:
+
+```
+查询状态判断 → 增强类型选择 → 概率触发 → 语义保持增强
+```
+
+**增强策略:**
+- **元素流增强**: `limit()`, `sample()`, `range()`, `dedup()`, `order()`
+- **值流增强**: 针对`.values()`后的数据流进行优化增强
+- **智能避免**: 自动识别终止步骤,避免无效增强
+
+## 📁 项目结构
+
+```
+base/
+├── README.md                 # 项目说明文档
+├── generator.py              # 🚀 主入口脚本
+├── Config.py                 # 配置管理模块
+├── Schema.py                 # 📊 Schema和数据管理
+├── GremlinBase.py           # 🌐 翻译引擎
+├── GremlinParse.py          # 📝 数据结构定义
+├── TraversalGenerator.py    # ⚡ 核心生成引擎
+├── GremlinTransVisitor.py   # 🔄 AST访问器
+├── template/                # 📚 翻译字典
+│   ├── schema_dict.txt      # Schema术语翻译
+│   └── syn_dict.txt         # 同义词字典
+└── gremlin/                 # 🔧 ANTLR生成的解析器
+    ├── GremlinLexer.py
+    ├── GremlinParser.py
+    └── ...
+```
+```
+AST_Text2Gremlin/                   # 项目根目录
+├── base/                           # 核心系统目录
+│   ├── generator.py                # 主生成器入口
+│   ├── GremlinTransVisitor.py      # ANTLR语法树访问器
+│   ├── TraversalGenerator.py       # 递归回溯生成器
+│   ├── Schema.py                   # 图数据库Schema管理
+│   ├── GremlinBase.py              # 基础组件库
+│   ├── Config.py                   # 配置管理
+│   ├── cypher2gremlin_dataset.csv  # 3514条真实查询数据集
+│   └── test/                       # 测试套件
+├── config.json                     # 全局配置文件
+├── db_data/                        # Schema和数据文件
+└── README.md                       # 详细技术文档
+
+这样就把所有文件都包含在 AST_Text2Gremlin 项目目录下了。
+```
+## 🧩 核心模块详解
+
+### 🚀 generator.py - 主入口脚本
+**作用**: 系统的主要入口点,协调整个生成流程
+**核心功能**:
+- 模板批处理和全局去重
+- 语法检查和质量保证
+- 统计分析和结果展示
+- 支持函数化调用接口
+
+**使用方式**:
+```python
+# 直接运行
+python generator.py
+
+# 函数调用
+from generator import generate_corpus_from_templates
+result = generate_corpus_from_templates(templates)
+```
+
+### 📊 Schema.py - Schema和数据管理
+**作用**: 管理图数据库的Schema信息和实例数据
+**核心功能**:
+- 加载和解析JSON格式的Schema定义
+- 从CSV文件中读取真实数据实例
+- 提供Schema查询接口(标签、属性、关系等)
+- 支持多实例数据获取,增加泛化多样性
+
+**关键方法**:
+```python
+schema.get_vertex_labels()           # 获取所有顶点标签
+schema.get_properties_with_type()    # 获取属性及类型信息
+schema.get_instances()               # 获取多个数据实例
+schema.get_valid_steps()             # 获取有效的遍历步骤
+```
+
+### ⚡ TraversalGenerator.py - 核心生成引擎
+**作用**: 系统的核心,负责从Recipe生成大量查询变体
+**核心功能**:
+- 递归深度优先搜索生成所有可能的查询路径
+- 基于Schema的智能泛化(实体、属性、关系、数据)
+- 随机增强功能(20%末端 + 10%中间概率触发)
+- 中间结果保存,生成不同复杂度的查询
+
+**生成策略**:
+```python
+# 泛化维度
+- 标签泛化: person → movie, user, genre
+- 属性泛化: name → title, born, duration  
+- 关系泛化: acted_in → directed, produce
+- 数据泛化: 真实CSV数据替换
+
+# 随机增强
+- 元素流: limit(), sample(), range(), dedup(), order()
+- 值流: 针对values()优化的增强
+- 智能判断: 避免在终止步骤后增强
+```
+
+### 🔄 GremlinTransVisitor.py - AST访问器
+**作用**: 将ANTLR解析的AST转换为结构化的Recipe对象
+**核心功能**:
+- 实现ANTLR Visitor模式
+- 处理各种Gremlin语法结构
+- 提取查询的核心步骤和参数
+- 生成可用于泛化的Recipe
+
+**支持的语法**:
+- 遍历步骤: `.V()`, `.out()`, `.in()`, `.both()`
+- 过滤步骤: `.has()`, `.hasLabel()`, `.limit()`
+- 修改步骤: `.addV()`, `.property()`, `.drop()`
+- 复杂结构: 嵌套遍历、谓词表达式等
+
+### 🌐 GremlinBase.py - 翻译引擎
+**作用**: 提供Gremlin术语到中文的智能翻译
+**核心功能**:
+- 加载Schema翻译字典和同义词字典
+- 提供上下文感知的术语翻译
+- 支持随机同义词选择,增加描述多样性
+- 格式化生成自然流畅的中文描述
+
+**翻译机制**:
+```python
+# 术语翻译
+movie → 电影
+title → 标题  
+acted_in → 参演
+
+# 操作翻译
+.out('acted_in') → "沿着'参演'的出边"
+.has('title', 'Matrix') → "其'标题'属性为'Matrix'"
+.limit(10) → "并只取前10个结果"
+```
+
+### 📝 其他支持模块
+
+**Config.py**: 配置文件管理,支持JSON格式配置
+**GremlinParse.py**: 定义Step和Traversal数据结构
+**template/**: 翻译字典文件,支持Schema术语和同义词翻译
+
+## 🎯 使用示例
+
+### 基本使用
+```python
+# 定义模板
+templates = [
+    "g.V().has('name', 'John')",
+    "g.V().hasLabel('movie').out('acted_in')", 
+    "g.addV('person').property('name', 'Test')",
+    "g.V().has('title', 'Matrix').drop()"
+]
+
+# 生成语料库
+from generator import generate_corpus_from_templates
+result = generate_corpus_from_templates(templates)
+
+print(f"生成了 {result['total_unique_queries']} 个独特查询")
+```
+
+### 生成结果示例
+```json
+{
+  "query": "g.V().hasLabel('person').out('acted_in').limit(10)",
+  "description": "从图中开始查找所有顶点,过滤出'人'类型的顶点,然后沿着'参演'的出边找到'电影'顶点,并只取前10个结果"
+}
+```
+
+## 📈 系统特性
+
+### 🔥 高质量保证
+- **语法检查**: 使用ANTLR确保100%语法正确
+- **去重机制**: 全局去重避免重复查询
+- **类型安全**: 基于Schema的类型检查
+
+### ⚡ 高效生成
+- **智能泛化**: 从32个模板生成940+独特查询
+- **批量处理**: 支持大规模模板批处理
+- **增量生成**: 支持增量添加新模板
+
+### 🌟 丰富多样性
+- **操作类型均衡**: 查询62.6% + 更新28.3% + 创建6.6% + 删除2.6%
+- **复杂度分布**: 1-8步查询全覆盖
+- **随机增强**: 20%末端 + 10%中间增强概率
+
+### 🌐 本土化支持
+- **中文翻译**: 准确的Schema术语翻译
+- **自然描述**: 符合中文表达习惯的自然语言
+- **可扩展字典**: 支持自定义翻译字典
+
+## 🚀 快速开始
+
+### 1. 环境准备
+```bash
+# 确保Python环境和依赖
+pip install antlr4-python3-runtime
+```
+
+### 2. 运行生成
+```bash
+cd base_v2
+python generator.py
+```
+
+### 3. 查看结果
+生成的语料库保存在 `generated_corpus.json` 文件中,包含:
+- 元数据信息(模板数量、查询数量等)
+- 查询-描述对列表
+- 完整的JSON格式,便于后续处理
+
+## 🔧 自定义配置
+
+### 添加新的Schema术语翻译
+编辑 `template/schema_dict.txt`:
+```
+new_entity 新实体
+new_property 新属性
+new_relation 新关系
+```
+
+### 调整随机增强概率
+修改 `TraversalGenerator.py` 中的概率参数:
+```python
+if random.random() < 0.2:  # 末端增强概率
+if random.random() < 0.1:  # 中间增强概率
+```
+
+### 扩展支持的Gremlin语法
+在 `GremlinTransVisitor.py` 中添加新的visit方法。
+
+## 📊 性能指标
+
+- **生成效率**: 32个模板 → 940个查询 (29.4倍放大)
+- **语法正确率**: 100% (经ANTLR验证)
+- **翻译准确率**: 基于人工标注的Schema字典
+- **多样性指标**: 8种复杂度级别,4种操作类型均衡分布
+
+## 🤝 贡献指南
+
+欢迎贡献代码和改进建议!主要贡献方向:
+- 扩展Gremlin语法支持
+- 改进翻译质量和多样性
+- 优化生成算法效率
+- 添加新的随机增强策略
+
+## 📄 许可证
+
+本项目采用开源许可证,详见LICENSE文件。
+
+---
+
+**项目维护**: 本项目专注于为Text-to-Gremlin任务提供高质量的训练数据,持续改进和优化中。
\ No newline at end of file

Reply via email to