직접 확인하기
준비
cd kr2akn
python -m venv .venv
. .venv/bin/activate
pip install -e '.[dev]'
법령 변환
# 1) 법제처 XML → 중간 모델
kr2akn parse --law-id 001706 --data-dir ../data --out-dir ../data/normalized
# 2) 중간 모델 → AKN + XSD 검증
kr2akn emit --law-id 001706 --data-dir ../data --out-dir ../data/normalized --validate
# 3) AKN → 중간 모델 (디코더)
kr2akn akn2kr --input ../data/akn/001706.akn.xml --output /tmp/001706.model.json
# 4) emit → decode → emit 왕복 검증
kr2akn roundtrip --law-id 001706 --data-dir ../data --strict-model
판례 변환
kr2akn emit-case --case-id 624945 --target prec --data-dir ../data \
--out-dir ../data/normalized --validate
kr2akn roundtrip --case-id 624945 --target prec --data-dir ../data --strict-model
전체 코퍼스
kr2akn emit --all --data-dir ../data --out-dir ../data/normalized --validate
kr2akn emit-case --all --target prec --data-dir ../data \
--out-dir ../data/normalized --validate
kr2akn emit-case --all --target detc --data-dir ../data \
--out-dir ../data/normalized --validate
kr2akn roundtrip --all --data-dir ../data \
--strict-model --preserve-source-text
테스트
python -m pytest -q
OC와 데이터
LAWGO_OC가 없으면 fetch 단계는 실행할 수 없다. 이미 받아 둔
data/raw가 있으면 parse/emit/roundtrip은 OC 없이 동작한다.
data/
├── raw/eflaw/<law_id>/<ts>/response.xml + meta.json
├── raw/prec/<case_id>/<ts>/response.xml + meta.json
├── raw/detc/<case_id>/<ts>/response.xml + meta.json
├── normalized/<law_id>.law.json
├── akn/<law_id>.akn.xml
└── akn/prec|detc/<case_id>.akn.xml
data/는 공개 레포 밖이고 .gitignore에 포함되어 있다.