Partilhar via


Extensão de ontologias

Este artigo usa a ontologia RealEstateCore baseada em DTDL para edifícios inteligentes como base para exemplos de extensão de ontologias com novas propriedades DTDL. No entanto, as técnicas descritas aqui são gerais e podem ser aplicadas a qualquer parte de uma ontologia baseada em DTDL com qualquer recurso DTDL compatível com Gêmeos Digitais do Azure (Propriedade, Relacionamento, Componente).

As ontologias padrão do setor da Microsoft, como a ontologia RealEstateCore baseada em DTDL, são uma ótima maneira de começar a criar sua solução de IoT. As ontologias do setor fornecem um conjunto avançado de interfaces básicas que são projetadas para o seu domínio e projetadas para funcionar imediatamente nos serviços do Azure IoT, como os Gêmeos Digitais do Azure.

No entanto, é possível que sua solução tenha necessidades específicas que não são cobertas pela ontologia do setor. Por exemplo, você pode querer vincular seus gêmeos digitais a modelos 3D armazenados em um sistema separado. Neste caso, você pode estender uma dessas ontologias para adicionar suas próprias capacidades, mantendo todos os benefícios da ontologia original.

Hierarquia de espaço RealEstateCore

Na ontologia RealEstateCore baseada em DTDL, a hierarquia de espaço é usada para definir vários tipos de espaços: salas, edifícios, zona e assim por diante. A hierarquia se estende de cada um desses modelos para definir vários tipos de Salas, Edifícios e Zonas.

Uma parte da hierarquia se parece com o diagrama abaixo.

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

Para obter mais informações sobre a ontologia RealEstateCore, consulte Ontologia RealEstateCore baseada em linguagem de definição de gêmeos digitais para edifícios inteligentes no GitHub.

Estendendo a hierarquia de espaço RealEstateCore

Às vezes, sua solução tem necessidades específicas que não são cobertas pela ontologia do setor. Nesse caso, estender a hierarquia permite que você continue a usar a ontologia do setor enquanto a personaliza de acordo com suas necessidades.

Neste artigo, discutimos dois casos diferentes em que estender a hierarquia da ontologia é útil:

  • Adicionando novas interfaces para conceitos que não estão na ontologia da indústria.
  • Adicionar propriedades, relacionamentos ou componentes extras a interfaces existentes.

Adicionar novas interfaces para novos conceitos

Nesse caso, você deseja adicionar interfaces para conceitos necessários para sua solução que não estão presentes na ontologia do setor. Por exemplo, se sua solução tiver outros tipos de salas que não estão representadas na ontologia RealEstateCore baseada em DTDL, você poderá adicioná-las estendendo-se diretamente das interfaces RealEstateCore.

O exemplo abaixo apresenta uma solução que precisa representar "salas de foco", que não estão presentes na ontologia RealEstateCore. Uma sala de foco é um pequeno espaço projetado para as pessoas se concentrarem em uma tarefa por algumas horas de cada vez.

Para estender a ontologia da indústria com este novo conceito, crie uma nova interface que se estenda das interfaces na ontologia da indústria.

Depois de adicionar a interface da sala de foco, a hierarquia estendida mostra o novo tipo de sala.

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

Adicionar recursos extras às interfaces existentes

Nesse caso, você deseja adicionar mais Propriedades, Relações ou Componentes a interfaces que estão na ontologia do setor.

Nesta seção, você verá dois exemplos:

  • Se você estiver criando uma solução que exiba desenhos 3D de espaços que você já tem em um sistema existente, convém associar cada gêmeo digital ao seu desenho 3D (por ID) para que, quando a solução exibir informações sobre o espaço, ela também possa recuperar o desenho 3D do sistema existente.
  • Se a sua solução precisar acompanhar o status online/offline das salas de conferência, talvez você queira acompanhar o status da sala de conferência para uso em exibição ou consultas.

Ambos os exemplos podem ser implementados com novas propriedades: uma propriedade que associa o desenho 3D ao gêmeo digital e uma drawingIdonline propriedade que indica se a sala de conferência está online ou não.

Normalmente, você não quer modificar a ontologia do setor diretamente porque deseja ser capaz de incorporar atualizações a ela em sua solução no futuro (o que substituiria suas adições). Em vez disso, esses tipos de adições podem ser feitas em sua própria hierarquia de interface que se estende da ontologia RealEstateCore baseada em DTDL. Cada interface que você cria usa várias heranças de interface para estender sua interface RealEstateCore pai e sua interface pai a partir de sua hierarquia de interface estendida. Essa abordagem permite que você faça uso da ontologia da indústria e suas adições juntas.

Para estender a ontologia do setor, crie suas próprias interfaces que se estendem das interfaces na ontologia do setor e adicione os novos recursos às suas interfaces estendidas. Para cada interface que você deseja estender, crie uma nova interface. As interfaces estendidas são escritas em DTDL (consulte DTDL para interfaces estendidas mais adiante neste documento).

Depois de estender a parte da hierarquia mostrada acima, a hierarquia estendida se parece com o diagrama abaixo. Aqui, a interface de espaço estendida adiciona a drawingId propriedade que conterá um ID que associa o gêmeo digital ao desenho 3D. Além disso, a interface ConferenceRoom adiciona uma online propriedade que conterá o status online da sala de conferência. Por herança, a interface ConferenceRoom contém todos os recursos da interface RealEstateCore ConferenceRoom e todos os recursos da interface Space estendida.

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

Você não precisa estender todas as interfaces na ontologia do setor, apenas aquelas em que você precisa adicionar novos recursos. Por exemplo, se você precisar adicionar um novo recurso, como uma arterial propriedade à interface Hallway, poderá estender essa interface sem estender outras interfaces que também se estendem da Room.

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

Relações com interfaces estendidas

As interfaces estendidas também podem ser usadas como destino para relacionamentos, mesmo que o relacionamento seja originalmente modelado para direcionar uma interface base. Como exemplo, na ontologia RealEstateCore baseada em DTDL, a interface Apartment contém um Relationship named includes que tem como alvo uma interface Room (mostrada no diagrama abaixo). Isso permite que você crie um gráfico de quartos para compor o apartamento.

Com base na parte da hierarquia de quartos da seção anterior, um apartamento digital twin pode incluir gêmeos tipo quarto, e corredor é uma extensão do quarto (para que um apartamento pode incluir corredores). Isso também significa que um apartamento pode incluir um corredor estendido com a arterial propriedade, porque um corredor estendido conta como um corredor como é referenciado nas relações originais.

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

Usando a hierarquia de espaço estendido

Quando você cria gêmeos digitais usando a hierarquia de espaço estendida, o modelo de cada gêmeo digital será um da hierarquia de espaço estendida (não a ontologia original da indústria) e incluirá todos os recursos da ontologia da indústria e as interfaces estendidas por herança de interface.

O modelo de cada gêmeo digital será uma interface da hierarquia estendida, mostrada no diagrama abaixo.

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

Ao consultar gêmeos digitais usando a ID do modelo (o IS_OF_MODEL operador), as IDs do modelo da hierarquia estendida devem ser usadas. Por exemplo, SELECT * FROM DIGITALTWINS WHERE IS_OF_MODEL('dtmi:com:example:Office;1').

Contribuindo de volta para a ontologia original

Em alguns casos, você estenderá a ontologia da indústria de uma forma que seja amplamente útil para a maioria dos usuários da ontologia. Neste caso, você deve considerar contribuir com suas extensões de volta para a ontologia original. Cada ontologia tem um processo diferente para contribuir, portanto, verifique o repositório GitHub da ontologia para obter detalhes de contribuição.

DTDL para novas interfaces

A DTDL para novas interfaces que se estendem diretamente da ontologia da indústria ficaria assim.

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

DTDL para interfaces estendidas

A DTDL para as interfaces estendidas, limitada à parte discutida acima, ficaria assim.

[
  {
    "@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" 
  }
]

Próximos passos

Continue no caminho para o desenvolvimento de modelos baseados em ontologias: Caminho completo de desenvolvimento de modelos.