직접 확인하기

준비

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에 포함되어 있다.

관련 문서