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 的发展,还可能出现 num3num4 等;unit/softwareformat分别表示信息的单位/软件和格式。这种设计通过将分类逻辑融入编号,既能直观体现信息的层级归属,又能确保每条信息的唯一性,从而有效提升信息识别和管理的效率。以下是某个 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平台在计算化学、材料模拟等领域的智能化协同研究发展,显著提升科研效率。