5.2 信息编码
为了避免信息存储混淆,我们建立了统一的信息分类目录结构:
MiqroForge/Info_class/
├── help.md # help users quickly view information classification
├── N/
| ├── 1_Structure/
| | ├── 1_Molecular.md # description of the standard of the information
| | └── 2_Crystal.md
| ├── 2_Energy.md
| └── 3_Density.md
└── C/
├── 1_HF&post_HF/
| ├── 1_SCF.md
| ├── 2_mol_data.md
| └── 3_ccsd.t2.md
├── 2_Quantum_Computation/
| ├── 1_Quantum_CirCuit.md
| └── 2_QC_Measuremnent_Result.md
└── 3_Figure.md
在 Info_class/ 的目录中有一个 help.md 文件,帮助用户快速了解所有类别的信息标准。另外包含 N/ 和 C/ 两个子类别文件夹,分别代表信息的一级分类。此外,这些子类别下还进一步细分为多个子目录,用于组织更具体的信息类型。Txt 文件,如 MiqroForge/Info_class/N/2_Energy.txt , 详细描述了每类信息的规范标准,包括格式、单位等内容。这里给出文件 1_Molecular.txt:
Info_id:
N_1_1.A.xyz
N_1_1.A.chk
Primary_Classification Number: N Nature
Secondary_Classification Number: 1 Structure
Tertiary Classification Number: 1 Molecule
Unit: A
File Format: .xyz/.chk
文件给出了信息的 "info_id",其作为信息的标识编号,在 node.json 文件中按照既定格式进行填写: 'N/C_num1_num2.unit/software.format' , 'N/C' 是固定前缀,代表信息所属一级分类;num1/num2 分别表示二/三级分类对应数字,如前所述,随着 MiqroForge 的发展,还可能出现 num3、num4 等;unit/software 和 format分别表示信息的单位/软件和格式。这种设计通过将分类逻辑融入编号,既能直观体现信息的层级归属,又能确保每条信息的唯一性,从而有效提升信息识别和管理的效率。以下是某个 node.json 文件中关于信息部分的示例:
"input":{
"upstream":[
{"name": "structure",
"description": "molecular structure",
"info_id": "N_1_1.A.xyz"},
//...,
],
}
"output":{
"downstream":[
{"name": "scf object",
"description": "Calculation object from pyscf internal structure",
"info_id": "C_1_1.pyscf.chk"},
//...,
],
}
通过对信息进行编码,MiqroForge 建立了标准化的输入(I)/输出(O)信息交换机制,当输入与上流输出的编码一致时,可以保证信息的顺利传递,如果编码匹配出错,比如某节点错误传入 C_1_1 编码去调用 N_1_1 ,系统会抛出 “信息编码不匹配,期望输入编码为 N_1_1 ,实际收到 C_1_1 ,无法完成信息传递” 的提示 。这种标准化设计能够有效消除信息格式不一致造成的流程中断问题,让研究人员将精力集中于算法开发和科学问题探索,从而推动 MiqroForge平台在计算化学、材料模拟等领域的智能化协同研究发展,显著提升科研效率。