Soziogramm
Über Soziogramme
Ein Soziogramm bildet das Geflecht aus Wahlen, Ablehnungen und Allianzen innerhalb einer Gruppe ab – wer wen mag, wer isoliert ist, wo Cliquen entstehen. Jacob Moreno führte die Methode 1934 als klinisches Werkzeug für die Gruppentherapie ein; seitdem wird sie von Lehrern (zur Erkennung von Ausgrenzung und Mobbing), HR-Teams (informelle Einflussanalyse) und Organisationsforschern eingesetzt. Im Gegensatz zu einer Ecomap, die sich auf das externe Umfeld einer Person konzentriert, behandelt ein Soziogramm jedes Mitglied der Gruppe symmetrisch.
Schematex folgt den Moreno (1934) Soziometrie-Konventionen für Knotenrollen und Kantentypen, erweitert durch moderne Notationen der sozialen Netzwerkanalyse für Valenz, Richtung und Gewicht. Diese Seite dokumentiert, was der Parser heute akzeptiert.
1. Ihr erstes Soziogramm
Das kleinste nützliche Soziogramm: vier Personen, drei verschiedene Beziehungstypen.
Vier Regeln decken 80 % der Anwendungsfälle ab:
- Beginnen Sie mit dem Schlüsselwort
sociogram, optional gefolgt von einem zitierten Titel. - Jede Person ist ein Knoten – explizit mit
id [label: "…"]deklariert oder automatisch erstellt, wenn sie zum ersten Mal in einer Kante erscheint. - Verbinden Sie zwei Knoten mit einem Kanten-Operator –
<->(gegenseitig),->(einseitig),-x>(Ablehnung),-.-(neutral). Siehe §3. - Deklarieren Sie optional Gruppen und config-Zeilen zur Steuerung von Layout und Farbe.
Kommentare müssen mit
#auf einer eigenen Zeile beginnen.
2. Knoten
Eine Knotenzeile lautet id [attr: value, …]. Knoten werden auch implizit erstellt, wenn sie zum ersten Mal in einer Kante referenziert werden – aber die explizite Deklaration ermöglicht das Setzen von Labels, Gruppen und Rollen.
ID-Regeln. Muss [a-zA-Z][a-zA-Z0-9_-]* entsprechen. Die ID wird intern verwendet; das label:-Attribut legt den Anzeigenamen fest.
Knotenattribute:
| Attribut | Werte | Wirkung |
|---|---|---|
label: "…" | Zeichenkette in Anführungszeichen | Anzeigename (Standard: die ID) |
group: id | Gruppen-ID | Ordnet den Knoten einer Gruppe zur Farbgebung zu |
role: … | star, isolate, bridge, neglectee, rejected | Explizite soziometrische Rollenannotation |
size: … | small, medium, large | Knotengrößen-Override |
3. Kanten
Eine Kantenzeile lautet leftId OP rightId, optional gefolgt von [label: "…", weight: N]. Beide IDs werden automatisch als Knoten registriert, wenn sie noch nicht deklariert sind.
3.1 Richtung und Valenz
| Operator | Richtung | Valenz | Bedeutung |
|---|---|---|---|
A -> B | einseitig | positiv | A wählt B |
A <- B | einseitig | positiv | B wählt A (entspricht B -> A) |
A <-> B | gegenseitig | positiv | Beide wählen einander |
A -- B | ungerichtet | positiv | Beziehung bekannt; Richtung nicht erfasst |
A -x> B | einseitig | negativ | A lehnt B ab |
A <x- B | einseitig | negativ | B lehnt A ab |
A <x-> B | gegenseitig | negativ | Gegenseitige Ablehnung |
A -x- B | ungerichtet | negativ | Konflikt; Richtung unbekannt |
A -.> B | einseitig | neutral | A ist B gegenüber gleichgültig |
A <.-> B | gegenseitig | neutral | Gegenseitige Gleichgültigkeit |
A -.- B | ungerichtet | neutral | Neutrale Beziehung |
3.2 Gewicht / Stärke
Höheres Gewicht = dickere Linie. Verwenden Sie die Kurzschreibweise oder überschreiben Sie explizit mit [weight: N].
| Gewicht | Kurzschreibweise | Richtung | Bedeutung |
|---|---|---|---|
| 2 (Standard) | -> <-> -- -x> -.- | beliebig | Standardverbindung |
| 3 | ==> <== <==> === | einseitig / gegenseitig / ungerichtet | Stark |
| 4 | ===> <=== <===> | einseitig / gegenseitig | Sehr stark |
| benutzerdefiniert | [weight: N] | — | Beliebige ganze Zahl |
3.3 Kantenbeschriftungen
A -> B [label: "best friend"] – das Label erscheint auf der Verbindungslinie.
4. Gruppen
Ein group-Block fasst Knoten zu einer benannten Untergruppe für Farbgebung und Layout-Clustering zusammen.
Gruppen-Syntax:
group id [label: "…", color: "#hex"]– die Gruppen-Kopfzeile.- Mitgliedszeilen folgen, jeweils mit mindestens 4 Leerzeichen eingerückt, ein Knoten pro Zeile.
- Eine nicht eingerückte Zeile (oder die nächste
group) schließt die aktuelle Gruppe. - Mitglieder können eigene Eigenschaften tragen:
anna [label: "Anna K.", size: large].
Knoten können auch inline zugewiesen werden: alice [group: girls].
5. Konfiguration
config:-Zeilen steuern Layout und visuelle Kodierung. Jede steht auf einer eigenen Zeile.
| Config-Schlüssel | Werte | Standard | Wirkung |
|---|---|---|---|
layout | circular, force-directed, concentric | circular | Platzierungsalgorithmus |
sizing | uniform, in-degree, betweenness | uniform | Knotengröße nach Metrik |
coloring | default, group, role | default | Knotenfarbschema |
highlight | Kommaliste: stars, isolates, cliques | stars,isolates | Welche Muster annotiert werden |
Layout-Hinweise:
circular– Knoten gleichmäßig auf einem Ring verteilt. Am besten für kleine Gruppen (≤15).force-directed– Federmodell; Cluster entstehen automatisch. Am besten für mittelgroße Gruppen mit deutlichen Untergruppen.concentric– innere Ringe halten Knoten mit hohem Eingangsgrad. Am besten zur Darstellung von Kern-Peripherie-Strukturen.
Circular – einheitliche Ringplatzierung; jeder Knoten gleich sichtbar. Am besten für kleine, eng verbundene Gruppen.
Force-directed – Federkräfte ziehen verbundene Knoten zusammen und stoßen nicht verbundene auseinander. Untergruppen clustern sich organisch.
Concentric – Knoten nach Eingangsgrad sortiert; Knoten mit hoher Zentralität erscheinen auf inneren Ringen, periphere Knoten auf äußeren Ringen.
6. Soziometrische Rollen
Der Parser speichert Rollenannotationen auf Knoten. Der Renderer nutzt sie zur Anwendung visueller Abzeichen – ein Stern-Marker für star, ein gestrichelter Rahmen für isolate und so weiter.
| Rolle | Bedeutung |
|---|---|
star | Zentrale Figur, von vielen gewählt (hoher Eingangsgrad) |
isolate | Keine Verbindungen ein oder aus |
neglectee | Wendet sich an andere, erhält aber keine Wahlen |
rejected | Erhält Ablehnungskanten von mehreren Mitgliedern |
bridge | Verbindet zwei ansonsten getrennte Cluster |
7. Beschriftungen & Kommentare
- Titel:
sociogram "Study group"– nur erste Zeile. - Knotenbezeichnung:
alice [label: "Alice K."]. - Gruppenbezeichnung:
group boys [label: "Boys"]. - Kantenbeschriftung:
alice -> bob [label: "lab partners"]. - Kommentare:
#am Anfang einer Zeile (nach führenden Leerzeichen).
8. Reservierte Wörter & Escaping
Am Zeilenanfang reserviert: sociogram (Header), group, config:.
Reservierte Operator-Token – vermeiden Sie diese Zeichenfolgen innerhalb von IDs: ->, <-, <->, --, ===, ==>, <==, <===>, -x>, <x-, -x-, <x->, -.>, <.->, -.-.
Zeichenketten mit Leerzeichen müssen in label:- und color:-Werten in doppelten Anführungszeichen stehen.
9. Häufige Fehler
| Geschrieben | Parser-Meldung | Korrektur |
|---|---|---|
tom; jack; mike auf einer Gruppenzeile | tom; schlägt beim ID-Regex fehl – wird stillschweigend ignoriert | Ein Knoten pro Zeile, jeweils mit ≥4 Leerzeichen eingerückt |
| Gruppenelemente mit 2 Leerzeichen eingerückt | Nicht als Gruppenelemente behandelt (Parser erfordert ≥4) | 4+ Leerzeichen Einrückung verwenden |
alice <> bob | Kein passender Operator – nicht als Kante geparst | <-> für gegenseitig positiv verwenden |
config: layout = grid | Unbekannter Wert wird stillschweigend ignoriert; Layout bleibt circular | circular, force-directed oder concentric verwenden |
Knoten mit Leerzeichen in der ID: dr park | Parser nimmt dr als ID und park als abgesprengtes Token | Unterstrich verwenden: dr_park [label: "Dr. Park"] |
10. Grammatik (EBNF)
document = header (blank | comment | config | group-block | edge | node)*
header = "sociogram" ( WS quoted-string )? NEWLINE
quoted-string = '"' any-char-but-quote* '"'
config = "config:" WS key WS "=" WS value NEWLINE
key = "layout" | "sizing" | "coloring" | "highlight"
group-block = "group" WS id ( "[" group-attrs "]" )? NEWLINE
( INDENT≥4 member-line )*
member-line = id ( "[" node-attrs "]" )? NEWLINE
group-attrs = group-attr ("," group-attr)*
group-attr = "label:" quoted-string | "color:" quoted-string
node = id ( "[" node-attrs "]" )? NEWLINE
node-attrs = node-attr ("," node-attr)*
node-attr = "label:" quoted-string
| "group:" id
| "role:" role
| "size:" ("small" | "medium" | "large")
edge = id WS op WS id ( "[" edge-attrs "]" )? NEWLINE
edge-attrs = edge-attr ("," edge-attr)*
edge-attr = "label:" quoted-string | "weight:" number
op = // positive
"<===>" | "===>" | "<==="
| "<==>"|"==>"|"<=="
| "===" | "<->" | "->" | "<-" | "--"
// negative
| "<x->" | "-x>" | "<x-" | "-x-"
// neutral
| "<.->" | "-\.>" | "-.-"
role = "star" | "isolate" | "bridge" | "neglectee" | "rejected"
id = [a-zA-Z] [a-zA-Z0-9_-]*
comment = "#" any NEWLINEMaßgebliche Quelle: src/diagrams/sociogram/parser.ts. Falls dies vom Parser abweicht, hat der Parser Vorrang – bitte öffnen Sie ein Issue.
11. Standardkonformität
Schematex-Soziogramme folgen den Moreno (1934) Soziometrie-Konventionen für Knotenrollen (star, isolate, neglectee) und gerichtete Wahlsemantik. Das Kantenkoperat-Set ist mit Valenz (positiv / negativ / neutral) und Gewichtsstufen nach moderner sozialer Netzwerkanalyse-Praxis erweitert (Hanneman & Riddle, 2005).
Was heute implementiert ist:
- ✅ Gerichtete, gegenseitige und ungerichtete Kanten
- ✅ Positive, negative und neutrale Valenz-Operatoren
- ✅ Vier Gewichtsstufen (1–4) mit Kurzschreibweise und
[weight: N] - ✅ Gruppen mit Farbe
- ✅ Knotenrollendeklarationen (
star,isolate,bridge,neglectee,rejected) - ✅ Drei Layouts: circular, force-directed, concentric
- ✅ Drei Größenmodi: uniform, in-degree, betweenness
- ⏳ Automatisch erkannte Clique-Hervorhebung – schattierte konvexe Hülle (siehe §13)
- ⏳ Social-Atom-Ansicht (ego-zentriertes Layout)
Referenzen:
- Moreno, J.L. (1934). Who Shall Survive? Foundations of Sociometry, Group Psychotherapy and Sociodrama. Beacon House.
- Hanneman, R.A. & Riddle, M. (2005). Introduction to Social Network Methods. UC Riverside.
12. Verwandte Beispiele
13. Roadmap
Geplant – noch nicht parsebar. Verwenden Sie diese heute nicht in generiertem DSL; der Parser wird sie ablehnen oder ignorieren.
- Automatisch erkannte Clique-Hervorhebung – schattierte konvexe Hülle um Untergruppen mit gegenseitiger Wahl von ≥3 Mitgliedern.
- Automatische Bridge-Erkennung –
role: bridgewird aus der Betweenness-Zentralität abgeleitet, ohne explizite Deklaration. - Social-Atom-Ansicht – ego-zentriertes Layout, bei dem ein nominierter Knoten im Mittelpunkt steht.
- Reziprozitätsmatrix-Export – strukturierte Tabellenausgabe neben dem Diagramm.
Verfolgen Sie die GitHub-Issues, wenn Sie eines davon früher benötigen.
Found this useful?
Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.