Skip to content

Commit 48c50b8

Browse files
committed
docs(sentiment): Qwen3.8 is live on Omeka; the panel is five
Written 2026-08-25 from the imported offline run: 12,095 items PATCHed plus 3 from the verification batch, 0 model calls, 0 PATCH failures. Live counts read back 12,098 centralite and polarite, 11,811 subjectivite. Every figure reconciles, which is the point of recording them rather than rounding: 11,811 = 12,098 - 287 nulls, and 287 is exactly its Non abordé count, so the cross-field rule it fails 145 times is obeyed perfectly wherever it applies. The justification counts are 12,098 / 12,095 / 12,094, short by the 3 and 4 blank justifications in the source data, which the writer omits rather than storing empty. The other four members read 7 lower on subjectivite than the last recorded figures. That is the already-documented ceiling move (bibo:Article 12,356 -> 12,349) catching up with numbers measured before it, not anything this run did: Gemma, measured after the move, is unchanged, and a field-by-field diff of three items against a pre-write snapshot showed exactly six properties added, none removed, and nothing else altered. Panel counts corrected throughout -- the table, "Why these four", the fan-out arithmetic, the property total (24 -> 30), the resolved-term count (25 -> 31), and the reasoning-depth tally, which Qwen improves from 3 of 4 rounded up to 3 of 5 because its low/medium/xhigh ladder is real. Also state the vocabulary-update rule where it was still hedged. Omeka applies additions only and never removes a property; v1.4 confirmed it a second time, 80 -> 86, adding Qwen's six and removing none of the 48 the file omits.
1 parent bb62931 commit 48c50b8

2 files changed

Lines changed: 21 additions & 13 deletions

File tree

AI_sentiment_analysis/README.md

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ is the only thing that can be, because Omeka does not index value annotations:
8383
| `iwac:gpt56Luna*` | `gpt-5.6-luna` | 79610 | `gpt_5_6_luna_` |
8484
| `iwac:mistralSmall2603*` | `mistral-small-2603` | 79614 | `mistral_small_2603_` |
8585
| `iwac:deepseekV4Flash0731*` | `deepseek/deepseek-v4-flash-0731` | 83261 | `deepseek_v4_flash_0731_` |
86+
| `iwac:qwen3827b*` | `Qwen/Qwen3.8-27B` (self-hosted) | 111933 | `qwen3_8_27b_` (not exported yet) |
8687

8788
**The Google slot became Gemma 4 31B on 2026-08-14**, and it annotated the corpus
8889
the same day: 18.8 h, then a short retry pass, ending **complete at 12,298
@@ -94,13 +95,17 @@ So this filled an empty slot rather than mixing two models into one column —
9495
**generation 2 is unchanged**, and there is no mixed-column question to resolve
9596
and no re-run to pay for.
9697

97-
The upload that added Gemma's six properties did **not** remove Flash-Lite's, or
98-
any of the other 42 empty declarations: vocabulary 10 went 74 → **80**, not
99-
74 → 32. Whatever its diff preview lists, the update flow adds on this instance
100-
and does not delete, so `00 --verify` proves a deletion *would* be safe rather
101-
than predicting one will happen. Harmless — all 48 are at 0 items and
102-
`resolve_property_ids` asks for the 25 terms the panel needs — but do not count
103-
annotators from the installed property list.
98+
**Omeka never removes a vocabulary property on update — it applies additions
99+
only.** Confirmed twice: the upload that added Gemma's six took vocabulary 10
100+
from 74 to **80** without touching Flash-Lite's or any of the other 42 empty
101+
declarations, and v1.4 on 2026-08-25 took it 80 → **86** by adding Qwen's six and
102+
removing none of the 48 the file omits. Whatever the diff preview lists, nothing
103+
is deleted, so `00 --verify` proves a deletion *would* be safe rather than
104+
predicting one will happen — which is still the check worth running, because it
105+
is what would catch a member dropped from `PANEL` while it still held values.
106+
Harmless in practice — all 48 are at 0 items and `resolve_property_ids` asks only
107+
for the 31 terms the panel needs — but never count annotators from the installed
108+
property list.
104109

105110
The April preview's `iwac:deepseekV4Flash*` values (11,482 items) were deleted
106111
on 2026-08-07. They were never exported to Hugging Face, so that reading is
@@ -125,7 +130,7 @@ unreachable second copy of what the property name already says, written six
125130
times per model per item.
126131

127132
That same finding is why the panel keeps six model-keyed properties per member —
128-
twenty-four across the four — rather than six multi-valued ones. The tidier design — one `iwac:polarite` holding a
133+
thirty across the five — rather than six multi-valued ones. The tidier design — one `iwac:polarite` holding a
129134
value per model — would need no vocabulary change to add a model, but it puts
130135
the only thing distinguishing those values in the unsearchable layer, so
131136
*"polarité = Négatif according to DeepSeek"* stops being answerable by query.
@@ -330,7 +335,7 @@ and they cleared immediately at the larger budget. Gemma's slowest probe call wa
330335

331336
`--concurrency` multiplies with the per-item model fan-out. Running one member
332337
at a time — the normal mode — keeps requests in flight equal to the flag;
333-
running all four multiplies it by four.
338+
running the whole panel multiplies it by five.
334339

335340
### Running a member on your own GPU
336341

@@ -751,12 +756,13 @@ there.
751756
| `gpt_5_6_luna` | `gpt-5.6-luna` | `iwac:gpt56Luna*` | closed | $1.00 / $6.00 |
752757
| `mistral_small_2603` | `mistral-small-2603` | `iwac:mistralSmall2603*` | **6.5B / 119B** | $0.15 / $0.60 |
753758
| `deepseek_v4_flash_0731` | `deepseek/deepseek-v4-flash-0731` | `iwac:deepseekV4Flash0731*` | **13B / 284B** | from $0.09 / $0.18 |
759+
| `qwen3_8_27b` | `Qwen/Qwen3.8-27B` (self-hosted) | `iwac:qwen3827b*` | **27B dense** | GPU-hours, not tokens |
754760

755761
Property prefixes are the camelCase fold of the column prefix, so the Omeka→HF
756762
mapping is mechanical. Every property also records its exact model id in
757763
`rdfs:comment`.
758764

759-
### Why these four
765+
### Why these five
760766

761767
Every member is its vendor's **high-volume tier**, which is what makes the panel
762768
a panel rather than a quality ladder. The slot Google occupies was
@@ -850,8 +856,9 @@ manifest records a decision instead of an accident.
850856

851857
**The Gemma swap made this worse and the write-up must say so.** With Flash-Lite
852858
— which did have a real `MEDIUM` — the four-model panel split evenly, two members
853-
at a middle setting and two rounded up. It is now **3 of 4 rounded up**, and no
854-
Google model sits at a middle setting at all. That is a genuine cost of the swap,
859+
at a middle setting and two rounded up. Swapping it for Gemma took that to 3 of 4
860+
rounded up, with no Google model at a middle setting at all; adding Qwen3.8 —
861+
whose ladder is genuinely low/medium/xhigh — brings it back to **3 of 5**. That is a genuine cost of the swap,
855862
accepted for the cost, open-weights and data-handling reasons above.
856863

857864
**Gemma's `high` is also the least legible of the three**, because OpenRouter

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ At this scale, traditional manual processing—metadata tagging, OCR correction,
2525
| **YouTube Transcription** | Transcribe YouTube-hosted items from their URLs — no download — detecting the spoken languages and correcting the catalogue record from them |
2626
| **Handwritten Text Recognition** | Read manuscripts in French, Arabic, or mixed languages |
2727
| **Magazine Article Extraction** | Index individual articles within digitized periodicals |
28-
| **Sentiment Analysis** | Evaluate centrality, subjectivity, and polarity of Islam/Muslim representations with a four-model panel |
28+
| **Sentiment Analysis** | Evaluate centrality, subjectivity, and polarity of Islam/Muslim representations with a five-model panel |
2929
| **Reference Indexing** | Assign controlled subject and spatial keywords to scholarly references using Claude, with authority reconciliation |
3030

3131
## Limitations and Caveats
@@ -134,6 +134,7 @@ The approach assumes you have digitized materials and need to make them searchab
134134
- [Magazine Article Extraction](AI_summary_issue/README.md) — Article indexing from digitized periodicals (Gemini, Mistral, or Claude agent)
135135
- [YouTube Transcription](AI_youtube_transcription/README.md) — URL-based transcription with language detection, the measured token budget, and the public-video-only limit
136136
- [Reference Indexing](AI_reference_indexing/README.md) — Subject and spatial keyword assignment for scholarly references
137+
- [Publication Extraction](AI_publication_extraction/README.md) — Structured OCR for journal articles, chapters, books and theses: footnotes and bibliography separated from the body, oversized scans split automatically
137138
- [IWAC on Hugging Face](https://huggingface.co/datasets/fmadore/islam-west-africa-collection) — Full dataset
138139
- Individual pipeline directories contain their own documentation
139140

0 commit comments

Comments
 (0)