Repository path: workshop/translations/maqamat-hulwan/loci-frozen.md · rendered 2026-09-09
Page metadata (front matter)
| type | manifest |
|---|---|
| id | maqamat-hulwan-loci |
| status | frozen |
| created | 2026-08-27 |
| updated | 2026-08-27 |
| links | workshop/translations/maqamat-hulwan/source-arwikisource-maqama2.txt, workshop/translations/maqamat-hulwan/collation.md, workshop/translations/maqamat-hulwan/enumerate_saj.py, workshop/translations/maqamat-hulwan/dispositions.tsv, workshop/translations/maqamat-hulwan/adjudicate.py, workshop/translations/maqamat-hulwan/loci_final.json, workshop/translations/maqamat-sanaa/loci-frozen.md, wiki/arms/ARM-worth-paying.md |
The saj' loci of «المقامة الحلوانية» — machine-enumerated, adjudicated in the open, frozen first
Why this page is committed before a word of English exists. ARM-worth-paying step 2 puts three
English policies on this maqāma to blind readers. Two of the three policies — R43 restraint and
R48 the rhyme first — are defined at the saj' loci: R48 must deliver a chime at every one of
them, R43 must attempt one and log every refusal. If the places that count as loci were chosen
after the English was written, both regimes would be self-certifying.
And this page is built by script, which is new. «المقامة الصنعانية»'s 66 loci were enumerated by
hand. Method note (brv), written the day before this page, records what that cost on a different
work: a hand-built pool violated its own admission rule, both pre-run critic seats found it
independently, and the rebuild cost the lead four of its favourite loci and added six it had missed.
So: enumerate_saj.py emits candidates under a rule fixed before it is run; dispositions.tsv
carries the lead's coded verdict on every candidate; adjudicate.py fails if a candidate has no
disposition, if a disposition names a candidate that does not exist, or if a split does not
partition its candidate's cola exactly and in order.
1. The work and the copy-text
«المقامة الحلوانية» — the second of al-Ḥarīrī of Basra's fifty Maqāmāt (c. 1110).
140 prose cola and 17 verse lines, 709 Arabic tokens. Copy-text, provenance and its
single-witness limit: collation.md. Segmentation is the copy-text's own: it punctuates at every
colon boundary, so the cola are read off the page and not judged — the same property as
«المقامة الصنعانية», and a property of this transmission.
2. The machine rule, fixed before it was run
A candidate is a maximal run of two or more consecutive prose cola whose bearers share a rhyme
key, where the bearer is the colon's last token with its case ending deleted, and the rhyme key is
the bearer's final letter together with the vocalic value immediately before it. Runs break at a
verse block. The full statement is enumerate_saj.py's docstring and is not restated here.
The rule is deliberately broad: Arabic saj' rhymes on more than the last consonant, so the rule joins runs that ought to be separate. That direction is the safe one — an over-admitted candidate can be refused in the open, and a candidate that never reaches the page cannot be refused at all.
Amendment 1, made after the first run and before a word of English existed. The copy-text is only partially vocalised — «وقَلّ» carries its fatḥa and «والطّلّ» does not — and the first version of the rule therefore split runs on the accident of which letters an editor happened to point. It missed eight, among them «العجَبِ» / «الأدبِ» and «عُبادةَ» / «بالإجادَةِ», which are as plain a pair as this maqāma contains. The amendment makes the unwritten vowel a wildcard and reads a long-vowel letter under sukūn as the long vowel. It is recorded here rather than folded in silently, because it changed the pool from 46 candidates to 49 and it was made by the same hand that then adjudicated them.
3. The pool
49 candidates → 58 loci over 134 of the 140 prose cola. Data: loci_saj.json (the machine
pool), dispositions.tsv (every verdict), loci_final.json (the result).
| depth | loci |
|---|---|
| 2 cola | 49 |
| 3 cola | 4 |
| 4 cola | 4 |
| 8 cola | 1 — S020, p045–p052, the -āqi run: الإمْلاقِ · الفِراقِ · العُراقِ · العِراقِ · الإرْفاقِ · الآفاقِ · الرّفاقِ · الإخْفاقِ |
Every disposition is ADMIT or SPLIT; nothing was refused outright. Five candidates were
split, all for the same reason and it is the machine rule's known weakness: the rule joined cola on
a shared pronominal suffix where the Arabic rhymes on the syllable before it. C012 is the
extreme case — twelve consecutive cola all ending «ـهِ», which the rule read as one twelve-deep run
and which is in fact six couplets (-ālātihi, -yatihi, -ridatihi, -rādihi, -dābihi,
-fātihi). Two loci are coded ADMIT-WEAK: S033 النّدْرِ / الثّغْرِ and S042 بالسّبْكِ /
الشّكّ, where the rawiyy is the final consonant and the consonant before it differs. They are
admitted because the classical rawiyy is that consonant, and flagged because a hand told to "chime
here" is being asked for less than at the other 56.
The six cola in no locus are p068, p073, p082, p112, p121, p138. Five are the verse-introducing formulae — «وأنْشَد:», «وأنشدَ:», «فأنشأ يقول:», «قال: نعمْ قولُه:» — the same class that supplied the whole of the unrhymed prose in Assembly I. The sixth, p068, is not unrhymed at all: «فقال لمَنْ يَليه: ما الكِتابُ الذي تنظُرُ فيهِ؟» rhymes yalīh against fīh inside one colon. It is the one place in this maqāma where the machine rule's blind spot is visible on the page, and it is named here rather than left to be discovered.
4. Where lead judgment enters, and what it cannot see
Splitting an over-generated run is lead judgment and nothing else: it reads the syllable before the
suffix and asks whether the bearers rhyme as an Arabic ear would count it. Every such judgment is in
dispositions.tsv with its reason.
The blind spot runs the other way and no adjudication can repair it. A saj' pair whose members are not in consecutive cola, or whose rhyme the copy-text's pointing does not support, never becomes a candidate and so is never adjudicated. p068 is one instance the lead happened to notice; there is no procedure here that would have found it. This pool is therefore the pool of the consecutive, pointed saj' of this maqāma, and every figure computed on it inherits that boundary.
5. Priming
None in this session. No published English hand of this maqāma has been opened by the hand that
built this page or that will write the R43 and R48 renderings against it. Preston 1850 and
Chenery 1867 were read on this same text by the session that produced
RS-20260826-balanced-period; sessions are ephemeral and do not carry a text forward in memory, but
the project's own R50 rendering of this maqāma is on disk and open, and both new renderings are
written with it visible. That is a real dependence and it is measured, not asserted, in each
rendering's contamination section.