docs: XOR-Zeichen entschieden — = statt x (D34-Nachtrag)
SPEC §11: Zeichen festgelegt (disjunktiv wie `|`, Mischung → mixedGate, Leerraum-Regel gegen Labels wie =SUMME(…)); offen bleibt nur noch die Kennzeichnung der Gruppe im Diagramm. D34-Nachtrag begründet die Wahl und hält die verworfenen Kandidaten fest (x, ^, |1, /, ⊕, °). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
477ef6c812
commit
2754fa40f6
@@ -1574,3 +1574,53 @@ nicht: Das Und der Notation ist `-` am Zeilenanfang — `&` ist gerade deshalb
|
|||||||
frei. Verworfen: `$` (Preis-Kollision), `%` (ein Tippfehler vom
|
frei. Verworfen: `$` (Preis-Kollision), `%` (ein Tippfehler vom
|
||||||
Auskommentieren), `:` (zu nah an `:#…`), `§` (fehlt auf US-Tastaturen), `*`
|
Auskommentieren), `:` (zu nah an `:#…`), `§` (fehlt auf US-Tastaturen), `*`
|
||||||
(Markdown, schon in D29 verworfen).
|
(Markdown, schon in D29 verworfen).
|
||||||
|
|
||||||
|
**Nachtrag — das XOR-Zeichen ist entschieden: `=`.** Das in §11 zunächst
|
||||||
|
vorgeschlagene `x` ist verworfen; ausschlaggebend war, **wann** seine
|
||||||
|
Glyph-Kollision auftritt: `x` teilt sich das Zeichen mit dem Statuscode für
|
||||||
|
*fertig*, und genau eine Alternative einer XOR-Gruppe **soll** fertig werden —
|
||||||
|
`x [x] …` wäre also der Endzustand jeder entschiedenen Gruppe und stünde
|
||||||
|
dauerhaft in jedem Plan. Dazu kam ein zweiter, bis dahin unbenannter Befund:
|
||||||
|
Das Zerlegungszeichen wird ohne erzwungenes Leerzeichen erkannt (`\s*` in der
|
||||||
|
Referenz-Regex darf leer sein); ein Buchstabe als Gate frisst damit
|
||||||
|
Label-Anfänge (`XSS-Schutz` → Gate `X`, Label „SS-Schutz“).
|
||||||
|
|
||||||
|
`=` ist der einzige Kandidat **ohne jede** Kollision: kein Statuscode, kein
|
||||||
|
reserviertes Zeichen, keine Markdown-Bedeutung an dieser Position, auf DE-
|
||||||
|
(Shift+0) wie US-Layout (eigene Taste) direkt tippbar, nirgends Dead-Key. Seine
|
||||||
|
beiden Schwächen sind benannt und akzeptiert:
|
||||||
|
|
||||||
|
- **Die Mnemonik trägt sich nicht selbst** („genau eine“ muss die Legende
|
||||||
|
sagen) — aber das gilt für `|` („mindestens eine“) genauso; jedes Gate steht
|
||||||
|
ohnehin in der Legende.
|
||||||
|
- **Optisch steht `=` neben der konjunktiven Familie** (ein doppeltes `-`),
|
||||||
|
gehört aber semantisch zu `|`. Dagegen arbeiten zwei Mechanismen: Im Diagramm
|
||||||
|
bleiben die Linien gestrichelt-grau wie bei any-of (das Bild korrigiert die
|
||||||
|
Lesart sofort), und jede Mischung mit `=` in einer Gruppe gibt die
|
||||||
|
`mixedGate`-Warnung.
|
||||||
|
|
||||||
|
Die **Leerraum-Regel** (Gate `=` nur mit folgendem Leerraum, §11) ist die
|
||||||
|
erste ihrer Art; sie hält Labels wie `=SUMME(A1:B2)` heraus und wäre bei jedem
|
||||||
|
der Kandidaten nötig gewesen.
|
||||||
|
|
||||||
|
**Verworfene Kandidaten**, je am entscheidenden Kriterium gescheitert:
|
||||||
|
|
||||||
|
- **`x`** — siehe oben; die XOR-Mnemonik (für Informatiker stark) wiegt die
|
||||||
|
dauerhafte `x [x]`-Paarung nicht auf.
|
||||||
|
- **`^`** — XOR in C/Python, aber der Dead-Key schlechthin auf deutschen
|
||||||
|
Tastaturen (nicht nur Mac); ihn zu nehmen widerspräche dem im
|
||||||
|
`&tag`-Nachtrag festgehaltenen Kriterium. Zudem dieselbe Endzustands-
|
||||||
|
Kollision wie `x`, nur mit `[^]`: Per D30 befördert der Deploy die gewählte
|
||||||
|
Alternative auf `[^]` — `^ [^] …` stünde ausgerechnet im Vorzeigedokument.
|
||||||
|
- **`|1`** (Zweizeichen-Gate in der Pipe-Familie, „genau 1“) — semantisch die
|
||||||
|
ehrlichste Form und kollisionsfrei, dem Nutzer aber schlicht nicht gefällig;
|
||||||
|
Geschmack ist bei einem Zeichen, das man täglich tippt, ein zulässiges
|
||||||
|
Kriterium.
|
||||||
|
- **`/`** — das Alltags-Entweder/Oder (ja/nein, m/w/d); teilt sich die Glyphe
|
||||||
|
mit `[/]` *Durchstich* (immerhin nur ein Durchgangszustand) und mit
|
||||||
|
Pfad-Labels (`/api/…`).
|
||||||
|
- **`⊕`** — das echte XOR-Symbol, aber ohne Zeichenpicker auf keiner Tastatur
|
||||||
|
tippbar; der Moment des Tippens ist der Moment, in dem man nicht über Syntax
|
||||||
|
nachdenken will (D32).
|
||||||
|
- **`°`** — fehlt auf US-Layouts, und der kleine Kreis kollidierte semantisch
|
||||||
|
mit dem hohlen Kreis, der im Diagramm bereits *optional* bedeutet (D29).
|
||||||
|
|||||||
+1
-1
@@ -135,7 +135,7 @@ Pfad, der die Wahrheit sagt.
|
|||||||
Bearbeitungsstand des Knotens selbst. Effektiv fertig ist er erst, wenn auch
|
Bearbeitungsstand des Knotens selbst. Effektiv fertig ist er erst, wenn auch
|
||||||
seine Abhängigkeiten es sind. Der effektive Status wird gerechnet, nie
|
seine Abhängigkeiten es sind. Der effektive Status wird gerechnet, nie
|
||||||
geschrieben.
|
geschrieben.
|
||||||
- **XOR** (`x`) — neben „mindestens eine" (`|`) eine Gruppe, in der **genau
|
- **XOR** (`=`) — neben „mindestens eine" (`|`) eine Gruppe, in der **genau
|
||||||
eine** Alternative realisiert werden darf. Für die Pfadrechnung ändert das
|
eine** Alternative realisiert werden darf. Für die Pfadrechnung ändert das
|
||||||
nichts (die wählt bei `|` ohnehin eine); es kommt eine Regel hinzu, die
|
nichts (die wählt bei `|` ohnehin eine); es kommt eine Regel hinzu, die
|
||||||
verletzt werden kann und dann gemeldet wird.
|
verletzt werden kann und dann gemeldet wird.
|
||||||
|
|||||||
+15
-6
@@ -596,19 +596,28 @@ die Rechnung schwerer als heute — siehe D34.
|
|||||||
Zerlegungszeichen — und ob eingeklappte Teilbäume in Grafikexport und Druck
|
Zerlegungszeichen — und ob eingeklappte Teilbäume in Grafikexport und Druck
|
||||||
eingeklappt bleiben.
|
eingeklappt bleiben.
|
||||||
|
|
||||||
### XOR — genau eine Alternative (`x`)
|
### XOR — genau eine Alternative (`=`)
|
||||||
|
|
||||||
Neben `-` (all of), `+` (Zugabe) und `|` (any of, **mindestens** eine) soll es
|
Neben `-` (all of), `+` (Zugabe) und `|` (any of, **mindestens** eine) soll es
|
||||||
eine Gruppe geben, in der **genau eine** Alternative realisiert werden darf.
|
eine Gruppe geben, in der **genau eine** Alternative realisiert werden darf.
|
||||||
Vorgeschlagenes Zeichen: `x`, an derselben Stelle wie die übrigen
|
Zeichen: **`=`**, an derselben Stelle wie die übrigen Zerlegungszeichen
|
||||||
Zerlegungszeichen.
|
(entschieden; Begründung und verworfene Kandidaten: D34-Nachtrag).
|
||||||
|
|
||||||
- Für den günstigsten Pfad ändert das nichts: Der wählt bei `|` ohnehin genau
|
- Für den günstigsten Pfad ändert das nichts: Der wählt bei `|` ohnehin genau
|
||||||
eine (§9). XOR fügt eine **Regel** hinzu, die verletzt werden kann — zwei
|
eine (§9). XOR fügt eine **Regel** hinzu, die verletzt werden kann — zwei
|
||||||
realisierte Alternativen ergeben eine Warnung.
|
realisierte Alternativen ergeben eine Warnung.
|
||||||
- **Offen** bleibt das Zeichen: `x` kollidiert nicht beim Parsen (das
|
- `=` ist **disjunktiv** wie `|`; die Mischregel aus §3 gilt entsprechend:
|
||||||
Zerlegungszeichen steht vor der Statusbox), aber `x [x] …` liest sich
|
Eine Gruppe ist einheitlich `-`/`+`, einheitlich `|` oder einheitlich `=` —
|
||||||
schlecht, weil `x` zugleich der Statuscode für *fertig* ist.
|
jede Mischung mit `=` ist ungültig (`mixedGate`). Auch die Darstellung folgt
|
||||||
|
any-of (gestrichelt in Grau); wie die Gruppe zusätzlich als „genau eine"
|
||||||
|
gekennzeichnet wird, ist offen (z. B. eine kleine „1" an der Sammelleiste).
|
||||||
|
- **Leerraum-Regel:** Als Gate wird `=` nur mit **folgendem Leerraum**
|
||||||
|
erkannt — ein Label wie `=SUMME(A1:B2)` bleibt damit ein Label. `=` ist das
|
||||||
|
erste Gate, das diese Regel braucht; für `-`/`+`/`|` ändert sich nichts.
|
||||||
|
- Das ursprünglich vorgeschlagene `x` ist verworfen: `x [x] …` stünde als
|
||||||
|
Endzustand jeder entschiedenen Gruppe **dauerhaft** im Text (genau eine
|
||||||
|
Alternative soll ja fertig werden), und als Buchstabe kollidierte es ohne
|
||||||
|
Leerraum-Regel mit gewöhnlichen Labels (`XSS-Schutz` → Gate `X`).
|
||||||
|
|
||||||
### Knotenbeschreibungen
|
### Knotenbeschreibungen
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -82,6 +82,8 @@ entscheiden, **bevor** Code entsteht.
|
|||||||
- [ ] Querverbindungen zeichnen (eigene SVG-Ebene, optisch sekundär);
|
- [ ] Querverbindungen zeichnen (eigene SVG-Ebene, optisch sekundär);
|
||||||
bei ausgewähltem Knoten ein-/ausgehende hervorheben.
|
bei ausgewähltem Knoten ein-/ausgehende hervorheben.
|
||||||
- [ ] Faltmarken `>` / `<` parsen; interaktives Auf-/Zuklappen im Diagramm.
|
- [ ] Faltmarken `>` / `<` parsen; interaktives Auf-/Zuklappen im Diagramm.
|
||||||
- [ ] XOR-Gruppe (`x`): Zeichen endgültig wählen, parsen, Verletzung melden.
|
- [ ] XOR-Gruppe (`=`) parsen (nur mit folgendem Leerraum, Mischung →
|
||||||
|
`mixedGate`), zwei realisierte Alternativen melden.
|
||||||
|
→ Zeichen entschieden: `=` statt `x` (D34-Nachtrag).
|
||||||
- [ ] Knotenbeschreibungen: Schreibweise für kurze und lange Form festlegen
|
- [ ] Knotenbeschreibungen: Schreibweise für kurze und lange Form festlegen
|
||||||
(Einrückung ist bereits Hierarchie), dann Tooltip/Pop-up.
|
(Einrückung ist bereits Hierarchie), dann Tooltip/Pop-up.
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
- [?] Effective status: intrinsic, plus what it depends on (S)
|
- [?] Effective status: intrinsic, plus what it depends on (S)
|
||||||
- [?] Cycles are legal — they mean "finished together" (XS)
|
- [?] Cycles are legal — they mean "finished together" (XS)
|
||||||
- [ ] An id with no node behind it is a warning (XS)
|
- [ ] An id with no node behind it is a warning (XS)
|
||||||
- [?] XOR — exactly one alternative, not at least one (S)
|
- [?] XOR, = — exactly one alternative, not at least one (S)
|
||||||
- [?] Node descriptions, shown as a tooltip or pop-up (M)
|
- [?] Node descriptions, shown as a tooltip or pop-up (M)
|
||||||
- [?] A short text right at the node (S) %% indentation already means hierarchy
|
- [?] A short text right at the node (S) %% indentation already means hierarchy
|
||||||
- [?] A long block at the end, addressed by its id (S)
|
- [?] A long block at the end, addressed by its id (S)
|
||||||
|
|||||||
Reference in New Issue
Block a user