15

프로젝트 안내: 도메인 온톨로지 설계

도메인 온톨로지 설계 프로젝트

학습 목표

Week 2 학습 내용을 종합하여 프로젝트로 통합 도메인 분석에서 완성된 온톨로지까지 전체 프로세스 체험 실무 수준의 산출물 생성

프로젝트 안내: 도메인 온톨로지 설계

학습 목표

  • 이번 주 학습한 온톨로지 기술(RDFS, OWL, SHACL, 오픈 온톨로지)을 종합 적용한다
  • 도메인 분석에서 시작하여 완성된 온톨로지를 산출한다
  • 실무에서 통용되는 온톨로지 설계 프로세스를 체험한다

프로젝트 개요

Day 5는 종합 프로젝트입니다. Day 1~4에서 배운 모든 기술을 하나의 프로젝트로 통합합니다.

에디터 로딩 중...

도메인 선택 (3개 중 택 1)

도메인난이도설명오픈 온톨로지
(A) 대학/연구학과, 교수, 학생, 과목, 논문FOAF, Dublin Core, BIBO
(B) 전자상거래고객, 상품, 주문, 리뷰, 카테고리Schema.org, GoodRelations
(C) 헬스케어환자, 의사, 진단, 처방, 의료기관Schema.org, FHIR(참고)

(A) 대학/연구 도메인

핵심 개체: 학과(Department), 교수(Professor), 학생(Student), 과목(Course), 논문(Paper), 연구실(Lab)

핵심 관계: 소속(belongsTo), 수강(enrolledIn), 지도(advises), 저술(authored), 인용(cites), 공저(coAuthoredWith)

Competency Questions 예시:

  • "김교수가 지도하는 학생 중 올해 논문을 발표한 학생은?"
  • "데이터베이스 과목의 선수과목 체인은?"
  • "가장 많이 인용된 논문의 저자가 소속된 학과는?"

(B) 전자상거래 도메인

핵심 개체: 고객(Customer), 상품(Product), 주문(Order), 리뷰(Review), 카테고리(Category), 배송(Shipment)

핵심 관계: 구매(purchased), 리뷰작성(reviewed), 속한카테고리(inCategory), 배송됨(shippedBy), 관련상품(relatedTo)

Competency Questions 예시:

  • "지난 달 가장 많이 팔린 카테고리는?"
  • "평점 4.5 이상 상품을 구매한 VIP 고객은?"
  • "반품률이 높은 상품의 공통 카테고리는?"

(C) 헬스케어 도메인

핵심 개체: 환자(Patient), 의사(Doctor), 진단(Diagnosis), 처방(Prescription), 약물(Drug), 의료기관(Hospital)

핵심 관계: 진료(treatedBy), 진단받음(diagnosedWith), 처방받음(prescribedWith), 상호작용(interactsWith), 소속(affiliatedWith)

Competency Questions 예시:

  • "당뇨 환자에게 가장 많이 처방되는 약물은?"
  • "A약과 B약을 동시에 복용하는 환자는? (약물 상호작용 위험)"
  • "올해 가장 많은 환자를 본 의사의 전공 분야는?"

산출물 체크리스트

프로젝트 완료 시 다음 파일을 제출합니다:

#산출물파일Task
1도메인 분석서analysis.mdTask 3
2온톨로지 (OWL/Turtle)ontology.ttlTask 3-4
3SHACL Shapeshapes.ttlTask 4
4샘플 데이터data.ttlTask 5
5SPARQL 쿼리queries.rqTask 5
6시각화 스크린샷visualization.pngTask 6
7README 문서README.mdTask 6

📖 참고: Noy & McGuinness, "Ontology Development 101" — Stanford KSL Technical Report

핵심 포인트
  • Day 5는 Week 2 전체를 종합하는 프로젝트 (RDFS, OWL, SHACL, 오픈 온톨로지)
  • 3개 도메인 중 택 1: 대학/연구, 전자상거래, 헬스케어
  • 산출물 7개: 분석서, 온톨로지, SHACL, 데이터, SPARQL, 시각화, README
  • Competency Questions로 온톨로지가 답해야 할 질문을 먼저 정의