다음을 통해 공유


온톨로지 확장

이 문서에서는 스마트 빌딩용 DTDL 기반 RealEstateCore 온톨로지를 새로운 DTDL 속성으로 온톨로지를 확장하는 예제의 기반으로 사용합니다. 하지만 여기에 설명된 기법은 일반적인 내용이며 Azure Digital Twins 호환 DTDL 기능(속성, 관계, 구성 요소)을 포함하는 DTDL 기반 온톨로지 중 일부에 적용될 수 있습니다.

DTDL 기반 RealEstateCore 온톨로지와 같은 Microsoft의 업계 표준 온톨로지는 IoT 솔루션 빌드를 시작하는 좋은 방법입니다. 업계 온톨로지는 사용자 도메인에 맞게 설계되었고 Azure Digital Twins와 같은 Azure IoT 서비스에서 즉시 사용할 수 있도록 설계된 다양한 기능의 기본 인터페이스를 제공합니다.

하지만 특정 솔루션에 따라 업계 토폴로지로는 지원되지 않는 특별한 요구 사항이 존재할 수 있습니다. 예를 들어 디지털 트윈을 별도 시스템에 저장된 3D 모델에 연결해야 할 수 있습니다. 이 경우 원래 온톨로지의 이점을 모두 활용하면서도 고유 기능을 추가하도록 온톨로지 중 하나를 확장할 수 있습니다.

RealEstateCore 공간 계층 구조

DTDL 기반 RealEstateCore 온톨로지에서 Space 계층 구조는 Room, Building, Zone 등 여러 유형의 공간을 정의하기 위해 사용됩니다. 이 계층 구조는 이러한 각 모델로부터 확장되어 여러 유형의 Room, Building 및 Zone을 정의합니다.

계층 구조의 일부는 아래 다이어그램과 같이 표시됩니다.

Diagram showing part of the RealEstateCore space hierarchy. It shows elements for Space, Room, ConferenceRoom, and Office.

RealEstateCore 온톨로지에 대한 자세한 내용은 GitHub의 스마트 빌딩용 Digital Twins 정의 언어 기반 RealEstateCore 온톨로지를 참조하세요.

RealEstateCore 공간 계층 구조 확장

때때로 솔루션에 따라 업계 온톨로지로는 지원되지 않는 특별한 요구 사항이 존재할 수 있습니다. 이 경우 계층 구조를 확장하면 업계 온톨로지를 계속 사용하면서도 특정 요구 사항에 맞게 사용자 지정할 수 있습니다.

이 문서에서는 온톨로지의 계층 구조를 확장하는 것이 유용한 두 가지 사례를 살펴봅니다.

  • 업계 온톨로지에 없는 개념을 위한 새로운 인터페이스 추가.
  • 기존 인터페이스에 추가 속성, 관계 또는 구성 요소 추가

새로운 개념을 위한 새로운 인터페이스 추가

이 경우 업계 온톨로지에 없는 솔루션에 필요한 개념에 대해 인터페이스를 추가해야 합니다. 예를 들어 DTDL 기반 RealEstateCore 온톨로지에 없는 다른 룸 유형이 솔루션에 포함된 경우 RealEstateCore 인터페이스에서 직접 확장하여 이를 추가할 수 있습니다.

아래 예제는 RealEstateCore 온톨로지에 없는 ‘포커스 룸’을 표현해야 하는 솔루션이 나타나 있습니다. 포커스 룸은 여러 사람이 한 번에 몇 시간씩 특정 작업에 집중할 수 있도록 설계된 작은 공간입니다.

이 새로운 개념으로 업계 온톨로지를 확장하려면 업계 인터페이스로부터 확장되는 새로운 인터페이스를 만듭니다.

포커스 룸 인터페이스를 추가한 후에는 확장된 계층 구조에 새로운 룸 유형이 표시됩니다.

Diagram showing part of the RealEstateCore space hierarchy, including a new addition of Focus Room.

기존 인터페이스에 추가 기능 추가

이 경우 업계 온톨로지에 있는 인터페이스에 더 많은 속성, 관계 또는 구성 요소를 추가하려고 합니다.

이 섹션에서는 두 가지 예제를 보여줍니다.

  • 이미 기존 시스템이 있는 공간의 3D 도면을 표시하는 솔루션을 빌드하는 경우, 솔루션에 공간에 대한 정보가 표시될 때 기존 시스템의 3D 도면도 검색할 수 있도록 각 디지털 트윈을 해당 3D 도면에 ID로 연결해야 할 수 있습니다.
  • 솔루션이 컨퍼런스 룸의 온라인/오프라인 상태를 추적해야 할 경우 표시 또는 쿼리에 사용할 수 있도록 컨퍼런스 룸 상태를 추적해야 할 수 있습니다.

두 예제 모두 새로운 속성을 사용하여 구현될 수 있습니다. drawingId 속성은 3D 도면을 디지털 트윈 및 online 속성에 연결하여 컨퍼런스 룸이 온라인 상태인지 여부를 나타냅니다.

일반적으로 이후 솔루션에서 업데이트를 통합할 수 있기를 원하므로(추가 항목 덮어쓰기) 업계 온톨로지를 직접 수정하지는 않습니다. 대신 이러한 종류의 추가는 DTDL 기반 RealEstateCore 온톨로지로부터 확장되는 고유 인터페이스 계층 구조에서 수행될 수 있습니다. 생성되는 각 인터페이스에는 확장된 인터페이스 계층 구조로부터 상위 RealEstateCore 인터페이스 및 상위 인터페이스를 확장하기 위해 여러 인터페이스 상속성이 사용됩니다. 이 접근 방식을 사용하면 업계 온톨로지 및 추가 항목을 함께 사용할 수 있습니다.

업계 온톨로지를 확장하려면 업계 온톨로지의 인터페이스에서 확장되는 고유 인터페이스를 만들고 새 기능을 확장된 인터페이스에 추가합니다. 확장하려는 각 인터페이스에 대해 새 인터페이스를 만듭니다. 확장된 인터페이스는 DTDL로 작성됩니다(이 문서 뒷부분의 확장된 인터페이스에 대한 DTDL 참조).

위에 표시된 계층 구조의 일부를 확장한 후 확장된 계층 구조는 아래 다이어그램과 같이 표시됩니다. 여기에서 확장된 Space 인터페이스는 디지털 트윈을 3D 도면과 연결하는 ID가 포함된 drawingId 속성을 추가합니다. 또한 ConferenceRoom 인터페이스는 컨퍼런스 룸의 온라인 상태를 포함하는 online 속성을 추가합니다. 상속성을 통해 ConferenceRoom 인터페이스는 확장된 Space 인터페이스의 모든 기능은 물론 RealEstateCore ConferenceRoom 인터페이스의 모든 기능을 포함합니다.

Diagram showing the extended RealEstateCore space hierarchy, with more new additions as described.

업계 온톨로지의 모든 인터페이스를 확장할 필요는 없으며 새로운 기능을 추가해야 하는 인터페이스만 확장할 수 있습니다. 예를 들어 Hallway 인터페이스에 arterial 속성과 같은 새 기능을 추가해야 하는 경우 Room에서 확장되는 다른 인터페이스를 확장하지 않고도 해당 인터페이스를 확장할 수 있습니다.

Diagram showing an extended RealEstateCore space hierarchy, containing an extended Hallway interface with an arterial property.

확장된 인터페이스와의 관계

관계가 원래 기본 인터페이스를 대상으로 모델링된 경우에도 확장된 인터페이스를 관계의 대상으로 사용할 수도 있습니다. 예를 들어 DTDL 기반 RealEstateCore 온톨로지에서 Apartment 인터페이스에는 아래 다이어그램에 표시된 Room 인터페이스를 대상으로 하는 includes라는 Relationship가 포함되어 있습니다. 이렇게 하면 아파트를 구성하는 룸의 그래프를 만들 수 있습니다.

이전 섹션의 룸 계층 구조 부분에 따라 아파트 디지털 트윈은 룸 형식 트윈을 포함할 수 있으며, Hallway는 룸의 확장입니다(아파트는 복도를 포함할 수 있음). 확장된 복도는 원래 관계에서 참조되는 복도로 간주되기 때문에 아파트에 arterial 속성을 가진 확장된 복도가 포함될 수 있음을 의미합니다.

Diagram showing an extended RealEstateCore space hierarchy, with an extended Hallway interface and relationships to it.

확장된 공간 계층 구조 사용

확장된 Space 계층 구조를 사용하여 디지털 트윈을 만들 때 각 디지털 트윈의 모델은 원래 업계 토폴로지 대신 확장된 Space 계층 구조에서 가져온 것이며, 인터페이스 상속성을 통해 업계 온톨로지 및 확장된 인터페이스의 모든 기능을 포함합니다.

각 디지털 트윈의 모델은 아래 다이어그램에 표시된 확장된 계층 구조의 인터페이스입니다.

Diagram showing the extended RealEstateCore space hierarchy, including the connected models Space, Room, ConferenceRoom, Office, and FocusRoom.

모델 ID(IS_OF_MODEL 연산자)를 사용하여 디지털 트윈을 쿼리할 때는 확장된 계층 구조의 모델 ID를 사용해야 합니다. 예: SELECT * FROM DIGITALTWINS WHERE IS_OF_MODEL('dtmi:com:example:Office;1').

원래 온톨로지에 다시 기여

일부 경우에는 대부분의 온톨로지 사용자에게 보편적으로 유용한 방식으로 업계 온톨로지를 확장하게 됩니다. 이 경우 확장을 다시 원래 온톨로지에 기여하는 것을 고려해야 합니다. 각 온톨로지에는 서로 다른 기여 프로세스가 사용되므로 온톨로지의 GitHub 리포지토리에서 기여 세부 정보를 확인해야 합니다.

새 인터페이스를 위한 DTDL

업계 온톨로지에서 직접 확장되는 새 인터페이스의 DTDL은 다음과 같이 표시됩니다.

{
  "@id": "dtmi:com:example:FocusRoom;1", 
  "@type": "interface", 
  "extends": "dtmi:digitaltwins:rec_3_3:building:Office;1", 
  "@context": "dtmi:dtdl:context;2" 
} 

확장 인터페이스를 위한 DTDL

위에 설명된 부분에 국한하여 확장된 인터페이스의 DTDL은 다음과 같이 표시됩니다.

[
  {
    "@id": "dtmi:com:example:Space;1",
    "@type": "Interface",
    "extends": "dtmi:digitaltwins:rec_3_3:core:Space;1",
    "contents": [
      {
        "@type": "Property",
        "name": "drawingid",
        "schema": "string"
      }
    ],
    "@context": "dtmi:dtdl:context;2"
  },
  {
    "@id": "dtmi:com:example:Room;1",
    "@type": "Interface",
    "extends": [
      "dtmi:digitaltwins:rec_3_3:core:Room;1",
      "dtmi:com:example:Space;1"
    ],
    "@context": "dtmi:dtdl:context;2"
  },
  {
    "@id": "dtmi:com:example:ConferenceRoom;1",
    "@type": "Interface",
    "extends": [
      "dtmi:digitaltwins:rec_3_3:building:ConferenceRoom;1",
      "dtmi:com:example:Room;1"
    ],
    "contents": [
      {
        "@type": "Property",
        "name": "online",
        "schema": "boolean"
      }
    ],
    "@context": "dtmi:dtdl:context;2"
  },
  {
    "@id": "dtmi:com:example:Office;1",
    "@type": "Interface",
    "extends": [
      "dtmi:digitaltwins:rec_3_3:building:Office;1", 
      "dtmi:com:example:Room;1" 
    ],
    "@context": "dtmi:dtdl:context;2" 
  }, 
  {
    "@id": "dtmi:com:example:FocusRoom;1", 
    "@type": "Interface", 
    "extends": "dtmi:com:example:Office;1", 
    "@context": "dtmi:dtdl:context;2" 
  }
]

다음 단계

온톨로지(전체 모델 개발 경로)를 기반으로 모델을 개발하는 경로를 계속 진행합니다.