Поделиться через


Расширение онтологий

В этой статье используется ontateCore на основе DTDL для смарт-зданий в качестве основы для расширения онтологий с новыми свойствами DTDL. Описанные здесь методы являются общими, однако и могут применяться к любой части DTDL на основе топологии с любой функцией DTDL, совместимой с Azure Digital Twins (свойство, связь, компонент).

Отраслевые онтологии корпорации Майкрософт, такие как онтология RealEstateCore на основе DTDL, — отличный способ начать создание решения Интернета вещей. Отраслевые онтологии предоставляют широкий набор базовых интерфейсов, предназначенных для вашего домена и разработанных для работы с полем в службах Интернета вещей Azure, таких как Azure Digital Twins.

Однако ваше решение может иметь особые требования, не охваченные отраслевой онтологией. Например, вы можете связать цифровые двойники с трехмерными моделями, хранящимися в отдельной системе. В этом случае вы можете расширить один из этих онтологий, чтобы добавить собственные возможности, сохраняя все преимущества исходной онтологии.

Иерархия пространства RealEstateCore

В онтологии RealEstateCore на основе DTDL, иерархия пространства используется для определения различных видов пространств: помещений, зданий, зон и т. д. Иерархия расширяется от каждой из этих моделей для определения видов помещений, зданий и зон.

Часть иерархии выглядит как показанная ниже блок-схема.

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

Дополнительные сведения о ontology RealEstateCore см. в статье "Язык определения цифровых двойников" на основе ontology RealEstateCore для смарт-зданий на GitHub.

Расширение иерархии пространства RealEstateCore

Иногда ваше решение имеет определенные требования, не охваченные отраслевой онтологией. В этом случае расширение иерархии позволяет продолжать использование отраслевой онтологии при настройке под ваши требования.

В этой статье обсуждаются два разных случая, для которых может использоваться расширение иерархии онтологии.

  • Добавление новых интерфейсов для концепций, не относящихся к отраслевой онтологии.
  • Добавление дополнительных свойств, связей или компонентов в существующие интерфейсы.

Добавление новых интерфейсов для новых концепций

В этом случае необходимо добавить интерфейсы для концепций, необходимых для решения, которые не присутствуют в отрасли онтологии. Например, если в решении существуют другие типы помещений, которые не представлены в онтологии RealEstateCore на основе DTDL, их можно добавить путем расширения непосредственно из интерфейсов RealEstateCore.

В приведенном ниже примере представлено решение, для которого необходимо определить "помещения с фокусом", которые отсутствуют в онтологии RealEstateCore. Помещение с фокусом — это небольшое пространство, предназначенное для того, чтобы пользователи могли сосредоточиться на задаче в течение нескольких часов.

Чтобы расширить отраслевую онтологию с помощью этой новой концепции, создайте новый интерфейс, который будет наследоваться из интерфейсов в отраслевой онтологии.

После добавления интерфейса помещения с фокусом в расширенной иерархии отображается новый тип помещения.

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

Добавление дополнительных возможностей в существующие интерфейсы

В этом случае необходимо добавить дополнительные свойства, связи или компоненты в интерфейсы, которые находятся в отрасли онтологии.

В этом разделе приведены два примера.

  • Если вы создаете решение, отображающее трехмерные чертежи пространств, которые уже имеются в существующей системе, может потребоваться связать каждый цифровой двойник с его трехмерным чертежом (по идентификатору), чтобы при отображении в решении сведений о пространстве также можно было получить трехмерный чертеж из существующей системы.
  • Если в решении требуется отслеживать состояние (подключенное/автономное) конференц-залов, то может потребоваться отслеживание состояния конференц-зала для использования в отображении или запросах.

Оба примера можно реализовать с новыми свойствами: drawingId свойство, которое связывает трехмерный рисунок с цифровым двойником и свойством online , которое указывает, находится ли конференц-зал в сети или нет.

Как правило, вы не хотите изменять отраслевую онтологию напрямую, так как вам хотелось бы иметь возможность добавлять обновления в решение в будущем (что приведет к перезаписи дополнений). Вместо этого эти типы дополнений можно вносить в свою собственную иерархию интерфейса, которая наследуется от онтологии RealEstateCore на основе DTDL. Каждый создаваемый интерфейс использует множественное наследование интерфейса для расширения родительского интерфейса RealEstateCore и его родительского интерфейса от иерархии расширенных интерфейсов. Этот подход позволяет совместно использовать отраслевую онтологию и дополнения.

Чтобы расширить отрасль ontology, создайте собственные интерфейсы, расширяющие интерфейсы в онтологии отрасли, и добавьте новые возможности в расширенные интерфейсы. Для каждого интерфейса, который требуется расширить, создайте новый интерфейс. Расширенные интерфейсы записываются в DTDL (см . раздел DTDL для расширенных интерфейсов далее в этом документе).

После расширения части иерархии, показанной выше, расширенная иерархия будет выглядеть следующим образом. Здесь расширенный интерфейс пространства добавляет свойство drawingId, которое будет содержать идентификатор, связывающий цифровой двойник с трехмерным чертежом. Кроме того, интерфейс Конференц-зала добавляет online свойство, которое будет содержать состояние конференц-зала в Интернете. По наследованию интерфейс Конференц-зала содержит все возможности интерфейса Конференц-связи RealEstateCore, а также все возможности расширенного интерфейса пространства.

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

Вам не нужно расширять каждый интерфейс в отрасли ontology, только те, где необходимо добавить новые возможности. Например, если необходимо добавить новую возможность, например arterial свойство в интерфейс Hallway, можно расширить этот интерфейс, не расширяя другие интерфейсы, которые также расширяются из Room.

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

Связи с расширенными интерфейсами

Расширенные интерфейсы также можно использовать в качестве целевого объекта для связей, даже если связь изначально моделировается для целевого базового интерфейса. Например, в онтологии RealEstateCore на основе DTDL интерфейс квартиры содержит связь с именем , которая предназначена для интерфейса комнаты (показана на схеме ниже). Это позволяет создать граф помещений для создания квартиры.

В зависимости от части иерархии помещений из предыдущего раздела, цифровой двойник квартиры может включать двойников типа комнаты, и Холлуэй является расширением Комнаты (поэтому квартира может включать коридоры). Это также означает, что квартира может включать расширенный коридор с arterial свойством, потому что расширенный коридор подсчитывается как коридор, как он ссылается на первоначальные отношения.

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

Использование расширенной иерархии пространства

При создании цифровых двойников с помощью расширенной иерархии пробелов модель каждого цифрового двойника будет одной из расширенной иерархии пространства (а не исходной отрасли онтологии) и будет включать все возможности из отрасли онтологии и расширенные интерфейсы через наследование интерфейсов.

Каждая модель цифрового двойника будет интерфейсом от расширенной иерархии, как показано на блок-схеме ниже.

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

При запросе цифровых двойников с использованием идентификатора модели (оператор IS_OF_MODEL) следует использовать идентификаторы модели из расширенной иерархии. Например, 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" 
  }
]

Следующие шаги

Продолжайте путь разработки моделей на основе онтологий: полный путь разработки модели.