KODE 데이터모델 작업대 · 전체 파이프라인 설명

표준분류체계(default) → 조직 데이터 → real 데이터모델

조직 보유 파일(PDF·Excel·Word 등)을 넣으면, 어느 분류항목인지 판단하고 CDM을 추출·매핑하여 데이터모델이 어떻게 갱신돼야 하는지를 분석적으로 보여줍니다.

기본 데이터모델
표준분류체계 10·100·510
조직 파일
PDF·Excel·Word·TXT
real 데이터모델
유지·보정·신규추가
도식 보는 법. 아래는 파일 1개가 도구를 통과하는 순서입니다. 주황색 [0.5] 그라운딩 은 국제 표준 온톨로지(FoodOn·NCBI·ChEBI) 연계를 위해 도구에 구현된 단계입니다.
배지 표기 — NCBI 미생물 · ChEBI 대사산물 · FoodOn 식품/원재료가 관여하는 단계
0

추출 · Extraction

입력 파일(PDF/Excel/CSV/TXT) 출력 개념·용어 후보 cdm_recon/extractors.py

정형 파일은 컬럼 헤더를, 비정형 문서는 LLM concept 모드로 김치 도메인 개념 (김치유형·원재료·미생물·공정·발효/품질·지역·시대·문헌)을 추출합니다.

0.5

온톨로지 그라운딩 · Grounding 구현됨

입력 추출 용어 출력 외부 표준 ID · 동의어 cdm_recon/grounding.py

추출된 용어를 국제 표준 온톨로지 ID로 해석(entity linking)하고 표준명·동의어를 획득합니다. 이 결과가 매칭·판정·중복제거를 동시에 개선하므로 가장 앞단에서 1회 수행 + 캐시합니다.

NCBI ▸ 미생물 taxid 통합 ChEBI ▸ 대사산물 ID FoodOn ▸ 식품/원재료 ID
1

매칭 · Matching

입력 후보(+동의어) 출력 대표개념 top-k cdm_recon/matcher.py

후보를 대표개념(CDM) 510개와 유사도로 비교합니다. 어휘 유사도(오프라인) 기본, sentence-transformers 설치 시 다국어 임베딩 유사도 자동 사용. NCBIChEBIFoodOn 동의어가 매칭 정확도를 높입니다.

2

판정 · Verdict

입력 매칭 결과 출력 적합 / 대체 / 추가 cdm_recon/analyzer.py

임계값으로 적합(유지)·대체(보정)·추가(신규) 를 판정하고, LLM이 모호한 항목을 근거와 함께 재판정합니다.

3

데이터모델 업데이트 · Data Model Update 본질

입력 판정 결과 출력 분류배정 + 갱신 제안 cdm_recon/datamodel.py

① 각 개념을 가장 가까운 중분류(CM)에 배정 → "이 파일이 어느 분류항목인가" ② 적합/대체/추가 매핑 ③ default → real 데이터모델 Before/After 제안. FoodOn 신규 개념의 상위개념 배정 보조 + 외부 표준 ID 배지 표시.

4

온톨로지 골격 · T-Box

입력 CDM 마스터 출력 클래스·속성(OWL/Turtle) onto/skeleton.py

CDM 엔티티 → owl:Class, 변수 → 데이터/객체 속성, 중복 변수 → 공유 클래스 (Ingredient·Region·Microorganism)로 통합. NCBIChEBIFoodOn 공유 클래스에 외부 IRI를 skos:exactMatch/subClassOf로 링크.

5

인스턴스 · A-Box

입력 문서 출력 개체 적재 onto/instances.py

문서에서 음식(김치) 레코드를 추출해 개체(Dish·Ingredient·Region·Document)로 적재. NCBIChEBI 그라운딩된 개체에 owl:sameAs/skos:exactMatch로 외부 IRI 부착.

6

검증 · Validation

입력 지식그래프 출력 SPARQL 질의 통과율 onto/validate.py

Competency Question(SPARQL)으로 "이 질문에 답이 되는가"를 검증. 그라운딩 도입 시 "미생물 개체의 NCBI taxid 연결률" 같은 품질 지표 추가 가능.

외부 표준 온톨로지 연계 — 어느 단계에 넣는가

연계는 성격이 다른 두 작업으로 나눠 삽입합니다. (A) 그라운딩/정규화 → [0.5] 입력부(표준 ID·동의어로 매칭·판정 개선), (B) IRI 링크 → [4·5] 출력부(클래스/개체에 IRI 부착 → 상호운용·교차추론).

NCBI Taxonomy · Public Domain

미생물 분류(Lactobacillus, Leuconostoc, Weissella)
  • 대상: KIM-02-07 종균 · KIM-04-04/05 유산균·군집
  • 삽입: [0.5] 그라운딩(핵심) + [4·5] taxonID 링크
  • 효과: 학명 변형(L. plantarum)을 단일 taxid로 통합

ChEBI · CC BY 4.0

화학물질·대사산물(젖산, 아세트산, 만니톨)
  • 대상: KIM-04-06 대사산물 · KIM-05-01 이화학
  • 삽입: [0.5] 그라운딩(핵심) + [4·5] exactMatch
  • 효과: 젖산 → CHEBI:28358 등 표준 식별

FoodOn · CC BY 3.0

식품·원재료·가공방법 표준 온톨로지
  • 대상: KIM-01 제품·유형 · KIM-02 원료 · KIM-03 공정
  • 삽입: [0.5] 그라운딩 + [3] 상위개념 배정 보조 + [4] subClassOf
  • 효과: 신규 "동아김치" → FoodOn 상위 "fermented vegetable"
외부 온톨로지대상 분류항목(CM)공유클래스 그라운딩(0.5)데이터모델(3)온톨로지(4·5)
NCBI TaxonomyKIM-02-07, 04-04/05Microorganism ◎ 핵심배지skos:exactMatch / taxonID
ChEBIKIM-04-06, 05-01Metabolite (신규) ◎ 핵심배지skos:exactMatch
FoodOnKIM-01 · 02 · 03Ingredient / KimchiType / Process ◎ 상위배정rdfs:subClassOf / broadMatch
결론. 코드 부여(그라운딩)는 추출 직후 [0.5] 에서 한 번, IRI 링크는 온톨로지 [4·5] 에서 — 이렇게 이원화하는 것이 최적입니다. NCBI·ChEBI는 [0.5] 정규화가 주 효과, FoodOn은 [0.5] 정규화 + [3] 상위개념 배정 보조가 가장 효과적입니다. 세 온톨로지 모두 permissive 라이선스로 납품물 정책과 충돌이 없습니다.
알려진 이슈 — ① onto/skeleton.py는 아직 taxonomy 스키마 미지원(보완 필요), ② 추출기 .docx(Word) 미지원(python-docx 추가 예정).