온톨로지 리소스 상태와 변경 보호
객체 유형(Object type), 속성(Property), 링크 유형(Link type), 액션(Action)과 인터페이스(Interface)의 상태는 개발 및 사용 단계를 표시합니다. Object Explorer, 객체 뷰(Object view)와 Workshop에서 이 정보를 볼 수 있습니다.
상태 종류
| 상태 | 의미 |
|---|---|
| active | 사용자 앱에서 사용 중이며 파괴적인 정의 변경을 제한합니다. |
| experimental | 개발 중이며 앱에서 사용할 수 없게 되는 변경이 생길 수 있습니다. 새 리소스의 기본값입니다. |
| deprecated | 삭제할 예정이므로 새 운영 의존을 만들지 않습니다. 이유, 예상 삭제일과 대체 리소스를 기록할 수 있습니다. |
| example | 예제로 설치한 가상 리소스입니다. 교육과 초기 탐색에 사용하며 운영용이 아닙니다. |
| promoted | 온톨로지 소유자가 검토한 공통 핵심 객체 유형입니다. 객체 유형에만 적용합니다. |
Promoted 객체 유형
Promoted는 보라색 확인 아이콘으로 표시하며 핵심 공통 자원이라는 의미입니다. active와 유사하게 API 이름과 삭제 등에 보호가 적용됩니다. 상태를 promoted로 바꾸면 표시 여부도 prominent가 됩니다. 모든 속성을 active로 옮기는 선택을 함께 사용할 수 있습니다.
직접 promoted를 적용하려면 온톨로지 수준의 Ontology Owner 역할이 필요합니다. 그 밖의 사용자는 변경 제안을 제출하여 같은 수준의 소유자에게 검토와 승인을 받아야 합니다. 속성, 링크 유형, 액션과 인터페이스에는 promoted 상태가 없습니다.
허용되지 않는 변경
active 리소스는 삭제할 수 없습니다. 삭제하려면 상태가 experimental 또는 deprecated여야 합니다. API 이름 변경은 experimental 상태에서만 할 수 있습니다. active 객체 유형의 기본 키(Primary key) 변경도 속성 편집의 제한을 따릅니다.
상태 변경
현재 상태 옆 드롭다운에서 새 값을 선택합니다. deprecated로 바꿀 때에는 중단 이유와 예상 삭제일을 입력하고 대체 리소스를 선택적으로 지정합니다.
관련 리소스의 상태 일관성
객체 유형을 active에서 experimental로 바꾸면 해당 유형의 모든 속성도 experimental이 됩니다. 유형을 example로 바꾸면 속성도 example로 바뀝니다.
연결된 두 객체 유형의 experimental, active와 deprecated 조합에서는 다음 상태를 사용할 수 있습니다.
| 객체 유형 A | B: experimental | B: active | B: deprecated |
|---|---|---|---|
| experimental | experimental만 | experimental만 | deprecated만 |
| active | experimental만 | experimental, active 또는 deprecated | deprecated만 |
| deprecated | deprecated만 | deprecated만 | deprecated만 |
객체 유형이나 링크의 외래 키(Foreign key) 속성을 experimental, example 또는 deprecated로 바꾸면 연결된 링크 상태도 일관되는 해당 상태로 갱신됩니다. example 전파와 promoted의 객체 유형 보호는 위의 세 상태 조합과 별도 조건으로 구분합니다.
반대로 외래 키 속성을 active로 올린다고 링크를 자동으로 active로 올리지는 않습니다. 기본 키와 외래 키가 운영 중이어도 링크와 기반 데이터소스(Backing datasource)는 아직 개발 중일 수 있기 때문입니다.
일괄 변경
객체 유형을 experimental에서 active로 바꿀 때 모든 속성도 active로 바꿀지 선택할 수 있습니다.
속성 상태는 유형의 Properties 목록에서 일괄 편집할 수 있습니다. 여러 객체 유형은 홈의 유형 목록에서 체크박스로 선택한 뒤 Edit status로 바꿉니다.
상태 충돌 오류
| 오류 | 확인할 조건 |
|---|---|
| OntologyMetadata:ConflictBetweenLinkTypeStatusAndPropertyTypeStatus | 외래 키 속성과 링크 상태가 맞지 않습니다. deprecated 외래 키를 쓰는 링크도 deprecated여야 합니다. |
| OntologyMetadata:ConflictBetweenLinkTypeStatusAndObjectTypeStatus | 연결된 객체 유형과 링크의 상태 조합이 유효하지 않습니다. experimental 객체 유형에 active 링크를 연결할 수 없는 경우가 예입니다. |
상태 변경과 함께 영향을 받은 정의를 검토하고 온톨로지에 저장합니다.