# Semantic rules / 语义规则

- New records use schema_version 1.9.0. Existing 1.8.0, 1.7.0, 1.6.0, 1.5.0, 1.4.0, 1.3.0, 1.2.0, 1.1.0 and 1.0.0 records use their frozen readers.
- Material identifiers must describe the same material. SMILES/InChI must parse chemically; source names remain NAME.
- Material ids are unique; Charge.material and Measurement.subject must resolve within the reaction.
- Product IDs cannot be used as input IDs. A carried-forward intermediate remains in the vessel; an explicitly identified later input must have its own Material definition.
- All reactions use initial_state and ordered segments. Material has no amount; input amounts belong only to Charge.amount. Measured product amounts are Measurement(type=amount).
- Segments follow array order. Omitted settings inherit, null clears, and a domain module replaces its namespace atomically. Durations never inherit.
- Segment products and measurements remain segment-scoped. Multi-stage overall yield and duration are never inferred by multiplying or summing segment values.
- Quantities are finite. Raw wording and structured values must agree. Intervals require both bounds and units; qualifier denotes a single-value limit or approximation. Reported uncertainty is independent of a range.
- Preserve source units and original wording. Unparsed quantities have no numerical index; explicit invalid numerical claims are errors.
- All reaction/segment measurements require subject=Material.id or Product.id, type and value. Product has no nested measurements. Yield belongs to a product or intermediate; conversion belongs to a reactant.
- Mark at most one overall limiting material with is_limiting. Unknown remains absent.
- Unknown domain modules are preserved. Specialized numerical indexes require a module adapter.

物料、范围、引用及结果范围在入库前校验。顺序来自 segments 数组，操作文字不自动转换为动作或数值。新版不要求逐字段证据对象，原始文件和来源信息仍保留。

当前记录的产物定义于 products；所有测量统一填写 measurements，以 subject 引用被测物料或产物编号。投料引用 Material.id。所有化学实体编号在当前反应内唯一，投料浓度与各次 Charge 绑定。

- Measurement.text preserves method/sample wording and names a custom metric. stereocentres applies only to ee/er/de/dr and uses source locants. Neither this site list nor the target configuration establishes the compared species; preserve the source basis.

- stereocentres uses 5S for one site, (2R,5S) for several, ascending source locants with ASCII punctuation and no spaces or duplicate locants. Source suffixes/primes and pseudoasymmetric r/s are preserved. These labels do not imply atom mapping or comparison groups.

- Additional structured attributes use parameters on the relevant object; supplementary wording uses text. Historical extensions/notes/description keep their frozen readers. Condition parameters inherit per key; a nested value replaces as a whole.
