一键导入
interactive-graph-exercise
챕터별 인터랙티브 실습(그래프 빌드·드래그앤드롭 분류·트리플 빌더·매칭·쿼리 빌더·추론 시뮬레이션·퀴즈) 설계 패턴과 정답 검증 로직 작성 가이드. exercise JSON 스키마, 힌트 시스템, 부분 점수, 검증 함수 명세 작성 시 사용.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
챕터별 인터랙티브 실습(그래프 빌드·드래그앤드롭 분류·트리플 빌더·매칭·쿼리 빌더·추론 시뮬레이션·퀴즈) 설계 패턴과 정답 검증 로직 작성 가이드. exercise JSON 스키마, 힌트 시스템, 부분 점수, 검증 함수 명세 작성 시 사용.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | interactive-graph-exercise |
| description | 챕터별 인터랙티브 실습(그래프 빌드·드래그앤드롭 분류·트리플 빌더·매칭·쿼리 빌더·추론 시뮬레이션·퀴즈) 설계 패턴과 정답 검증 로직 작성 가이드. exercise JSON 스키마, 힌트 시스템, 부분 점수, 검증 함수 명세 작성 시 사용. |
학습자가 "직접 해보고 정답을 만들어내는" 액티브 러닝 실습을 설계한다.
빈 캔버스 또는 부분 그래프에 학습자가 노드/엣지를 추가하여 정답 구조를 완성.
{
"type": "graph-build",
"title": "피카츄의 진화 체인을 그려보세요",
"init": {
"givenNodes": [
{ "id": "n1", "label": "피츄", "type": "instance" },
{ "id": "n2", "label": "피카츄", "type": "instance" },
{ "id": "n3", "label": "라이츄", "type": "instance" }
],
"givenEdges": [],
"palette": {
"edges": [{ "label": "진화함", "kind": "object" }, { "label": "타입을_가짐", "kind": "object" }]
}
},
"validation": {
"kind": "graph-isomorphism",
"expectedEdges": [
{ "from": "피츄", "to": "피카츄", "label": "진화함" },
{ "from": "피카츄", "to": "라이츄", "label": "진화함" }
]
},
"hints": [
"진화 순서를 기억해 보세요.",
"피츄 → 피카츄 → 라이츄 순서로 진화합니다.",
"두 개의 엣지가 필요해요."
]
}
포켓몬 카드를 올바른 클래스 박스로 끌어놓기.
{
"type": "drag-classify",
"title": "각 포켓몬을 올바른 타입 박스에 넣으세요",
"init": {
"items": [
{ "id": "피카츄", "label": "피카츄" },
{ "id": "리자몽", "label": "리자몽" },
{ "id": "어니부기", "label": "어니부기" }
],
"buckets": [
{ "id": "전기", "label": "전기 타입" },
{ "id": "불꽃", "label": "불꽃 타입" },
{ "id": "물", "label": "물 타입" }
]
},
"validation": {
"kind": "bucket-assignment",
"expected": {
"피카츄": ["전기"],
"리자몽": ["불꽃", "비행"],
"어니부기": ["물"]
},
"partialCredit": true
}
}
3개 드롭다운(주어/술어/목적어)으로 트리플 만들기.
{
"type": "triple-build",
"title": "다음 사실을 트리플로 표현하세요: '피카츄는 전기 타입이다'",
"init": {
"subjects": ["피카츄", "라이츄", "전기", "타입"],
"predicates": ["타입을_가짐", "진화함", "ako"],
"objects": ["전기", "피카츄", "포켓몬"]
},
"validation": {
"kind": "exact-match",
"expected": ["피카츄", "타입을_가짐", "전기"]
}
}
두 컬럼을 짝짓기. 선 긋기 또는 드롭다운.
{
"type": "matching",
"title": "각 포켓몬과 서식지를 짝지으세요",
"init": {
"left": ["고라파덕", "이상해씨", "메타몽"],
"right": ["연못", "초원", "동굴"]
},
"validation": {
"kind": "matching-pairs",
"expected": { "고라파덕": "연못", "이상해씨": "초원", "메타몽": "동굴" }
}
}
자연어 질문 → 비주얼 SPARQL 빌더로 작성.
{
"type": "query-build",
"title": "'모든 불꽃 타입 포켓몬 찾기' 쿼리를 만들어보세요",
"init": {
"queryShape": "SELECT ?p WHERE { ?p ?prop ?obj }",
"options": {
"?prop": ["poke:hasType", "poke:evolvesTo", "rdf:type"],
"?obj": ["poke:type-fire", "poke:Pokemon", "poke:type-water"]
}
},
"validation": {
"kind": "query-match",
"expected": { "?prop": "poke:hasType", "?obj": "poke:type-fire" }
}
}
명시 트리플과 규칙이 주어졌을 때 도출 트리플을 예측.
{
"type": "reasoning-sim",
"title": "다음 규칙을 적용하면 어떤 트리플이 새로 도출될까요?",
"init": {
"givenTriples": [
["피츄", "진화함", "피카츄"],
["피카츄", "진화함", "라이츄"]
],
"rule": {
"if": [["?a", "진화함", "?b"], ["?b", "진화함", "?c"]],
"then": [["?a", "결국_진화함", "?c"]]
},
"candidateAnswers": [
["피츄", "결국_진화함", "라이츄"],
["피카츄", "결국_진화함", "피카츄"],
["라이츄", "결국_진화함", "피츄"]
]
},
"validation": {
"kind": "select-correct",
"correct": [0]
}
}
보조 확인용. 챕터당 1~2개만 사용.
| kind | 설명 | 사용 시점 |
|---|---|---|
exact-match | 배열·객체 깊은 일치 | 트리플 빌더, 단일 정답 |
set-match | 순서 무관 집합 일치 | 여러 트리플 동시 입력 |
subset-match | 정답의 부분집합이면 통과 | 부분 점수 가능한 그래프 빌드 |
bucket-assignment | 항목→버킷 매핑 검증 | 드래그 분류 |
matching-pairs | 키-값 쌍 일치 | 매칭 |
graph-isomorphism | 그래프 구조 동형 | 그래프 빌드 (노드 ID 무관) |
query-match | 쿼리 변수 바인딩 일치 | SPARQL 빌더 |
select-correct | 선택지 인덱스 일치 | 추론 시뮬레이션 객관식 |
function:{name} | 커스텀 함수 호출 | 복잡한 정답 검증 |
각 실습은 3단계 힌트:
마지막 힌트는 정답 직전. "정답을 보여주세요" 버튼은 별도(학습 포기 후).
// 사용자가 답을 제출하면
const result = validate(userAnswer, exercise.validation);
if (result.correct) {
showSuccess(exercise.successMessage);
unlockNextExercise();
saveProgress();
} else if (result.partial) {
showPartial(`${result.score}/${result.total} 맞췄어요! 나머지를 더 시도해보세요.`);
highlightIncorrect(result.incorrectItems);
} else {
showIncorrect();
offerHint();
}
graph-build, drag-classify, set-match는 부분 점수 가능. 학습자가 100% 정답이 아니어도 진척감을 느끼도록.
35개 실습. 첫 12개는 매우 쉽게(워밍업), 마지막은 챕터의 핵심 개념을 종합 적용하는 도전 과제.
실습 1: quiz (개념 확인, 1분)
실습 2: drag-classify (단순 적용, 3분)
실습 3: triple-build 또는 graph-build (중심 활동, 5~7분)
실습 4 (옵션): reasoning-sim 또는 query-build (응용, 7~10분)
실습 정답은 항상 _workspace/ontology/triples.json 또는 inference-rules.json을 기반으로 한다. 직접 손으로 적은 정답은 데이터와 불일치 가능 — QA에서 잡힘.
Cytoscape.js 기반 인터랙티브 온톨로지 그래프 렌더링·노드 추가·엣지 그리기·추론 애니메이션·모바일 터치 지원 구현 가이드. 그래프 슬라이스 표시, 노드 스타일링(클래스/인스턴스/리터럴 시각 구분), 레이아웃 선택, 핀치줌/롱프레스 메뉴 작업 시 사용.
온톨로지·기술 개념을 한국어 비전공 초보자에게 쉽고 친근하게 전달하는 글쓰기 가이드. 정중체 톤, 전문 용어 풀이 3종 세트, 비유 활용, 인지 부하 분산, 단락 호흡, 모바일 가독성을 위한 챕터 본문 작성 시 사용.
온톨로지를 전혀 모르는 초보자를 위한 12~15개 챕터 커리큘럼 설계 가이드. 클래스·인스턴스·트리플·계층·SPARQL·OWL·추론·상위 온톨로지를 점진적 학습 흐름으로 구성, 챕터별 인지 부하 관리, 선행 의존성 정의, 학습 목표 작성에 사용.
PokeAPI에서 전 세대 포켓몬 한국어 데이터를 수집·정규화하여 임베드용 JSON 번들을 만드는 빌드 파이프라인을 작성·수정·실행할 때 사용. fetch-data.js 빌드 스크립트, ko 로케일 추출, 진화체인 정규화, 디스크 캐싱, 동시성/재시도 처리, _workspace/data/ 산출물 생성 작업이 필요할 때 반드시 이 스킬을 호출할 것.
포켓몬 PokeAPI 데이터를 한국어로 받아 온톨로지 학습 프로그램(단일 HTML, 모바일 반응형, 12~15 챕터, 그래프 시각화, 인터랙티브 실습)을 구축하는 전체 워크플로우 오케스트레이터. "포켓몬 온톨로지 만들어줘", "온톨로지 학습 프로그램 빌드", "한국어 포켓몬 그래프 학습", "다시 빌드", "챕터 N만 다시", "데이터 새로 받아줘", "특정 챕터 수정", "QA 다시 돌려줘", "모바일 깨짐 고쳐줘" 같은 요청 시 반드시 이 스킬을 사용할 것.
포켓몬 데이터를 RDF 트리플과 OWL 클래스·속성·제약·추론규칙으로 변환하는 매핑 가이드. IRI 네임스페이스 컨벤션, 클래스 계층 설계, 객체/데이터 속성 구분, Turtle 직렬화, 챕터별 그래프 슬라이스 생성에 사용.