Extensión de las ontologías

En este artículo se usa la ontología RealEstateCore basada en DTDL para edificios inteligentes como base para los ejemplos de extensión de ontologías con nuevas propiedades de DTDL. Sin embargo, las técnicas descritas aquí son generales y se pueden aplicar a cualquier parte de una ontología basada en DTDL con cualquier funcionalidad dtDL compatible con Azure Digital Twins (propiedad, relación, componente).

Las ontologías estándar del sector de Microsoft, como la ontología RealEstateCore basada en DTDL, son una excelente manera de empezar a crear la solución de IoT. Las ontologías del sector proporcionan un amplio conjunto de interfaces base diseñadas para que su dominio y diseñadas funcionen de forma predeterminada en servicios de Azure IoT como Azure Digital Twins.

Sin embargo, es posible que la solución tenga necesidades específicas que no cubra la ontología del sector. Por ejemplo, puede que desee vincular los gemelos digitales a modelos 3D almacenados en un sistema independiente. En este caso, puede ampliar una de estas ontologías para agregar sus propias funcionalidades y mantener todas las ventajas de la ontología original.

Jerarquía de espacios de RealEstateCore

En la ontología RealEstateCore basada en DTDL, la jerarquía de espacios se usa para definir varios tipos de espacios: salas, edificios, zonas, etc. La jerarquía se extiende desde cada uno de estos modelos para definir varios tipos de salas, edificios y zonas.

Una parte de la jerarquía tiene el aspecto del diagrama siguiente.

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

Para más información sobre la ontología RealEstateCore, consulte Ontología RealEstateCore basada en el lenguaje de definición de Azure Digital Twins para edificios inteligentes en GitHub.

Extensión de la jerarquía de espacios de RealEstateCore

En algunas ocasiones, la solución presenta necesidades específicas que no cubre la ontología del sector. En este caso, la extensión de la jerarquía le permite seguir usando la ontología del sector y personalizar esta según sus necesidades.

En este artículo se analizan dos casos diferentes en los que la extensión de la jerarquía de la ontología es útil:

  • La incorporación de nuevas interfaces para conceptos que no están en la ontología del sector.
  • Agregar propiedades, relaciones o componentes adicionales a interfaces existentes.

Incorporación de nuevas interfaces para nuevos conceptos

En este caso, quiere agregar interfaces para los conceptos necesarios para la solución que no están presentes en la ontología del sector. Por ejemplo, si la solución tiene otros tipos de salas que no están representados en la ontología RealEstateCore basada en DTDL, puede agregarlos mediante la extensión directa de las interfaces de RealEstateCore.

En el ejemplo siguiente se presenta una solución que necesita representar "espacios de concentración", que no están presentes en la ontología RealEstateCore. Un espacio de concentración es un pequeño espacio diseñado para que los usuarios se concentren en una tarea durante un par de horas cada vez.

Para ampliar la ontología del sector con este nuevo concepto, cree una nueva interfaz que se extienda desde las interfaces de esta ontología.

Después de agregar la interfaz del espacio de concentración, la jerarquía extendida muestra este nuevo tipo de sala.

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

Incorporación de funcionalidades adicionales a las interfaces existentes

En este caso, quiere agregar más propiedades, relaciones o componentes a interfaces que se encuentran en la ontología del sector.

En esta sección, encontrará dos ejemplos:

  • Si va a crear una solución que muestre dibujos en 3D de espacios que ya tiene en un sistema existente, es posible que desee asociar cada gemelo digital a su dibujo en 3D (por identificador) para que cuando la solución muestre información sobre el espacio, también pueda recuperar el dibujo en 3D del sistema existente.
  • Si la solución necesita realizar un seguimiento del estado "en línea" o "sin conexión" de las salas de conferencias, es posible que desee realizar un seguimiento del estado de la sala de conferencias para su uso en pantallas o consultas.

Ambos ejemplos se pueden implementar con nuevas propiedades: una propiedad drawingId que asocia el dibujo en 3D con el gemelo digital y una propiedad online que indica si la sala de conferencias está en línea o no.

Normalmente, no desea modificar la ontología del sector directamente porque quiere poder incorporar actualizaciones a su solución en el futuro (lo cual sobrescribiría estas adiciones). En su lugar, estos tipos de adiciones se pueden realizar en su propia jerarquía de la interfaz que se extiende desde la ontología RealEstateCore basada en DTDL. Cada interfaz que se crea utiliza las herencias de varias interfaces para extender su interfaz de RealEstateCore primaria y su interfaz primaria desde la jerarquía de interfaz extendida. Este enfoque le permite hacer uso de la ontología del sector y de las adiciones de forma conjunta.

Para extender la ontología del sector, cree sus propias interfaces que amplíen las interfaces existentes y agregue las nuevas funcionalidades a las interfaces extendidas. Para cada interfaz que desee extender, cree una nueva interfaz. Las interfaces extendidas están escritas en DTDL (consulte DTDL para interfaces extendidas más adelante en este documento).

Después de extender la parte de la jerarquía mostrada anteriormente, la jerarquía extendida es similar al diagrama siguiente. Aquí, la interfaz extendida Espacio agrega la propiedad drawingId que contiene un identificador que asocia el gemelo digital al dibujo en 3D. Además, la interfaz ConferenceRoom agrega una propiedad online que contiene el estado en línea de la sala de conferencias. Mediante herencia, la interfaz SalaDeConferencias contiene todas las funcionalidades de la interfaz SalaDeConferencias de RealEstateCore, así como todas las funcionalidades de la interfaz Espacio extendida.

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

No es necesario extender todas las interfaces de la ontología del sector, solo aquellas en las que necesite agregar nuevas funcionalidades. Por ejemplo, si necesita agregar una nueva funcionalidad, como una propiedad arterial a la interfaz Vestíbulo, puede ampliar esa interfaz sin extender otras que también se extienden desde Sala.

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

Relaciones con interfaces extendidas

Las interfaces extendidas también se pueden usar como destino para las relaciones, incluso si la relación se modeló originalmente para tener como destino una interfaz base. Por ejemplo, en la ontología RealEstateCore basada en DTDL, la interfaz Apartamento contiene una Relación denominada incluye que tiene como destino una interfaz Sala (que se muestra en el siguiente diagrama). Esto le permite crear un gráfico de salas para crear el apartamento.

En función de la parte de la jerarquía Sala de la sección anterior, un gemelo digital de Apartamento puede incluir gemelos de tipo Sala, y el Vestíbulo es una extensión de Sala (por lo que un Apartamento puede incluir Vestíbulos). Esto también significa que un Apartamento puede incluir un Vestíbulo extendido con la propiedad arterial, ya que un Vestíbulo extendido cuenta como un Vestíbulo, tal como se hace referencia a él en las relaciones originales.

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

Uso de la jerarquía de espacios extendida

Al crear gemelos digitales mediante la jerarquía de espacio extendido, cada modelo de gemelo digital será uno en la jerarquía de espacio extendido (no así en la ontología original del sector) e incluirá todas las funcionalidades de la ontología del sector y de las interfaces extendidas como resultado de la herencia de las interfaces.

Cada modelo de gemelo digital será una interfaz de la jerarquía extendida como se muestra en el siguiente diagrama.

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

Al consultar los gemelos digitales mediante el identificador de modelo (el operador IS_OF_MODEL), se deben usar los identificadores de modelos de la jerarquía extendida. Por ejemplo, SELECT * FROM DIGITALTWINS WHERE IS_OF_MODEL('dtmi:com:example:Office;1').

Contribución a la ontología original

En algunos casos, extenderá la ontología del sector de una forma que sea muy útil para la mayoría de los usuarios de la ontología. En este caso, debería considerar la posibilidad de contribuir con sus extensiones a la ontología original. Cada ontología tiene un proceso diferente de contribución, por lo que debe consultar el repositorio de GitHub de la ontología para obtener los detalles de la contribución.

DTDL para nuevas interfaces

El DTDL para las nuevas interfaces que se extienden directamente desde la ontología del sector tiene un aspecto similar al siguiente.

{
  "@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 extendidas

El DTDL de las interfaces extendidas, limitado a la parte descrita anteriormente, tendría el siguiente aspecto.

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

Pasos siguientes

Continúe en la ruta de acceso para desarrollar modelos basados en ontologías: ruta de desarrollo de modelos completa.