iSynth 反应数据规范:完整字段说明

规范版本 1.9.0。本页一次列出全部输入类型、字段说明、取值和示例,无需登录或运行 JavaScript,可直接将本页链接提供给 AI。

如何使用

人工贡献使用简化表格;AI、实验室软件和平台对接使用 Reaction JSON。JSON Schema 约束数据交换和校验,不要求用户手填全部字段,也不等同于数据库表结构。

每次实验生成一条 Reaction → 校验并核对原文 → 上传到私有草稿 → 查看反应预览 → 提交审核。上传时每条记录序列化为 reaction_record 列中的 JSON 字符串,作者、来源与许可在数据集信息中单独填写。

网页提供反应结构、阶段条件和测量结果视图,同时保留原始文件与完整 JSONL 下载。发布且检索准备完成后,可通过 MCP 查询并读取完整记录。

论文提取

JSON Schema(Draft 2020-12)定义字段、类型与嵌套结构;模型输出的是符合它的反应 JSON 数据,不是 Schema 本身。示例按字段说明顺序展示,JSON 对象的键顺序不影响校验;segments 数组顺序表示实验先后。

提供论文正文、补充信息及本页。每次实验输出一个 Reaction;多次实验使用 JSONL,每行一个对象。未报告的可选字段省略,来源不清楚的描述保留为文字。

先核对结构,再校验物料引用、量值与测量归属,最后回查原文。MCP 可先调用 get_reaction_contract(view="extraction"),再调用 validate_reaction_records;校验不保存数据。无法打开链接的模型可直接使用下载规范包中的文件。

填写约定

Reaction

一次实验统一记录物料、起始投料、反应阶段和结果。普通反应填写一个阶段,一锅多步按顺序增加阶段。

对象示例

{
  "schema_version": "1.9.0",
  "reaction_identifier": "EXP-0001",
  "materials": [
    {
      "id": "alcohol",
      "identifiers": [
        {
          "type": "SMILES",
          "value": "CCO"
        }
      ],
      "role": "reactant"
    },
    {
      "id": "reagent",
      "identifiers": [
        {
          "type": "NAME",
          "value": "acetic anhydride"
        }
      ],
      "role": "reagent"
    }
  ],
  "initial_state": {
    "inputs": [
      {
        "material": "alcohol",
        "amount": {
          "value": 0.25,
          "unit": "mmol",
          "raw": "0.25 mmol"
        }
      },
      {
        "material": "reagent"
      }
    ]
  },
  "segments": [
    {
      "conditions": {
        "temperature": {
          "value": 25,
          "unit": "°C",
          "raw": "25 °C"
        }
      }
    }
  ],
  "products": [
    {
      "id": "product",
      "identifiers": [
        {
          "type": "SMILES",
          "value": "CCOC(C)=O"
        }
      ]
    }
  ],
  "measurements": [
    {
      "subject": "product",
      "type": "yield",
      "value": {
        "value": 80,
        "scale": "percent",
        "raw": "80%"
      }
    }
  ],
  "provenance": {
    "reference": "Fictional teaching record; Example A"
  },
  "text": "Fictional format illustration, not a measured result. Unreported amounts, method and calculation bases are omitted."
}

Reaction.schema_version

类型: "1.9.0" · 必填

数据格式版本,保留示例中的 1.9.0。

示例

"1.9.0"

Reaction.reaction_identifier

类型: string · 必填

来源中的实验编号,例如 EXP-0001 或 Table 2, entry 5,用于区分同一来源中的实验。

示例

"EXP-0001"

Reaction.materials

类型: Material[] · 必填

投入物料的定义;产物填写在结果的 products 中。

示例

[
  {
    "id": "alcohol",
    "identifiers": [
      {
        "type": "SMILES",
        "value": "CCO"
      }
    ],
    "role": "reactant"
  },
  {
    "id": "reagent",
    "identifiers": [
      {
        "type": "NAME",
        "value": "acetic anhydride"
      }
    ],
    "role": "reagent"
  }
]

Reaction.initial_state

类型: InitialState · 必填

实验开始时的投料与条件;普通反应也使用此结构。

示例

{
  "inputs": [
    {
      "material": "alcohol",
      "amount": {
        "value": 0.25,
        "unit": "mmol",
        "raw": "0.25 mmol"
      }
    },
    {
      "material": "reagent"
    }
  ]
}

Reaction.segments

类型: Segment[] · 必填

按顺序填写反应阶段。普通反应通常一个阶段;未报告阶段条件或过程时填空数组。

示例

[
  {
    "conditions": {
      "temperature": {
        "value": 25,
        "unit": "°C",
        "raw": "25 °C"
      }
    }
  }
]

Reaction.products

类型: Product[] · 按需填写

实验最终报告的产物。

示例

[
  {
    "id": "product_1",
    "identifiers": [
      {
        "type": "SMILES",
        "value": "C[C@H](O)c1ccccc1"
      }
    ],
    "role": "desired_product",
    "text": "Isolated target product",
    "parameters": {
      "reported_stereochemistry": "(S)"
    }
  }
]

Reaction.measurements

类型: Measurement[] · 按需填写

整体实验的测量结果。每项填写 subject、type 和 value,可同时记录转化率、产率和立体选择性。

示例

[
  {
    "subject": "reactant_1",
    "type": "conversion",
    "value": {
      "value": 90,
      "scale": "percent"
    },
    "text": "Determined by GC."
  }
]

Reaction.workup

类型: string · 按需填写

后处理与纯化的文字描述。

Reaction.provenance

类型: Provenance · 按需填写

文章来源的 DOI 与引用。

示例

{
  "reference": "Fictional teaching record; Example A"
}

Reaction.text

类型: string · 按需填写

整个实验的其他补充说明。

示例

"Fictional format illustration, not a measured result. Unreported amounts, method and calculation bases are omitted."

Reaction.parameters

类型: object · 按需填写

补充实验属性,如 run_id。反应条件填写在 Conditions.parameters。

示例

{
  "run_id": "RUN-0001"
}

Identifier

SMILES / INCHI 保存结构,INCHIKEY 保存结构索引键,NAME 保存名称或缩写(如 DCM),CUSTOM 保存论文内编号(如 1a,需保留来源位置)。同一物料可有多个有据可查的标识;不从名称或编号猜结构。

对象示例

{
  "type": "SMILES",
  "value": "CCO"
}

Identifier.type

类型: string · 必填

说明 value 使用哪种标识格式,例如 SMILES、INCHI 或 NAME;与 value 一起组成一个标识对象。

允许值: SMILES, NAME, INCHI, INCHIKEY, CUSTOM, UNRESOLVED

示例

"SMILES"

Identifier.value

类型: string · 必填

与 type 对应的标识文本。例如 type 为 SMILES 时填写 CCO;type 为 NAME 时可填写 ethanol。

示例

"CCO"

Quantity

一个量值,例如 {"value":1,"unit":"mmol"}。用于用量、温度、时间或测量值;raw 可保留原文。

对象示例

[
  {
    "value": 25,
    "unit": "°C"
  },
  {
    "unit": "°C",
    "raw": "20–25 °C",
    "lower": 20,
    "upper": 25
  },
  {
    "value": 25,
    "unit": "°C",
    "raw": "25 ± 2 °C",
    "uncertainty": 2
  },
  {
    "value": 5,
    "scale": "percent",
    "raw": "<5%",
    "qualifier": "<"
  }
]

Quantity.value

类型: number · 按需填写

数值。物理量配合 unit 填写;百分数配合 scale: percent 填写,例如 80% 的 value 为 80。

示例

25

Quantity.scale

类型: string · 按需填写

无量纲比例的表示方式:percent 为百分数(80 表示 80%);fraction 为小数比例(0.8 表示 80%)。与 unit 二选一。

允许值: percent, fraction

示例

"percent"

Quantity.unit

类型: string · 按需填写

物理量的单位,如 mmol、°C、h;相对投料量可用 equiv 或 mol%。百分数使用 scale。

示例

"°C"

Quantity.raw

类型: string · 按需填写

原始表述,不能与结构化数值矛盾。

示例

"20–25 °C"

Quantity.qualifier

类型: string · 按需填写

单个数值的限定符,如 <5% 或约 25 °C。双边范围使用 lower 和 upper。

允许值: =, <, <=, >, >=, ~

示例

"<"

Quantity.lower

类型: number · 按需填写

范围下界,例如 20–25 °C 中的 20。

示例

20

Quantity.upper

类型: number · 按需填写

范围上界,例如 20–25 °C 中的 25。

示例

25

Quantity.uncertainty

类型: number · 按需填写

原文报告的 ± 不确定度。例如 25 ± 2 °C 填 2,与 value 使用同一单位。

示例

2

Material

投入物料的结构、名称与角色;用量和浓度填写在投料项 Charge 中。

对象示例

{
  "id": "reactant_1",
  "identifiers": [
    {
      "type": "SMILES",
      "value": "CCO"
    }
  ],
  "role": "reactant",
  "is_limiting": true,
  "text": "Ethanol used as the limiting reactant",
  "parameters": {
    "purity": "99.5%"
  }
}

Material.id

类型: string · 必填

当前反应内的物料编号,例如 reactant_1、product_1,用于关联投料与测量。

示例

"reactant_1"

Material.identifiers

类型: Identifier[] · 按需填写

物料的化学标识,每项填写 type 和 value。通常一个已有标识即可;多个标识应对应同一物料。

示例

[
  {
    "type": "SMILES",
    "value": "CCO"
  }
]

Material.role

类型: string · 必填

物料或结果在实验中的角色。

允许值: reactant, reagent, catalyst, solvent, intermediate, mixture, unknown

示例

"reactant"

Material.is_limiting

类型: boolean · 按需填写

来源明确的整体限量反应物或试剂填 true,明确非限量填 false,未知省略。equiv、mol% 和整体产率通常以它为参照。

示例

true

Material.text

类型: string · 按需填写

补充物料说明,例如“粗中间体未经纯化直接使用”。

示例

"Ethanol used as the limiting reactant"

Material.parameters

类型: object · 按需填写

补充物料属性,例如 purity: "99.5%"。

示例

{
  "purity": "99.5%"
}

Charge

一项投料:material 指向投入物料,amount 记录用量,concentration 记录本次所用试剂的浓度或配方。

对象示例

{
  "material": "reagent_1",
  "amount": {
    "value": 2,
    "unit": "mL"
  },
  "concentration": {
    "raw": "2.5 M solution in hexanes"
  }
}

Charge.material

类型: string → Material.id · 必填

投入物料的 id,例如 reagent_1;相同物料多次加入时复用此编号。

示例

"reagent_1"

Charge.amount

类型: Quantity · 按需填写

本次投料量,例如 1 mmol。起始投料和后续加料均使用此字段。

示例

{
  "value": 2,
  "unit": "mL"
}

Charge.concentration

类型: Quantity · 按需填写

本次所用试剂的浓度或配方,如“2.5 M solution in hexanes”或“60% dispersion in mineral oil”。与 amount 并列填写。

示例

{
  "raw": "2.5 M solution in hexanes"
}

Conditions

反应条件。后续阶段省略的条件沿用前值;null 是 JSON 空值,表示停止沿用该条件,并不表示数值 0。持续时间填 Segment.duration。

对象示例

{
  "temperature": {
    "value": 25,
    "unit": "°C"
  },
  "pressure": {
    "value": 1,
    "unit": "atm"
  },
  "atmosphere": "nitrogen",
  "parameters": {
    "humidity": {
      "raw": "40% RH"
    },
    "light_source_type": "blue LED",
    "wavelength": "450 nm"
  }
}

Conditions.temperature

类型: Quantity | null · 按需填写

温度 Quantity。

示例

{
  "value": 25,
  "unit": "°C"
}

Conditions.pressure

类型: Quantity | null · 按需填写

压力 Quantity。

示例

{
  "value": 1,
  "unit": "atm"
}

Conditions.atmosphere

类型: string | null · 按需填写

已报告的气氛。

示例

"nitrogen"

Conditions.parameters

类型: object | null · 按需填写

少量补充条件,按名称和量值填写,如 milling_frequency: {value: 30, unit: "Hz"}。后续阶段省略该参数会沿用前值;设为 null 停止沿用;parameters: null 停止沿用全部补充条件。

示例

{
  "milling_frequency": {
    "value": 30,
    "unit": "Hz"
  }
}

InitialState

反应开始时已投入的物料和条件。inputs 引用 materials 中的编号;溶剂也作为物料填写。

对象示例

{
  "inputs": [
    {
      "material": "reactant_1",
      "amount": {
        "value": 1,
        "unit": "mmol",
        "raw": "1 mmol"
      }
    },
    {
      "material": "solvent_1",
      "amount": {
        "value": 2,
        "unit": "mL",
        "raw": "2 mL"
      }
    }
  ],
  "conditions": {
    "temperature": {
      "value": 0,
      "unit": "°C"
    }
  },
  "text": "The starting materials were charged at 0 °C."
}

InitialState.inputs

类型: Charge[] · 必填

开始时加入的物料;每项填写 material 编号,按需填写本次 amount。

示例

[
  {
    "material": "reactant_1",
    "amount": {
      "value": 1,
      "unit": "mmol",
      "raw": "1 mmol"
    }
  },
  {
    "material": "solvent_1",
    "amount": {
      "value": 2,
      "unit": "mL",
      "raw": "2 mL"
    }
  }
]

InitialState.conditions

类型: Conditions · 按需填写

开始时的条件;持续时间填写在对应片段的 duration 中。

示例

{
  "temperature": {
    "value": 0,
    "unit": "°C"
  }
}

InitialState.text

类型: string · 按需填写

当前对象的补充文字。阶段中记录操作与观察,测量中记录方法与样品,物料中记录补充物料说明。

示例

"The starting materials were charged at 0 °C."

Segment

按顺序记录投料、条件、时间、操作与观察。通常填写这些信息即可;原文另有阶段产物或定量结果时,再填写 products 或 measurements。

对象示例

{
  "added_materials": [
    {
      "material": "reagent_1",
      "amount": {
        "value": 1,
        "unit": "mmol"
      }
    }
  ],
  "conditions": {
    "temperature": {
      "value": 0,
      "unit": "°C"
    }
  },
  "duration": {
    "value": 1,
    "unit": "h"
  },
  "text": "The reagent was added dropwise. The solution turned yellow."
}

Segment.added_materials

类型: Charge[] · 按需填写

本片段新增的投料,相同物料复用编号。

示例

[
  {
    "material": "reagent_1",
    "amount": {
      "value": 1,
      "unit": "mmol"
    }
  }
]

Segment.conditions

类型: Conditions · 按需填写

本片段的条件;填写新值即可改变条件,未填写的沿用前值,null 表示不再沿用。

示例

{
  "temperature": {
    "value": 0,
    "unit": "°C"
  }
}

Segment.duration

类型: Quantity · 按需填写

仅此片段的持续时间,例如 1 h。

示例

{
  "value": 1,
  "unit": "h"
}

Segment.text

类型: string · 按需填写

本阶段的操作与定性观察,如滴加方式、颜色变化、析出沉淀或 TLC 观察。

示例

"The reagent was added dropwise. The solution turned yellow and a precipitate formed."

Segment.products

类型: Product[] · 按需填写

原文明示的阶段产物或中间体;最终产物填写在 Reaction.products。

示例

[
  {
    "id": "intermediate_1",
    "identifiers": [
      {
        "type": "NAME",
        "value": "Intermediate A (source label)"
      }
    ],
    "role": "intermediate"
  }
]

Segment.measurements

类型: Measurement[] · 按需填写

本阶段的定量测量;subject 指向被测物料或产物编号。定性观察填写在 text。

示例

[
  {
    "subject": "reactant_1",
    "type": "conversion",
    "value": {
      "value": 90,
      "scale": "percent"
    },
    "text": "Determined by GC."
  }
]

Product

产物的结构、角色与补充属性。测量值统一填写在所属反应或阶段的 measurements,通过 subject 引用此产物编号。

对象示例

{
  "id": "product_1",
  "identifiers": [
    {
      "type": "SMILES",
      "value": "C[C@H](O)c1ccccc1"
    }
  ],
  "role": "desired_product",
  "text": "Isolated target product",
  "parameters": {
    "reported_stereochemistry": "(S)"
  }
}

Product.id

类型: string · 必填

当前反应内唯一的产物编号,如 product_1。

示例

"product_1"

Product.identifiers

类型: Identifier[] · 按需填写

物料的化学标识,每项填写 type 和 value。通常一个已有标识即可;多个标识应对应同一物料。

示例

[
  {
    "type": "SMILES",
    "value": "C[C@H](O)c1ccccc1"
  }
]

Product.role

类型: string · 按需填写

产物角色,例如 desired_product(目标产物)、byproduct(副产物)或 intermediate(中间体)。

允许值: desired_product, byproduct, intermediate, unknown

示例

"desired_product"

Product.text

类型: string · 按需填写

补充产物说明,例如分离得到的目标产物。

示例

"Isolated target product"

Product.parameters

类型: object · 按需填写

补充产物属性。原文构型可写为 reported_stereochemistry: "(2R,3S)"。

示例

{
  "reported_stereochemistry": "(S)"
}

Measurement

一项测量:被测对象 subject、指标 type、数值 value 及补充说明。同一对象的多个指标或多次测量分别填写。

对象示例

{
  "subject": "product_1",
  "type": "ee",
  "value": {
    "value": 96,
    "scale": "percent",
    "raw": "96%"
  },
  "stereocentres": "(2R,5S)",
  "basis": "(2R,5S):(2S,5R)",
  "text": "Isolated target diastereomer fraction analysed by chiral HPLC."
}

Measurement.subject

类型: string → Material.id / Product.id · 必填

被测对象的编号:转化率引用反应物,如 reactant_1;产率或产物选择性引用产物,如 product_1。

示例

"reactant_1"

Measurement.type

类型: string · 必填

测量指标,如 yield(产率)、conversion(转化率)、ee、de、er、dr;产物绝对量使用 amount。

允许值: yield, conversion, ee, de, er, dr, ez, rr, selectivity, purity, amount, observation, custom

示例

"ee"

Measurement.value

类型: Quantity · 必填

明确报告的数值或标识值。

示例

{
  "value": 96,
  "scale": "percent",
  "raw": "96%"
}

Measurement.stereocentres

类型: string · 按需填写

本次考察位点及其目标构型。一个写 5S;多个按原文位次升序写 (2R,5S),使用英文括号、逗号,不加空格、不重复位次。只列本次考察的位点,已固定的位点不必重复。R/S 表示绝对构型,原文的假不对称构型保留小写 r/s;支持 3aR 等位次。编号沿用原文,不是 SMILES 原子序号。

示例

"5S"

Measurement.basis

类型: string · 按需填写

已知的比较对象,按比例顺序用英文冒号分隔,如 (2R,5S):(2R,5R)。分组用方括号与加号,如 [(2R,5S)+(2S,5R)]:[(2R,5R)+(2S,5S)]。原文的 syn:anti 等名称可直接保留;未知时省略。

示例

"(2R,5S):(2S,5R)"

Measurement.text

类型: string · 按需填写

用一句话说明测量方法、样品等,例如“分离产物经手性 HPLC 测定”。自定义指标也在这里注明名称。

示例

"Isolated product analysed by chiral HPLC."

Provenance

文章来源:论文 DOI 与文献引用。实验原始文件由平台另行保存。

对象示例

{
  "doi": "10.1234/isynth.example",
  "reference": "Fictional article for documentation examples"
}

Provenance.doi

类型: string · 按需填写

来源论文的 DOI 或 DOI 链接,例如 10.1234/isynth.example(虚构示例)。

示例

"10.1234/isynth.example"

Provenance.reference

类型: string · 按需填写

来源文献的题名或引用文字;没有 DOI 时也可填写。

示例

"Fictional article for documentation examples"

完整的一锅多步示例

{
  "schema_version": "1.9.0",
  "reaction_identifier": "EXP-0002",
  "materials": [
    {
      "id": "reactant_1",
      "identifiers": [
        {
          "type": "SMILES",
          "value": "C[C@H](O)c1ccccc1"
        }
      ],
      "role": "reactant"
    },
    {
      "id": "reagent_1",
      "identifiers": [
        {
          "type": "SMILES",
          "value": "CC(=O)OC(C)=O"
        }
      ],
      "role": "reagent"
    },
    {
      "id": "solvent_1",
      "identifiers": [
        {
          "type": "SMILES",
          "value": "CC#N"
        }
      ],
      "role": "solvent"
    }
  ],
  "initial_state": {
    "inputs": [
      {
        "material": "reactant_1",
        "amount": {
          "value": 1,
          "unit": "mmol",
          "raw": "1 mmol"
        }
      },
      {
        "material": "solvent_1",
        "amount": {
          "value": 2,
          "unit": "mL",
          "raw": "2 mL"
        }
      }
    ],
    "conditions": {
      "temperature": {
        "value": 0,
        "unit": "°C"
      }
    }
  },
  "segments": [
    {
      "added_materials": [
        {
          "material": "reagent_1",
          "amount": {
            "value": 1,
            "unit": "mmol"
          }
        }
      ],
      "duration": {
        "value": 1,
        "unit": "h"
      },
      "text": "The reagent was added dropwise at 0 °C, and the solution turned yellow. After 1 h, an aliquot was taken for HPLC.",
      "measurements": [
        {
          "subject": "reactant_1",
          "type": "conversion",
          "value": {
            "value": 95,
            "scale": "percent",
            "raw": "95 %"
          },
          "text": "Method: HPLC."
        }
      ]
    },
    {
      "added_materials": [
        {
          "material": "reagent_1",
          "amount": {
            "value": 1,
            "unit": "mmol"
          }
        }
      ],
      "conditions": {
        "temperature": {
          "value": 80,
          "unit": "°C"
        }
      },
      "duration": {
        "value": 3,
        "unit": "h"
      },
      "text": "The same mixture was heated to 80 °C for 3 h."
    }
  ],
  "products": [
    {
      "id": "product_1",
      "identifiers": [
        {
          "type": "SMILES",
          "value": "CC(=O)O[C@H](C)c1ccccc1"
        }
      ]
    }
  ],
  "measurements": [
    {
      "subject": "product_1",
      "type": "yield",
      "value": {
        "value": 80,
        "scale": "percent",
        "raw": "80 %"
      },
      "text": "Method: isolated."
    },
    {
      "subject": "product_1",
      "type": "ee",
      "value": {
        "value": 94,
        "scale": "percent",
        "raw": "94 %"
      },
      "text": "Method: chiral HPLC."
    }
  ],
  "workup": "The reaction mixture was worked up and purified as reported.",
  "provenance": {
    "reference": "Fictional documentation fixture. All quantities and observations illustrate format only; no experiment or source paper is claimed."
  },
  "text": "FORMAT EXAMPLE ONLY. Not a laboratory instruction or a reported experimental result."
}