Dela via


Utöka ontologier

Den här artikeln använder DTDL-baserad RealEstateCore-ontologi för smarta byggnader som grund för exempel på att utöka ontologier med nya DTDL-egenskaper. De tekniker som beskrivs här är dock allmänna och kan tillämpas på alla delar av en DTDL-baserad ontologi med alla Azure Digital Twins-kompatibla DTDL-funktioner (egenskap, relation, komponent).

Microsofts branschstandardbaserade ontologier, till exempel DTDL-baserad RealEstateCore-ontologi , är ett bra sätt att börja skapa din IoT-lösning. Bransch ontologier tillhandahåller en omfattande uppsättning basgränssnitt som är utformade för din domän och som har utformats för att fungera direkt i Azure IoT-tjänster som Azure Digital Twins.

Det är dock möjligt att din lösning kan ha specifika behov som inte omfattas av branschens ontologi. Du kanske till exempel vill länka dina digitala tvillingar till 3D-modeller som lagras i ett separat system. I det här fallet kan du utöka en av dessa ontologier för att lägga till dina egna funktioner samtidigt som du behåller alla fördelar med den ursprungliga ontologin.

RealEstateCore-utrymmeshierarki

I den DTDL-baserade RealEstateCore-ontologin används rymdhierarkin för att definiera olika typer av utrymmen: Rum, Byggnader, Zon och så vidare. Hierarkin sträcker sig från var och en av dessa modeller för att definiera olika typer av rum, byggnader och zoner.

En del av hierarkin ser ut som diagrammet nedan.

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

Mer information om RealEstateCore-ontologi finns i Digital Twins Definition Language-baserad RealEstateCore-ontologi för smarta byggnader på GitHub.

Utöka utrymmeshierarkin RealEstateCore

Ibland har din lösning specifika behov som inte omfattas av branschens ontologi. Om du utökar hierarkin kan du i det här fallet fortsätta att använda branschens ontologi samtidigt som du anpassar den efter dina behov.

I den här artikeln diskuterar vi två olika fall där det är användbart att utöka ontologins hierarki:

  • Lägga till nya gränssnitt för begrepp som inte finns i branschens ontologi.
  • Lägga till extra egenskaper, relationer eller komponenter i befintliga gränssnitt.

Lägga till nya gränssnitt för nya begrepp

I det här fallet vill du lägga till gränssnitt för begrepp som behövs för din lösning som inte finns i branschens ontologi. Om din lösning till exempel har andra typer av rum som inte representeras i DTDL-baserade RealEstateCore-ontologin kan du lägga till dem genom att utöka dem direkt från RealEstateCore-gränssnitten.

Exemplet nedan visar en lösning som måste representera "fokusrum", som inte finns i RealEstateCore-ontologin. Ett fokusrum är ett litet utrymme som är utformat för att människor ska kunna fokusera på en uppgift ett par timmar i taget.

För att utöka branschens ontologi med det här nya konceptet skapar du ett nytt gränssnitt som sträcker sig från gränssnitten i branschens ontologi.

När du har lagt till fokusrumsgränssnittet visar den utökade hierarkin den nya rumstypen.

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

Lägga till extra funktioner i befintliga gränssnitt

I det här fallet vill du lägga till fler egenskaper, relationer eller komponenter i gränssnitt som finns i branschens ontologi.

I det här avsnittet visas två exempel:

  • Om du skapar en lösning som visar 3D-ritningar med blanksteg som du redan har i ett befintligt system kanske du vill associera varje digital tvilling med dess 3D-ritning (efter ID) så att lösningen även kan hämta 3D-ritningen från det befintliga systemet när lösningen visar information om utrymmet.
  • Om din lösning behöver spåra online-/offlinestatusen för konferensrum kanske du vill spåra konferensrummets status för användning i visning eller frågor.

Båda exemplen kan implementeras med nya egenskaper: en drawingId egenskap som associerar 3D-ritningen med den digitala tvillingen och en online egenskap som anger om konferensrummet är online eller inte.

Vanligtvis vill du inte ändra branschens ontologi direkt eftersom du vill kunna införliva uppdateringar i din lösning i framtiden (vilket skulle skriva över dina tillägg). I stället kan den här typen av tillägg göras i din egen gränssnittshierarki som sträcker sig från DTDL-baserade RealEstateCore-ontologin. Varje gränssnitt som du skapar använder flera gränssnittsarv för att utöka det överordnade RealEstateCore-gränssnittet och dess överordnade gränssnitt från den utökade gränssnittshierarkin. Med den här metoden kan du använda branschens ontologi och dina tillägg tillsammans.

Om du vill utöka branschens ontologi skapar du egna gränssnitt som sträcker sig från gränssnitten i branschens ontologi och lägger till de nya funktionerna i dina utökade gränssnitt. Skapa ett nytt gränssnitt för varje gränssnitt som du vill utöka. De utökade gränssnitten är skrivna i DTDL (se DTDL för utökade gränssnitt senare i det här dokumentet).

När du har utökat den del av hierarkin som visas ovan ser den utökade hierarkin ut som diagrammet nedan. Här lägger det utökade space-gränssnittet till egenskapen drawingId som innehåller ett ID som associerar den digitala tvillingen med 3D-ritningen. Dessutom lägger ConferenceRoom-gränssnittet till en online egenskap som innehåller onlinestatusen för konferensrummet. Genom arv innehåller ConferenceRoom-gränssnittet alla funktioner från RealEstateCore ConferenceRoom-gränssnittet och alla funktioner från det utökade space-gränssnittet.

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

Du behöver inte utöka alla gränssnitt i branschens ontologi, bara de där du behöver lägga till nya funktioner. Om du till exempel behöver lägga till en ny funktion, till exempel en arterial egenskap i hallgränssnittet, kan du utöka gränssnittet utan att utöka andra gränssnitt som också sträcker sig från Room.

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

Relationer till utökade gränssnitt

Utökade gränssnitt kan också användas som mål för relationer, även om relationen ursprungligen modelleras för att rikta in sig på ett basgränssnitt. I den DTDL-baserade RealEstateCore-ontologin innehåller lägenhetsgränssnittet till exempel en relation med namnet som riktar sig mot ett rumsgränssnitt (visas i diagrammet nedan). På så sätt kan du skapa en graf över rum som utgör lägenheten.

Baserat på den del av rumshierarkin från föregående avsnitt kan en digital lägenhetstvilling innehålla tvillingar av rumstyp, och Hall är en förlängning av Rum (så en lägenhet kan innehålla korridorer). Det innebär också att en lägenhet kan innehålla en utökad hall med arterial egenskapen, eftersom en utökad hall räknas som en hall som den refereras till i de ursprungliga relationerna.

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

Använda hierarkin för utökat utrymme

När du skapar digitala tvillingar med den utökade rymdhierarkin kommer varje digital tvillings modell att vara en från den utökade rymdhierarkin (inte den ursprungliga branschontologin) och kommer att innehålla alla funktioner från branschens ontologi och de utökade gränssnitten via gränssnittsarv.

Varje digital tvillings modell är ett gränssnitt från den utökade hierarkin, som visas i diagrammet nedan.

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

När du frågar efter digitala tvillingar med hjälp av modell-ID :t (operatorn IS_OF_MODEL ) ska modell-ID:t från den utökade hierarkin användas. Exempel: SELECT * FROM DIGITALTWINS WHERE IS_OF_MODEL('dtmi:com:example:Office;1')

Bidra tillbaka till den ursprungliga ontologin

I vissa fall utökar du branschens ontologi på ett sätt som i stort sett är användbart för de flesta användare av ontologin. I det här fallet bör du överväga att bidra med dina tillägg tillbaka till den ursprungliga ontologin. Varje ontologi har en annan process för att bidra, så kontrollera ontologins GitHub-lagringsplats för bidragsinformation.

DTDL för nya gränssnitt

DTDL för nya gränssnitt som sträcker sig direkt från branschens ontologi skulle se ut så här.

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

DTDL för utökade gränssnitt

DTDL för de utökade gränssnitten, som är begränsade till den del som beskrivs ovan, skulle se ut så här.

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

Nästa steg

Fortsätt på vägen för att utveckla modeller baserat på ontologier: Fullständig modellutvecklingsväg.