Books / Constructions / Chapter 13

Part IV · Chapter 13

As of Which Date?

9 min read

Contents of Constructions

In the previous chapter we found the edition and the saved text. But a rule taken from that text may apply only within a particular interval. The same question can get different answers before and after a definition changes.

Take the kilogram. In the 8th edition of the SI Brochure the kilogram is defined through the mass of the international prototype. The new definition, built on the fixed value of the Planck constant, took effect on 20 May 2019. Imagine asking from one fixed later moment which definition applied on the day before that date and on the day of the change itself. The moment at which we ask stays the same; the date we ask about changes[^chapter-13-si].

Dates and moments in time

The case context already gave us three time fields. Read them one by one:

Field What it specifies
legal_time The date for checking which rules and editions apply
knowledge_time The cutoff time for information available to the calculation
decision_time The time of the decision represented in the context

Despite the name legal_time, this example concerns the definition of a unit of measurement. The field specifies the date for checking which editions and rules apply; it is not confined to legal texts.

In our examples legal_time is a calendar date: @2019-05-19. The other two fields hold a moment, for example @2026-09-08T12:00:00Z. After the T come hours, minutes, and seconds; Z denotes UTC. A calendar day and a moment inside that day are different values.

We will first change legal_time while holding the other fields fixed. Then we will return to the payment example and change knowledge_time to see when a verification becomes available.

One definition on both sides of the boundary

The SI package has two relations for our question. defined_by_reference links the unit to a physical artefact; defined_by_constant links it to a defining constant. The names Kilogram, InternationalPrototypeKilogram, and PlanckConstant are already declared in the vocabulary.

Start with the prototype question. Take a copy of scenario 01a and hold decision_time and knowledge_time at 8 September 2026. Set legal_time, the date we are asking as of, to 19 May 2019:

test "urn:query:si-book-prototype-before" {
    given {
        context {
            decision_time @2026-09-08T12:00:00Z;
            knowledge_time @2026-09-08T12:00:00Z;
            legal_time @2019-05-19;
            timezone "UTC";
        }
    }
    evaluate truth(defined_by_reference(Kilogram, InternationalPrototypeKilogram));
    expect truth_status == TRUE_ONLY;
    expect evaluation_status == COMPUTED;
    expect applied(KilogramByInternationalPrototype);
}

given carries no extra assertions. The needed information already sits in the package, in the table of base units. Here is its kilogram row:

assert base_unit(Kilogram, Mass, "kg") { id "t2-kg"; }

It links the kilogram to mass and the symbol kg. On 19 May the rule KilogramByInternationalPrototype applies and supports the TRUE_ONLY answer. The applied(...) expectation checks that application.

Now change only legal_time in the copy:

context {
    decision_time @2026-09-08T12:00:00Z;
    knowledge_time @2026-09-08T12:00:00Z;
    legal_time @2019-05-20;
    timezone "UTC";
}

The question, the program, and the available information stay the same. Yet on 20 May the prototype answer becomes NEITHER. The old expectations then fail in two places: there is no positive answer and no application of the rule. This is not a failed calculation: its status stays COMPUTED.

This does not claim the prototype’s mass changed or the kilogram ceased to exist. We asked whether the unit is defined through that artefact as of the chosen date. The ground for such a conclusion no longer holds. The example has no separate negative rule, so the result is NEITHER, not FALSE_ONLY.

The edition’s interval

See where the time boundary is written. The package keeps the English texts of two editions:

edition SI_BROCHURE_8_EN of SI_BROCHURE {
    label en official "The International System of Units (SI), 8th edition, 2006 — English text of the bilingual edition";
    label ru unofficial "8-е издание (2006), английская часть двуязычного издания";
    language en;
    officiality official;
    adopted @2006-01-01;
    in_force [@2006-01-01, @2019-05-20);
    materialization_status PINNED_UNOFFICIAL_COPY;
}
edition SI_BROCHURE_9_EN of SI_BROCHURE {
    label en official "The International System of Units (SI), 9th edition, 2019, version 4.01";
    label ru unofficial "9-е издание (2019), версия 4.01, английский текст";
    language en;
    officiality official;
    adopted @2018-11-16;
    in_force [@2019-05-20, infinity);
    materialization_status PINNED_UNOFFICIAL_COPY;
}

In in_force the left square bracket includes the start; the closing parenthesis excludes the end. So the eighth edition’s interval ends before 20 May. The ninth edition’s interval starts that day; infinity means no set end. On the boundary itself the intervals do not overlap.

adopted and in_force do different jobs: a change can be adopted before it takes effect. The saved Brochure reports agreement in November 2018 and effect from 20 May 2019. For our question the second date matters.

Distinguish the dates assigned by the model from the dates reported by the publication. @2006-01-01 on the eighth edition does not show that the Brochure appeared on 1 January. And the saved version 4.01 of the ninth edition contains later updates: its interval does not mean all that text already existed in May 2019. Here we check only the kilogram definition’s boundary.

A sleepy owl in a nightcap hands a relay baton to a sprightly running rooster at dawn.

The rule’s interval

The prototype rule also carries a time boundary:

@source(SI8_DEF_KILOGRAM)
rule KilogramByInternationalPrototype strict {
    label en official "8th ed., §2.1.1.2: the kilogram is equal to the mass of the international prototype of the kilogram (until 20 May 2019)";
    label ru unofficial "8-е изд., §2.1.1.2: килограмм равен массе международного прототипа килограмма (до 20 мая 2019)";
    for q: BaseQuantity;
    for s: Text;
    when base_unit(Kilogram, q, s);
    then defined_by_reference(Kilogram, InternationalPrototypeKilogram);
    effective [-infinity, @2019-05-20);
}

The new effective line sets this rule’s applicability interval. The left -infinity leaves its start open; the right boundary excludes 20 May 2019. The link to the source’s edition still holds: that open start does not automatically make the rule applicable before the edition’s own interval[^chapter-13-applicability].

The new definition’s rule mirrors it:

@source(SI9_DEF_KILOGRAM, SI9_APP1_2018_INDEX)
rule KilogramByPlanckConstant strict {
    label en official "§2.3.1: the kilogram is defined by taking the Planck constant h to be 6.626 070 15 × 10^−34 J s (from 20 May 2019)";
    label ru unofficial "§2.3.1: килограмм определён фиксацией постоянной Планка h = 6,626 070 15 × 10^−34 Дж·с (с 20 мая 2019)";
    for q: BaseQuantity;
    for s: Text;
    when base_unit(Kilogram, q, s);
    then defined_by_constant(Kilogram, PlanckConstant);
    effective [@2019-05-20, infinity);
}

In both rules, base_unit(Kilogram, q, s) finds the familiar table row. The conclusion, the source, and the time interval differ. The date tells us which ground applies; it changes nothing about the constant or the artefact.

Check both questions on both dates:

Applicability date Through the international prototype Through the Planck constant
19 May 2019 TRUE_ONLY NEITHER
20 May 2019 NEITHER TRUE_ONLY

All four results carry the COMPUTED status. These are answers to two different relations, not positive and negative support for one claim. So the neighbouring definition alone does not turn NEITHER into FALSE_ONLY.

Checking and explaining the boundary

The companion’s SI package already includes its pinned unit definitions. Make a working copy for the date experiments, starting in reader/:

mkdir si-study
cp -R corpus/laws/org/bipm/si-brochure/. si-study

Run the file containing the four kilogram-redefinition scenarios:

law test si-study --file tests/01-kilogram-redefinition.lawtest

--file selects this scenario file from the package’s declared checks. The four original scenarios should pass. In them the other time fields change together with the applicability date. The copies above separate them, isolating the effect of legal_time.

For your own experiment, edit the copy at si-study/tests/01-kilogram-redefinition.lawtest. Keep the header and one test, then change the named time field and run the same command again.

To examine why a definition gives no support, use the question preparer from Chapter 4 on that single-test copy, with the companion’s SI program and contexts/bipm-si-brochure.json. Run law engine why-not on the prepared question. For the prototype on 20 May, the explanation names KilogramByInternationalPrototype and the SI_BROCHURE_8_EN edition, closed as of that date. For the Planck-constant question on 19 May, it points at SI_BROCHURE_9_EN: that edition has not yet taken effect.

The base-unit premise is not refuted here. The reason lies in the source’s applicability. A rule outside its applicability interval differs from a rule missing a premise, even when both yield the same NEITHER.

When the information became available

Now keep the applicability date and change another field. Return to the purchase from Chapter 11. In the right-payment scenario the verification of the B92 bank confirmation reads:

verification VB92 {
    evidence B92;
    document_hash "sha256:9292929292929292929292929292929292929292929292929292929292929292";
    verifier "urn:demo:verifier:audit-desk";
    outcome verified;
    recorded @2026-02-10T10:00:03Z;
}

Its result was recorded on 10 February 2026 at 10:00:03 UTC. Take the purchase information as of 6 February and keep the decision moment at 1 March. For the first copy set this context:

context {
    legal_time @2026-02-06;
    decision_time @2026-03-01T00:00:00Z;
    knowledge_time @2026-02-10T10:00:02Z;
    timezone "UTC";
    evidence_policy ExpenseEvidenceV1;
}

Document B92 is already available and valid on the chosen date, but its verification is recorded one second later. The policy cannot use that result yet[^chapter-13-knowledge]. Payment and reimbursement both receive NEITHER.

Now change only knowledge_time to @2026-02-10T10:00:03Z. The verification record is available, the support is accepted, and both answers become TRUE_ONLY. The payment itself does not happen again: what changes is the body of information available when answering about that purchase.

For this pair use the right-payment copy from the previous chapter and its program packs/demo/expense-evidence/clir/expense-evidence.lawir.json. The SI vocabulary plays no part here.

These are two different changes. In the kilogram question, legal_time changed while the available materials stayed the same. In the payment question, knowledge_time changed while the case date stayed the same. The verification’s recorded time remained fixed; the later cutoff made that record available.

In these experiments decision_time remains the stated time of the decision. It cannot automatically stand in for the other two fields. Nor must the context match the computer’s clock at launch: we reproduce a stated situation.

Try separating the time fields

  1. In the prototype-question copy keep legal_time at 19 May 2019 and move knowledge_time from 8 to 7 September
    1. Then, in a separate copy, move only decision_time to 9 September. Why does the answer stay TRUE_ONLY in both cases?
  2. Ask about the Planck constant on 19 and 20 May, keeping the other fields the same. Find the first answer’s reason in why-not and the rule’s application for the second in explain.
  3. In the purchase case compare the knowledge moments 10:00:02 and 10:00:03. Check paid first, then reimbursable. Find the entry that became available between the two calculations.
  4. Find the French-language version of the ninth edition of the SI Brochure. Compare its language and interval with the English one. Why does the language difference alone not call for another effective date of the definition?

We can revisit an earlier date while keeping the stated body of knowledge. But time does not settle every disagreement about meaning. If one text admits different readings, name them and consider each separately. That is the next chapter’s subject.

[^chapter-13-si]: Resolution 1 of the 26th CGPM (2018) sets the start of the new SI’s effect from 20 May 2019. The definitions are kept in the 8th edition, §2.1.1.2 and the 9th edition, §2.3.1. [^chapter-13-applicability]: The Arxo specification, §89 — context, §92 — edition applicability. In the example the intervals of the editions and the rules are reconciled; the result does not isolate the effect of only one of these constraints. [^chapter-13-knowledge]: The Arxo specification, §78.2.3 — policy inputs and verification availability. In the right-payment scenario entry VB92 has recorded 10.02.2026, 10:00:03 UTC; in the experiment only the knowledge moment changes.

Contents · PDF · EPUB · Original text under CC BY 4.0 · Source-material terms

Constructions

Contents

You’re reading · Part IV

Back to the Source

Reading settings

Text size
Appearance

Preferences and your reading place are saved only in this browser.