{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "One place where a federal regulation writes the same quantity twice, in two units",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "cite",
    "title",
    "verbatim",
    "a_written",
    "a_unit",
    "b_written",
    "b_unit",
    "verdict"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Stable within one extraction run; not stable across runs, because the CFR is amended daily.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "cite": {
      "type": "string",
      "description": "Citation assembled from the XML ancestor stack, e.g. \"49 CFR 173.162\" or \"14 CFR part 25, Appendix F\".",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "title": {
      "type": "integer",
      "description": "CFR title number, 1 to 50.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "part": {
      "type": [
        "string",
        "null"
      ],
      "description": "Part number, as the XML records it.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "section": {
      "type": [
        "string",
        "null"
      ],
      "description": "Section number without the section sign. Null inside an appendix.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "appendix": {
      "type": [
        "string",
        "null"
      ],
      "description": "Appendix heading, when the pair is in one.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "verbatim": {
      "type": "string",
      "description": "The pair exactly as the regulation prints it, from the first quantity through the closing parenthesis.",
      "x-origin": "redistributed",
      "x-source": "govinfo-ecfr"
    },
    "sentence": {
      "type": "string",
      "description": "The sentence it sits in, as published.",
      "x-origin": "redistributed",
      "x-source": "govinfo-ecfr"
    },
    "a_written": {
      "type": "string",
      "description": "The first quantity as written, number and unit.",
      "x-origin": "redistributed",
      "x-source": "govinfo-ecfr"
    },
    "a_value": {
      "type": "string",
      "description": "Its value as an exact rational, \"n\" or \"n/d\". Fractions and mixed fractions are kept exact.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "a_unit": {
      "type": "string",
      "description": "Normalised unit identifier for the first quantity.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "b_written": {
      "type": "string",
      "description": "The parenthetical quantity as written.",
      "x-origin": "redistributed",
      "x-source": "govinfo-ecfr"
    },
    "b_value": {
      "type": "string",
      "description": "Its value as an exact rational.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "b_unit": {
      "type": "string",
      "description": "Normalised unit identifier for the parenthetical quantity.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "b_decimal_places": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Decimal places actually written in the parenthetical. Null for a fraction.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "b_significant_figures": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Significant figures actually written, counting trailing zeros. Null for a fraction.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "expected": {
      "type": [
        "string",
        "null"
      ],
      "description": "The exact conversion of the first quantity into the second unit, as a rational. Exact because the factors are exact by definition.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "expected_number": {
      "type": [
        "number",
        "null"
      ],
      "description": "The same value as a double, for convenience. The rational is authoritative.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "ratio": {
      "type": [
        "number",
        "null"
      ],
      "description": "written divided by expected. Meaningless for a temperature and recorded anyway; use last_place_error there.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "relative_error": {
      "type": [
        "number",
        "null"
      ],
      "description": "Absolute relative difference. Null for a temperature, where the scale has an arbitrary zero.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "last_place_error": {
      "type": [
        "number",
        "null"
      ],
      "description": "How far the written value sits from the exact conversion, in units of its own last written decimal place.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "reading": {
      "type": "string",
      "description": "Which reading made the comparison: direct, temperature-interval, force-reading, compound, eight-hour-day, ambiguous-unit, spaced-thousands, letter-l-for-digit-one, hyphen-for-decimal-point, none.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "verdict": {
      "type": "string",
      "description": "agree, rounded, discrepant, alternative, same-unit, percent-of, inexact-unit, incomparable.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "rounds_at_written_places": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "The written value equals the exact conversion rounded to the decimal places it was written to.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "rounds_at_written_figures": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "The same at the significant figures written.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "rounds_ignoring_trailing_zeros": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "The same again, reading trailing zeros in an integer as insignificant.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "definition_dependent": {
      "type": "boolean",
      "description": "True when a unit in the pair names more than one quantity (BTU, calorie, horsepower, inch of mercury). Such a pair is never called an error.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "affine": {
      "type": "boolean",
      "description": "True for a temperature pair.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "in_table": {
      "type": "boolean",
      "description": "The pair is in a table cell rather than running text.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "flags": {
      "type": "array",
      "description": "Structural warnings from the extractor.",
      "x-origin": "built",
      "x-source": "artwaste-land",
      "items": {
        "type": "string"
      }
    },
    "reviewed": {
      "type": "boolean",
      "description": "A person read this sentence in the source and recorded a verdict.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "review_class": {
      "type": [
        "string",
        "null"
      ],
      "description": "contradiction, artifact-compound-rate, artifact-parallel-statement, artifact-source-markup.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    },
    "review_note": {
      "type": [
        "string",
        "null"
      ],
      "description": "What the reader saw, usually including a correct conversion in the same sentence.",
      "x-origin": "built",
      "x-source": "artwaste-land"
    }
  }
}
