소시오그램

소시오그램이란

**소시오그램(sociogram)**은 집단 내부의 선택, 거부, 동맹 관계의 망을 시각화합니다. 누가 누구를 좋아하는지, 누가 고립되어 있는지, 어디서 파벌이 형성되는지를 보여줍니다. Jacob Moreno가 1934년 집단 치료의 임상 도구로 이 방법을 소개한 이후, 교실 교사(배제와 따돌림 감지), HR 팀(비공식 영향력 매핑), 조직 연구자들이 이를 채택하였습니다. 한 사람의 외부 환경을 중심으로 하는 에코맵과 달리, 소시오그램은 집단의 모든 구성원을 대칭적으로 취급합니다.

Schematex는 노드 역할과 엣지 유형에 대해 **모레노(1934) 소시오메트리 표기 방식**을 따르며, 감정가(valence), 방향, 가중치에 대한 현대 사회 네트워크 분석 표기법으로 확장됩니다. 이 페이지는 현재 파서가 허용하는 내용을 설명합니다.

sociogram·§ Moreno
↘ preview
100%
Sociogram: Group Therapy — Week 6 Sociogram with 7 members and 12 connections Group Therapy — Week 6 strong bond tension Dr. Park James Maria Lee Sarah Tom Nina ROLES Star (sociometric center) TIES Positive tie Negative tie Neutral tie
UTF-8 · LF · 21 lines · 473 chars✓ parsed·10.8 ms·9.7 KB SVG

1. 첫 번째 소시오그램

가장 작은 유용한 소시오그램: 네 사람, 세 가지 관계 유형.

sociogram·§ Moreno
↘ preview
100%
Sociogram: Study group Sociogram with 4 members and 3 connections Study group lab partners rivalry Alice Bob Carol Dave TIES Positive tie Negative tie
UTF-8 · LF · 8 lines · 194 chars✓ parsed·0.8 ms·5.5 KB SVG

사용법의 80%를 커버하는 네 가지 규칙:

  1. sociogram 키워드로 시작하고, 선택적으로 따옴표로 묶인 제목을 사용합니다.
  2. 각 사람은 노드입니다. id [label: "…"]로 명시적으로 선언하거나, 엣지에 처음 등장할 때 자동으로 생성됩니다.
  3. 엣지 연산자로 두 노드를 연결합니다. <-> (상호), -> (일방향), -x> (거부), -.- (중립). §3을 참조하십시오.
  4. 선택적으로 groupsconfig 줄을 선언하여 레이아웃과 색상을 제어합니다.

주석은 해당 줄의 맨 앞 #으로 시작해야 합니다.


2. 노드

노드 줄의 형식은 id [attr: value, …]입니다. 엣지에서 처음 참조될 때도 노드가 암묵적으로 생성되지만, 명시적 선언을 통해 레이블, 그룹, 역할을 설정할 수 있습니다.

ID 규칙. [a-zA-Z][a-zA-Z0-9_-]* 형식을 따라야 합니다. ID는 내부적으로 사용되며, label: 속성으로 표시 이름을 설정합니다.

노드 속성:

속성효과
label: "…"따옴표 문자열표시 이름 (기본값은 ID)
group: id그룹 ID색상 적용을 위해 노드를 그룹에 연결
role: …star, isolate, bridge, neglectee, rejected명시적 소시오메트리 역할 주석
size: …small, medium, large노드 크기 재정의
sociogram·§ Moreno
↘ preview
100%
Sociogram: Group roles demo Sociogram with 5 members and 5 connections Group roles demo Dr. Park James Nina Alex Sam ROLES Star (sociometric center) Isolate Neglectee TIES Positive tie
UTF-8 · LF · 12 lines · 321 chars✓ parsed·0.8 ms·7.2 KB SVG

3. 엣지

엣지 줄의 형식은 leftId OP rightId이며, 선택적으로 [label: "…", weight: N]을 추가합니다. 두 ID는 아직 선언되지 않은 경우 자동으로 노드로 등록됩니다.

3.1 방향 및 감정가

sociogram·§ Moreno
↘ preview
100%
Sociogram: Edge types Sociogram with 6 members and 6 connections Edge types chose B mutual rejects D mutual reject indifferent mutual neutral A B C D E F TIES Positive tie Negative tie Neutral tie
UTF-8 · LF · 17 lines · 351 chars✓ parsed·0.7 ms·7.4 KB SVG
연산자방향감정가의미
A -> B일방향긍정A가 B를 선택
A <- B일방향긍정B가 A를 선택 (B -> A와 동일)
A <-> B상호긍정서로 선택
A -- B비방향성긍정관계가 있으나 방향 미기록
A -x> B일방향부정A가 B를 거부
A <x- B일방향부정B가 A를 거부
A <x-> B상호부정상호 거부
A -x- B비방향성부정갈등, 방향 미상
A -.> B일방향중립A가 B에 무관심
A <.-> B상호중립상호 무관심
A -.- B비방향성중립중립적 관계

3.2 가중치 / 강도

가중치가 높을수록 선이 굵어집니다. 약식 연산자를 사용하거나 [weight: N]으로 명시적으로 재정의합니다.

가중치약식방향의미
2 (기본값)-> <-> -- -x> -.-모두표준 연결
3==> <== <==> ===일방향 / 상호 / 비방향성강함
4===> <=== <===>일방향 / 상호매우 강함
사용자 정의[weight: N]임의의 정수
sociogram·§ Moreno
↘ preview
100%
Sociogram: Relationship strengths Sociogram with 4 members and 4 connections Relationship strengths weight 2 (default) weight 3 (strong) weight 4 (very strong) weight 1 (weak) A B C D TIES Positive tie
UTF-8 · LF · 10 lines · 282 chars✓ parsed·0.5 ms·5.7 KB SVG

3.3 엣지 레이블

A -> B [label: "best friend"] — 레이블이 연결선에 표시됩니다.


4. 그룹

group 블록은 노드를 색상 및 레이아웃 클러스터링을 위한 명명된 하위 그룹으로 수집합니다.

그룹 문법:

  • group id [label: "…", color: "#hex"] — 그룹 헤더 줄.
  • 구성원 줄은 그 아래에 최소 4칸 들여쓰기, 줄당 하나의 노드.
  • 들여쓰기가 없는 줄(또는 다음 group)이 현재 그룹을 닫습니다.
  • 구성원에 자체 속성 지정 가능: anna [label: "Anna K.", size: large].

인라인으로도 할당할 수 있습니다: alice [group: girls].

sociogram·§ Moreno
↘ preview
100%
Sociogram: Classroom dynamics Sociogram with 8 members and 7 connections Classroom dynamics conflict cross-group Tom Jack Mike Leo Anna Beth Chloe Diana GROUPS Boys Girls TIES Positive tie Negative tie
UTF-8 · LF · 19 lines · 477 chars✓ parsed·10.0 ms·8.7 KB SVG

5. 설정

config: 줄로 레이아웃 및 시각적 인코딩을 조정합니다. 각 항목은 독립된 줄입니다.

설정 키기본값효과
layoutcircular, force-directed, concentriccircular배치 알고리즘
sizinguniform, in-degree, betweennessuniform지표 기반 노드 크기
coloringdefault, group, roledefault노드 색상 방식
highlight쉼표 목록: stars, isolates, cliquesstars,isolates강조 표시할 패턴

레이아웃 참고:

  • circular — 노드를 원 위에 균등 배치. 소규모 집단(≤15명)에 적합.
  • force-directed — 스프링 모델; 클러스터가 자동으로 형성됨. 뚜렷한 하위 집단이 있는 중간 규모 집단에 적합.
  • concentric — 내부 링에 인-디그리(in-degree)가 높은 노드 배치. 핵심-주변부 구조 표현에 적합.

Circular — 균일한 링 배치; 모든 노드가 동등하게 표시됨. 소규모 긴밀한 집단에 적합.

sociogram·§ Moreno
↘ preview
100%
Sociogram: Therapy group — circular Sociogram with 7 members and 10 connections Therapy group — circular Dr. Park James Maria Lee Sarah Tom Nina ROLES Star (sociometric center) Neglectee TIES Positive tie Negative tie
UTF-8 · LF · 19 lines · 411 chars✓ parsed·0.9 ms·9.1 KB SVG

Force-directed — 스프링 물리 시뮬레이션이 연결된 노드를 가깝게, 연결되지 않은 노드를 멀리 밀어냅니다. 하위 집단이 자연스럽게 클러스터를 형성합니다.

sociogram·§ Moreno
↘ preview
100%
Sociogram: Classroom dynamics — force-directed Sociogram with 8 members and 8 connections Classroom dynamics — force-directed conflict cross-group Tom Jack Mike Leo Anna Beth Chloe Diana GROUPS Boys Girls TIES Positive tie Negative tie
UTF-8 · LF · 20 lines · 507 chars✓ parsed·4.1 ms·8.9 KB SVG

Concentric — 인-디그리(in-degree) 순으로 정렬; 중심성이 높은 노드는 내부 링에, 주변부 노드는 외부 링에 배치됩니다.

sociogram·§ Moreno
↘ preview
100%
Sociogram: Informal influence — concentric Sociogram with 7 members and 9 connections Informal influence — concentric VP Eng Lead A Lead B Alice Bob Carol Dave TIES Positive tie
UTF-8 · LF · 19 lines · 387 chars✓ parsed·2.0 ms·8.0 KB SVG

6. 소시오메트리 역할

파서는 노드에 역할 주석을 저장합니다. 렌더러는 이를 사용하여 시각적 배지를 적용합니다. star는 별 마커, isolate는 점선 테두리 등입니다.

역할의미
star많은 사람에게 선택받는 중심 인물 (높은 인-디그리)
isolate연결이 전혀 없음
neglectee타인에게 다가가지만 선택받지 못함
rejected여러 구성원에게 거부 엣지를 받음
bridge별개의 두 클러스터를 연결
sociogram·§ Moreno
↘ preview
100%
Sociogram: Role annotations Sociogram with 5 members and 6 connections Role annotations Maria Sam New Kid Alex Pat ROLES Star (sociometric center) Isolate Neglectee Rejected TIES Positive tie Negative tie
UTF-8 · LF · 13 lines · 384 chars✓ parsed·0.7 ms·8.1 KB SVG

7. 레이블 및 주석

  • 제목: sociogram "Study group" — 첫 번째 줄에만.
  • 노드 레이블: alice [label: "Alice K."].
  • 그룹 레이블: group boys [label: "Boys"].
  • 엣지 레이블: alice -> bob [label: "lab partners"].
  • 주석: 줄의 앞부분(선행 공백 이후) #.

8. 예약어 및 이스케이프

줄 시작 예약어: sociogram (헤더), group, config:.

예약 연산자 토큰 — ID 내에 다음 시퀀스 사용을 피하십시오: ->, <-, <->, --, ===, ==>, <==, <===>, -x>, <x-, -x-, <x->, -.>, <.->, -.-.

공백이 포함된 문자열label:color: 값에서 큰따옴표로 묶어야 합니다.


9. 흔한 실수

작성한 내용파서 메시지수정 방법
한 그룹 줄에 tom; jack; miketom;이 ID 정규식에 실패 — 조용히 무시됨줄당 하나의 노드, 각각 ≥4칸 들여쓰기
그룹 구성원 2칸 들여쓰기그룹 구성원으로 처리되지 않음 (파서는 ≥4칸 요구)4칸 이상 들여쓰기 사용
alice <> bob일치하는 연산자 없음 — 엣지로 파싱되지 않음상호 긍정에 <-> 사용
config: layout = grid알 수 없는 값이 조용히 무시됨; 레이아웃이 circular로 유지circular, force-directed, concentric 중 하나 사용
ID에 공백이 있는 노드: dr park파서가 dr을 ID로, park를 독립 토큰으로 처리밑줄 사용: dr_park [label: "Dr. Park"]

10. 문법 (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 NEWLINE

공식 소스: src/diagrams/sociogram/parser.ts. 이 내용이 파서와 다를 경우 파서가 기준입니다. 이슈를 열어 주십시오.


11. 표준 준수

Schematex 소시오그램은 노드 역할(star, isolate, neglectee) 및 방향적 선택 시맨틱에 대해 모레노(1934) 소시오메트리 표기 방식을 따릅니다. 엣지 연산자 세트는 현대 사회 네트워크 분석 관행(Hanneman & Riddle, 2005)에 따라 감정가(긍정/부정/중립) 및 가중치 레벨로 확장됩니다.

현재 구현된 사항:

  • ✅ 방향성, 상호, 비방향성 엣지
  • ✅ 긍정, 부정, 중립 감정가 연산자
  • ✅ 4단계 가중치 (1–4), 약식 연산자 및 [weight: N]
  • ✅ 색상이 있는 그룹
  • ✅ 노드 역할 선언 (star, isolate, bridge, neglectee, rejected)
  • ✅ 세 가지 레이아웃: circular, force-directed, concentric
  • ✅ 세 가지 크기 모드: uniform, in-degree, betweenness
  • ⏳ 자동 감지 클리크 강조 표시 — 음영 처리된 볼록 껍질 (§13 참조)
  • ⏳ 소셜 아톰 뷰 (자아 중심 레이아웃)

참고 문헌:

  • 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. 관련 예제

sociogram·§ Moreno 1934
Sociogram: Playground Dynamics Sociogram with 8 members and 10 connections Playground Dynamics conflict tom jack mike leo anna beth chloe diana GROUPS Boys Girls TIES Positive tie Negative tie Neutral tie
Playground dynamics
Moreno sociogram of classroom playground dynamics — mutual friendships, one-way choices, and peer conflicts mapped by gender group using force-directed layout.
education
sociogram·§ Moreno 1934
Sociogram: Engineering team — informal influence Sociogram with 10 members and 10 connections Engineering team — informal influence alex sam priya jordan kim tao lee ravi nina dev GROUPS Tech leads Senior ICs Junior TIES Positive tie Neutral tie
Engineering team influence mapping
Informal influence map of an engineering team showing tech leads, senior ICs, and junior members — reveals bridging nodes and isolated individuals.
business & operations

13. 로드맵

계획 중 — 아직 파싱 불가. 오늘 생성된 DSL에서는 사용하지 마십시오. 파서가 거부하거나 무시합니다.

  • 자동 감지 클리크 강조 표시 — 3명 이상의 상호 선택 하위 집단 주변에 음영 처리된 볼록 껍질.
  • 브리지 자동 감지 — 명시적 선언 없이 매개 중심성(betweenness centrality)에서 role: bridge를 추론.
  • 소셜 아톰 뷰 — 지명된 하나의 노드가 중심에 위치하는 자아 중심 레이아웃.
  • 상호성 행렬 내보내기 — 다이어그램과 함께 구조화된 표 출력.

더 빠른 구현이 필요하시면 GitHub 이슈에서 추적하십시오.

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.