# De patentgenerator — de zes stappen, operationeel gemaakt

Bron: J. Konstapel, *Where the Criteria of Innovation Go Wrong* (Leiden, sept. 2026), §VIII "From
criteria to a generator" (Altshuller + Gentzen + de drie criteria spanning/doorgang/diepte). Dit
document maakt elke stap toetsbaar: wat wordt geteld, waar de tekst vandaan komt, en wat een
taalmodel doet en wat niet. Context ónder the-maze (`maze/generator/`), tabellen `gn_*`.

## 0. Het corpus: één octrooiklasse

- Eenheid = de gepubliceerde octrooitekst (Google Patents-pagina, vrij; `corpus.mjs`), gekozen op
  CPC-klasse (zoekvraag `CPC=<klasse>`, per pagina tien, doorbladerend), ontdubbeld op
  publicatienummer. Per octrooi bewaard: titel, samenvatting, álle conclusies met hun nummer en of
  ze onafhankelijk zijn (`<li class="claim">` tegenover `claim-dependent` in de bron), CPC-codes,
  prioriteitsdatum, URL als kwitantie.
- Er wordt niets samengevat of herschreven; de tekst is de bron zoals het bureau haar publiceerde.

## 1. De tegenstelling (geteld, niet bedacht)

- Lexicon: de 39 technische parameters van Altshuller als Engelse trefwoordstammen
  (`PARAMETERS` in `generator.mjs`).
- Per octrooi, per zin uit samenvatting én onafhankelijke conclusies: een parameter geldt als
  **winst** bij een verbeterwerkwoord in dezelfde zin (increase, improve, enhance, high, higher,
  maximize, superior), als **prijs** bij een concessiewoord (suppress, prevent, reduce, without,
  while, degradation, deterioration, loss, drop, decrease, avoid, minimize).
- Een **tegenstelling** = een paar (winst-parameter, prijs-parameter) in dezelfde zin. Geteld over
  het corpus als aantal octrooien waarin het paar voorkomt; de zinnen zijn het bewijs. Het paar met
  de hoogste telling is de tegenstelling van de klasse. Het essay-voorbeeld capaciteit × degradatie
  moet er als telling uitkomen, niet als aanname — komt hij er niet uit, dan is dat de uitkomst.

## 2. De gedeelde snede (geteld)

- Uit de **onafhankelijke** conclusies: de aanhef (de tekst vóór "comprising"/"characterized
  in"/"wherein"/", which") en de woord-n-grammen (2–4 woorden, zonder stopwoorden) van de hele
  conclusie.
- **Documentfrequentie** = het aandeel onafhankelijke conclusies in de klasse waarin het n-gram
  voorkomt. De gedeelde snede = de n-grammen met DF ≥ 50% (de premisse die vrijwel elke
  oplossing importeert en geen enkele afleidt), plus de aanhef-kernen met hun DF.
- Dit is Gentzens "cut" in zijn operationele vorm: de gedeelde, niet-afgeleide term.

## 3–5. Herformulering, herverdeling, herbouw (taalmodel, gebonden)

- Een taalmodel krijgt: de tegenstelling met haar bewijszinnen, de snede-lijst, de aanhef-kernen en
  de tien onafhankelijke conclusies met de hoogste prioriteit (recentste), en moet leveren (JSON):
  (3) de eindfunctie zonder de snede-termen; (4) vier herverdelingen van het conflict langs
  tijd/fase, plaats, schaal, conditie (Altshullers scheidingsprincipes = de vier coördinaten van het
  net); (5) per herverdeling één conclusieboom als afleiding: kenmerken → functie, elk kenmerk
  met het kenmerk waaruit het volgt.
- Het taalmodel mag geen snede-term gebruiken; doet het dat toch, dan wordt de kandidaat in stap 6
  als "niet inventief" geboekt — niet stilletjes herschreven.

## 6. De toets (geteld; het taalmodel toetst zichzelf niet)

- **Nieuwheid**: cosinus (text-embedding-3-small, dezelfde poort als de MAZE-betekenislaag) tussen
  de gegenereerde hoofdconclusie en élke conclusie in het corpus; gerapporteerd als de hoogste
  cosinus + het dichtstbijzijnde octrooi (kwitantie). Geen drempel als oordeel — het getal staat er;
  de drempel 0,80 is een lees-hulp (daarboven "verdacht dicht bij").
- **Inventieve stap**: de gegenereerde conclusie bevat geen n-gram uit de gedeelde snede
  (string-toets, hoofdletterongevoelig, na normalisatie van meervoud). Wel/niet, met de gevonden
  termen.
- **Spanning**: de klasse is (met de hand) aan een publieke meter gekoppeld (`METERS` in
  `generator.mjs`: welke meter, welke bron); de actuele stand wordt gelezen waar een API bestaat
  (Financial Weather `weer.swarp.nl/api/status`), anders staat er "geen meter gekoppeld".
- Verworpen kandidaten blijven bewaard (stap 1 van de volgende ronde), niets wordt gewist.

## Wat de generator niet is

Geen octrooiaanvraag, geen juridisch oordeel over nieuwheid of inventiviteit (dat is aan een
onderzoeker en een bureau), geen bewijs dat de kandidaat werkt. Wél: een controleerbaar document —
elke stap expliciet, elke telling met haar bron — dat adressen oplevert: geladen, open, diep.
