온톨로지 정적 문서 생성기: 구현 및 활용
SimpleOntoDoc는 온톨로지를 문서화하는 정적 웹사이트를 생성하는 도구입니다. 온톨로지는 클래스, 속성 및 그들 간의 관계를 통해 주제 영역을 설명합니다. 이 프로젝트는 CIM(IEC61970)과 같은 내부 회사 모델 및 표준을 대상으로 하지만, 더 넓은 적용 분야를 가지고 있습니다.
이 도구는 네비게이션, 다이어그램, 속성 테이블 및 검색 기능을 생성합니다. JSON 스키마 설명 파싱을 지원하며, PlantUML로 UML 다이어그램을 렌더링하고, 인터페이스에 Bootstrap을 사용합니다.
생성된 사이트 구조
홈페이지에는 빠른 접근을 위한 타일이 있습니다: 클래스, 열거형, 기본형, 데이터 타입, 복합형. 각 타일은 엔티티를 유형별로 필터링합니다. 헤더에는 이름과 설명을 대소문자 구분 없이 검색하는 기능이 포함됩니다.
엔티티 탭은 모든 엔티티의 테이블을 대화형 검색과 함께 표시합니다. 행은 클릭 가능하며 클래스 페이지로 연결됩니다.
클래스 페이지(예: PowerSystemResource)에는 다음이 포함됩니다:
- 설명 및 상속 계층 구조 + 외부 관계의 UML 다이어그램.
- 클릭 가능한 ID가 있는 속성 테이블.
- 요약 블록: 부모, 자식 및 데이터 타입으로의 사용을 위한 네비게이션.
- 참조 테이블: 이 클래스가 타입인 다른 클래스의 속성.
- 자식 클래스 테이블.
다이어그램은 대화형입니다: 패닝 줌으로 탐색 가능하며, 노드는 클릭 가능합니다.
속성 페이지(예: PowerSystemResource.Controls)에는 설명, 요약 및 네비게이션이 포함됩니다.
프로젝트에서의 활용
이 도구는 UML과 유사한 구조를 가진 도메인에 적합합니다: 클래스, 상속, 구성. JSON(model.py API)으로 온톨로지를 설명한 후 사이트를 생성하세요.
사용 사례:
- 서비스 내 비즈니스 엔티티 문서화(50개 이상의 클래스).
- 개발자, 분석가 및 요구사항 작성자 간의 공통 언어.
- CI/CD: Git에서 JSON이 변경될 때 사이트 생성.
- 코드 생성 또는 내보내기를 위한 기반.
요구사항에서 온톨로지를 비즈니스 로직과 분리하세요.
기술 스택
- C# / .NET 9: 애플리케이션 기반.
- PlantUML: 임시 서버를 통해 UML 다이어그램 렌더링.
- RazorLight: 페이지 템플릿.
- Bootstrap 5: 프론트엔드 레이아웃.
게시 스크립트는 Nginx가 포함된 Docker 컨테이너를 빌드합니다.
대안과의 비교
| 도구 | 장점 | 단점 |
|------------|-------|--------|
| ontology.tno.nl | CIM용 준비된 사이트 | 소스 코드 없음, GOST에 적응되지 않음 |
| Widoco | OWL 지원 | 단일 페이지, 불필요한 정보, 디자인 |
| Ontospy | 상속 트리 | JSON/UML용 수정 필요 |
SimpleOntoDoc는 RDF/OWL의 복잡성을 피하고 프로그래밍 언어에 가까운 간단한 설명에 중점을 둡니다.
향상 가능성
- 다국어 인터페이스.
- 상속이 포함된 클래스 트리 뷰.
- RDF/XML, OWL, XMI, PDF(GOST)용 파서.
- 검증: 속성에 대한 최소/최대, 정규식.
- 클래스/속성에 대한 메타데이터.
- 페이지 섹션용 앵커(#).
핵심 포인트
- 검색, 다이어그램 및 하이퍼링크가 포함된 완전한 기능의 사이트 생성.
- 입력: model.py의 JSON, 출력: Docker 내 정적 파일.
- CIM/GOST에 적응 가능하며 확장 가능.
- 중급/시니어 개발자용: RDF 복잡성 없이 도메인 모델에 집중.
- 실시간 문서화를 위한 CI 통합.
— Editorial Team
아직 댓글이 없습니다.