Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

링크 유형 생성

Ontology Manager의 도우미에서 링크 유형(Link type)의 관계 방식, 키와 이름을 정합니다. 도우미를 중간에 나왔다면 상세 화면에서 관계, 키와 API 이름을 모두 완성해야 저장할 수 있습니다.

생성 도우미 열기

오른쪽 위 New의 Link type을 선택하거나, 왼쪽 Resources의 Link types에서 New link type을 선택합니다.

연결할 객체 유형(Object type)의 Overview 링크 그래프에서 Create new link type으로 시작할 수도 있습니다.

관계 방식

선택기본 구성
Object type foreign keys일대일 또는 다대일 관계의 외래 키(Foreign key)와 대상 기본 키(Primary key)를 선택합니다.
Join table dataset다대다 관계의 기본 키 쌍을 담는 데이터셋(Dataset)을 연결합니다.
Backing object type중간 객체 유형을 관계의 저장 단위로 사용하여 추가 메타데이터를 담습니다.

카디널리티(Cardinality)는 양쪽에 한 객체 또는 여러 객체가 연결되는 형태를 나타냅니다. 일대다는 반대 방향에서 보면 다대일이며, 다대다는 양쪽 모두 여러 상대를 가질 수 있습니다. 일대일은 의도한 관계를 나타내지만 실제 일대일 유일성을 강제하지는 않습니다.

외래 키 기반 링크

가상의 Aircraft에서는 Tail Number가 기본 키이고 Flight에서는 Flight Tail Number가 배정한 항공기를 가리키는 외래 키입니다. 값이 일치하면 두 객체가 연결됩니다.

  1. Link resources의 오른쪽에서 기본 키를 가진 Aircraft를 선택합니다.
  2. 왼쪽에서 외래 키를 가진 Flight를 선택합니다. 외래 키가 대상 기본 키와 맞고 속성 자료형도 같으면 도우미가 자동 선택할 수 있습니다.
  3. Flight의 외래 키로 Flight Tail Number를 선택합니다. Aircraft의 기본 키 Tail Number는 자동 선택됩니다.
  4. Next로 진행합니다.

조인 테이블 기반 링크

다대다 관계에서는 연결할 양쪽 기본 키의 조합을 담은 조인 테이블(Join table)을 사용합니다.

  1. Link resources에서 왼쪽 Flight와 오른쪽 Aircraft를 선택합니다.
  2. 두 기본 키에 해당하는 열이 있는 데이터셋을 선택합니다.
  3. 각 열을 어느 유형의 기본 키에 연결할지 정합니다. 하나의 열을 양쪽 기본 키에 동시에 매핑할 수 없습니다.
  4. Next로 진행합니다.

Generate join table을 선택하면 선택한 두 유형의 기본 키에 맞는 스키마로 새 데이터셋을 만들 수 있습니다. 사용자 편집으로 관계를 채우거나 운영 데이터를 나중에 공급하는 경우에 사용할 수 있습니다.

조인 테이블에 독립적으로 저장하는 관계를 사용자 편집 대상으로 구성하는 경로는 이 다대다 링크를 사용합니다. 외래 키에서 계산되는 관계와 중간 객체로 표현한 관계의 편집 위치는 각각의 객체 데이터와 구분합니다.

객체 기반 링크

객체 기반 링크(Object-backed link)는 관계 자체의 메타데이터가 필요한 경우에 사용합니다. 제한 뷰(Restricted view)를 사용할 수도 있습니다.

Aircraft와 Flight 사이에 Flight Manifest라는 중간 유형을 두면 Pilot과 First Mate 같은 추가 속성(Property)을 관계에 저장할 수 있습니다.

먼저 양 끝의 Aircraft와 Flight 유형 및 중간 Flight Manifest 유형을 만듭니다. Flight Manifest 쪽에서 각 끝의 객체 하나를 가리키는 다대일 관계 두 개를 준비합니다. 그 뒤 Backing object type 경로에서 양 끝과 중간 유형을 선택합니다. 중간 객체에 연결하는 링크가 여러 개이면 사용할 링크를 각각 선택합니다.

기존 링크 변환

필요한 중간 유형과 두 연결을 먼저 만든 뒤 기존 링크를 엽니다. Configuration에서 조인 방식을 Object type으로 바꾸고 Update link type to object-backed link type에서 중간 객체와 연결 링크를 지정합니다. Update to object-backed로 변경합니다.

Object Explorer, Vertex와 Workshop에서 객체 기반 링크를 볼 수 있습니다. 링크를 선택하면 중간 객체의 속성을 확인하며 Vertex의 링크 제목은 중간 객체의 제목을 사용합니다.

양쪽 이름과 API 이름

Link type names에서 각 쪽의 표시 이름을 지정합니다. Aircraft 쪽 이름은 Flight에서 Aircraft로 향하는 관계를 뜻하므로 Assigned Aircraft가 될 수 있습니다. 같은 정의의 반대쪽 이름도 함께 구성합니다.

API 이름은 표시 이름에서 자동 생성되며 바꿀 수 있습니다. Aircraft 쪽이 assignedAircraft라면 TypeScript v1의 flight 객체에서 flight.assignedAircraft.get()으로 해당 방향을 조회하는 예가 됩니다.

링크 API 이름은 소문자로 시작하고 영숫자로 구성하며 길이는 1~100자입니다. 같은 객체 유형에 연결된 링크 유형 사이에서 고유해야 하고 NFKC 정규화를 따라야 하며 예약어를 사용할 수 없습니다.

프로젝트와 저장

프로젝트(Project) 저장 위치를 선택하고 Submit합니다. 아직 온톨로지에 최종 저장한 상태는 아닙니다.

Ontology Manager 오른쪽 위 Save에서 변경을 검토하여 저장합니다.

중복 등록 오류

Phonograph2:DatasetAndBranchAlreadyRegistered가 나타나면 선택한 데이터소스와 브랜치가 다른 링크 유형에 이미 등록되어 있는지 확인합니다. 같은 데이터소스를 다른 링크 유형의 기반으로 중복 등록할 수 없는 경우입니다.