대한민국 2022 개정 교육과정의 중학교와 고등학교 전체를 하나의 의미 체계로 탐색하되, middle·high·bridges를 독립 검증·릴리스하는 학습 온톨로지다.
현재 릴리스는 v0.5.0-candidate다. NCIC 공식 PDF 38개에서 확인한 714개 중학교 성취기준과 50,749개 고등학교 성취기준을 과목·영역(Domain)·PDF 해시·페이지 locator에 연결한다. 공식 원문은 포함하지 않는다.
v0.5부터 학습 관계는 공식 문서가 직접 뒷받침하는 것만 수록한다. 이전 릴리스의 문서 배열 기반 탐색 순서(저장소 작성 52,191건)는 전면 삭제했다. 남은 모든 관계는 내용 체계표의 학년(군) 진행, 성취기준 해설·적용 시 고려 사항의 명시적 선행 지목, 교과 설계의 명시적 연계 문장 중 하나를 근거로 가지며 인쇄 쪽번호 locator를 포함한다. internal-reviewed는 저장소 내부 검토를 뜻하며 교육부·교과 전문가 승인을 뜻하지 않는다.
| 구분 | 중학교 | 고교 비직업계 | 고교 직업계 전문교과 |
|---|---|---|---|
| 과목 | 24 | 231 | 528 |
| 영역 | 149 | 689 | 4,480 |
| 성취기준 | 714 | 3,124 | 47,625 |
| 세부 주제 | 2,160 | 3,124 | 47,625 |
공식 근거 학습 관계는 다음과 같다. 근거가 없는 과목은 관계 0건이 정상이며, 이는 공식 문서가 해당 과목의 선수 관계를 명시하지 않는다는 뜻이다.
| 관계 | 건수 | 근거 |
|---|---|---|
| 중학교 성취기준 선수 관계 | 56 | 내용 체계표 학년 진행, 해설 명시 (15/24 과목) |
| 고등학교 성취기준 선수 관계 | 469 | 내용 체계·과목 설계, 해설 명시 (179/759 과목) |
| 고등학교 과목 연계(토픽 투영) | 39 | 교과 설계의 연계·심화 설명 |
| 고등학교 과목 관계 | 39 | 교과 설계의 연계·심화 설명 |
| 중→고 주제 전이 | 175 | 교과별 과목 성격·해설의 명시적 연계 |
| 초등→중학교 전이 | 290 | 내용 체계표의 초→중 학년군 진행, 해설 명시 |
고등학교 전체 합계는 34개 교과군, 759개 과목, 5,169개 영역, 50,749개 성취기준이다. 이 중 직업계 전문교과가 고등학교 성취기준의 93.8%이므로 중학교와 고등학교 총계를 그대로 비교하지 않는다.
고등학교 759개 과목에는 공통·일반 선택·진로 선택·융합 선택, 교양·계열 선택, 전문 공통·전공 일반·전공 실무 과목이 포함된다. 같은 과목의 별책 내 성취기준 접두부 차이는 별도 과목으로 세지 않으며, 성취기준 수가 많다고 과목의 중요도나 난이도가 높다는 뜻은 아니다.
중학교는 공통 기반과 학년군 구조가 중심이고, 고등학교는 과목 범주·학점·선택·전문 프로그램 구조가 중심이다. 따라서 의미 코어와 UI는 공유하지만 데이터 제품은 아래처럼 분리했다.
data/kr/middle: 중학교 과목·영역·성취기준·주제data/kr/high: 고등학교 과목·학점 규칙·선택·경로·성취기준·관계data/kr/bridges: 중학교→고등학교 전이와 양쪽 릴리스 버전 핀
이 구조는 한 저장소의 일관성을 유지하면서도 한 학교급만 독립 검수하거나 교체할 수 있다.
sources/official: 현행 고시 선택 근거, 첨부 번호, 파일 크기, SHA-256, 페이지 수 receiptschema: 공통·중학교·고등학교·bridge·공식 원문 계약data/kr: 세 정규화 JSON 데이터 제품과 통합 인벤토리 보고서ontology: OWL/RDFS/SKOS TBox, JSON-LD context, SHACL, SCQ-01~20, 양성·적대 fixturedist/ontology: 168,523개 노드·1,881,921개 트리플의 결정적 JSON-LD/Turtle ABox와 manifestui: 학교급→교과군→과목→영역→성취기준/주제→근거, 중→고 전이, 비교, 예시 경로 UIdist/{middle,high,bridges,bundle,ui}: 릴리스별 SHA-256 manifest
bun install --frozen-lockfile
bun run setup:ontology
bun run verify
bun run serve브라우저에서 http://127.0.0.1:54321을 열면 된다. verify는 데이터 schema·참조, JSON-LD↔Turtle 전체 RDF 동형성, 전체 ABox SHACL Advanced, 20개 SPARQL 실제 결과, 10개 적대 fixture, 콘텐츠·권리 경계, 테스트, 모든 manifest 해시를 확인한다. 최초 실행 전 bun run setup:ontology로 Python 형식 검증 환경을 만든다.
공식 PDF를 다시 내려받아 전체를 재현하려면 다음을 실행한다.
bun run rebuild:all
bun run verify:officialsources/official/files와 sources/official/text는 문서 권리 검토 전까지 배포하지 않으며 로컬 재현 캐시로만 사용한다.
공개 Git 저장소는 재현 가능한 소스와 정규화 데이터만 추적한다. GitHub 단일 파일 제한을 넘는 RDF ABox와 UI 상세 데이터, dist 매니페스트는 각각 bun run build:ontology, bun run build:ui, bun run build로 재생성하며 커밋하지 않는다. 공식 PDF와 추출 원문도 공개 저장소에 포함하지 않는다.
Course는 국가 교육과정에 정의된 과목이며 특정 학교의 실제 개설을 뜻하지 않는다.- 국가 과목 정의에 없는 학년·학기를 임의로 채우지 않는다.
- 모든 학습 관계는
basisKind: official-source이며 인쇄 쪽번호 근거를 가진다. 문서 배열 순서나 저장소 추론으로 만든 관계(repository-authored)는 스키마 수준에서 거부된다. - 기계적 파생 요약·과목별 facet 주제·경로는 여전히 저장소 생성물이며
candidate·mechanical-derivative로 표시된다. 공식 근거 원칙은 관계에 적용된 것이고, 주제 분해·요약의 교육적 검토는 별도 과제다. required-prerequisite는 공식 내용 체계·해설이 직접 뒷받침하는 경우에만 사용한다. 공식 문장이 학습 영역 전체를 지목한 경우 해당 영역의 성취기준으로 기계적으로 전개하며, 이 전개 방식은 과목별 검토 문서에 기록한다.- 모든
internal-reviewed관계는review-records.json의 검토 대상 ID에 포함되고, 관계 그래프는 DAG·참조 검사를 통과해야 한다. 공식 근거가 없는 과목은 관계 0건이 정상이다. - 경로는
notOfficialRequirement: true이며 진학·진로 적합성 판정이 아니다. - 형식 검증과 교육적 검토는 서로 다른 상태다. 공식 문서는 국가가 공표한 공개 자료이며 원 출처(교육부·NCIC)에서 누구나 이용할 수 있다. 이 저장소는 원문을 수록하지 않고 코드·해시·페이지 locator로 연결한다.
- 개인 성적·진단·수강 데이터는 저장하지 않는다.
- 완성 계획과 수용 기준
- 아키텍처
- 데이터 계약
- 역량 질문
- 출처와 재현
- 권리 고지
- 라이선스 — MIT. 저장소 산출물은 DECK이 공개 정보를 바탕으로 독립 구축한 원저작물이며, 공식 문서 원문에 대한 권리는 부여하지 않는다.
- 과목별 공식 관계 검토 기록 (
2026-07-17-*-official-relations-review.md, 46건) - 후보 릴리스 보고서
이 프로젝트는 교육부·국가교육위원회·NCIC의 공식 온톨로지나 승인 제품이 아니다.