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


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

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

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

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

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

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

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

Схема, показывающая часть иерархии пространства RealEstateCore. В нем показаны элементы для пространства, комнаты, конференц-зала и Office.

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

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

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

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

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

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

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

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

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

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

Схема, показывающая часть иерархии пространства RealEstateCore, включая новое добавление фокус-комнаты.

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

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

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

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

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

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

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

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

Схема с расширенной иерархией пространства RealEstateCore с более новыми дополнениями, как описано ниже.

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

Схема, показывающая расширенную иерархию пространства RealEstateCore, содержащую расширенный интерфейс Hallway с артериальным свойством.

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

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

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

Схема с расширенной иерархией пространства RealEstateCore с расширенным интерфейсом и связями с ним.

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

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

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

Схема расширенной иерархии пространства RealEstateCore, включая подключенные модели Space, Room, ConferenceRoom, Office и 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" 
  }
]

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

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