Rozšíření ontologií
Tento článek používá pro inteligentní budovy jako základ rozšíření ontologií realEstateCore založené na DTDL pro příklady rozšíření ontologií s novými vlastnostmi DTDL. Zde popsané techniky jsou ale obecné a lze je použít na libovolnou část ontologie založené na DTDL s libovolnou schopností DTDL kompatibilní s Azure Digital Twins (vlastnost, relace, komponenta).
Standardní ontologie Od Microsoftu, jako je například ontologie realEstateCore založená na DTDL, představují skvělý způsob, jak začít vytvářet řešení IoT. Oborové ontologie poskytují bohatou sadu základních rozhraní, která jsou navržená pro vaši doménu a navržená tak, aby fungovala předem ve službách Azure IoT, jako je Azure Digital Twins.
Je však možné, že vaše řešení může mít specifické potřeby, které nejsou pokryty oborovou ontologií. Můžete například chtít propojit digitální dvojčata s 3D modely uloženými v samostatném systému. V tomto případě můžete jednu z těchto ontologií rozšířit, abyste mohli přidat vlastní možnosti a zároveň zachovat všechny výhody původní ontologie.
RealEstateCore space hierarchy
V ontologii realEstateCore založené na DTDL se hierarchie prostorů používá k definování různých druhů prostorů: Místnosti, budovy, zóna atd. Hierarchie se rozšiřuje z každého z těchto modelů, aby definovala různé druhy místností, budov a zón.
Část hierarchie vypadá jako následující diagram.
Další informace o ontologii RealEstateCore najdete v tématu RealEstateCore ontologie založené na jazyce RealEstateCore založené na technologii Digital Twins Pro inteligentní budovy na GitHubu.
Rozšíření hierarchie prostoru RealEstateCore
V některých případech má vaše řešení specifické potřeby, které oborová ontologie nepokrývá. V tomto případě rozšíření hierarchie umožňuje pokračovat v používání oborové ontologie a zároveň ji přizpůsobit vašim potřebám.
V tomto článku probereme dva různé případy, kdy je rozšíření hierarchie ontologie užitečné:
- Přidání nových rozhraní pro koncepty, které nejsou v oboru ontologie
- Přidání dalších vlastností, relací nebo součástí do existujících rozhraní
Přidání nových rozhraní pro nové koncepty
V tomto případě chcete přidat rozhraní pro koncepty potřebné pro vaše řešení, které nejsou přítomné v oboru ontologie. Pokud má vaše řešení například jiné typy místností, které nejsou reprezentované v ontologii RealEstateCore založené na DTDL, můžete je přidat tak, že je rozšíříte přímo z rozhraní RealEstateCore.
Následující příklad představuje řešení, které musí představovat "detailní místnosti", které nejsou přítomné v ontologii RealEstateCore. Fokus je malý prostor určený pro lidi, aby se mohli soustředit na úkol na pár hodin najednou.
Pokud chcete rozšířit oborovou ontologii pomocí tohoto nového konceptu, vytvořte nové rozhraní, které se rozšiřuje z rozhraní v oboru ontologie.
Po přidání rozhraní detailní místnosti se v rozšířené hierarchii zobrazí nový typ místnosti.
Přidání dalších funkcí do existujících rozhraní
V tomto případě chcete do rozhraní, která jsou v oboru ontologie, přidat další vlastnosti, relace nebo komponenty.
V této části uvidíte dva příklady:
- Pokud vytváříte řešení, které zobrazuje 3D výkresy prostorů, které už máte v existujícím systému, můžete chtít přidružit každé digitální dvojče k 3D výkresu (podle ID), aby při zobrazení informací o prostoru řešení mohlo také načíst 3D výkres z existujícího systému.
- Pokud vaše řešení potřebuje sledovat online nebo offline stav konferenčních místností, můžete chtít sledovat stav konferenční místnosti pro použití v zobrazení nebo dotazech.
Oba příklady lze implementovat s novými vlastnostmi: drawingId
vlastnost, která přidruží 3D výkres k digitálnímu online
dvojčeti a vlastnost, která označuje, jestli je konferenční místnost online nebo ne.
Obvykle nechcete upravovat oborové ontologie přímo, protože v budoucnu chcete mít možnost začlenit do svého řešení aktualizace (což by přepsalo vaše doplňky). Místo toho je možné tyto druhy sčítání vytvořit ve vaší vlastní hierarchii rozhraní, která se rozšiřuje z ontologie realEstateCore založeného na DTDL. Každé rozhraní, které vytvoříte, používá více dědičností rozhraní k rozšíření nadřazeného rozhraní RealEstateCore a jeho nadřazeného rozhraní z vaší rozšířené hierarchie rozhraní. Tento přístup vám umožní společně využívat oborové ontologie a vaše doplňky.
Pokud chcete rozšířit oborové ontologie, vytvořte vlastní rozhraní, která se rozšiřují z rozhraní v oboru ontologie, a přidejte do rozšířených rozhraní nové možnosti. Pro každé rozhraní, které chcete rozšířit, vytvořte nové rozhraní. Rozšířená rozhraní jsou napsána v DTDL (viz DTDL pro rozšířená rozhraní dále v tomto dokumentu).
Po rozšíření části výše uvedené hierarchie vypadá rozšířená hierarchie jako následující diagram. Rozšířené rozhraní prostoru zde přidá drawingId
vlastnost, která bude obsahovat ID, které přidruží digitální dvojče k 3D výkresu. Kromě toho rozhraní ConferenceRoom přidá online
vlastnost, která bude obsahovat online stav konferenční místnosti. Prostřednictvím dědičnosti rozhraní ConferenceRoom obsahuje všechny možnosti z rozhraní RealEstateCore ConferenceRoom a všechny možnosti z rozšířeného rozhraní prostoru.
Nemusíte rozšiřovat všechna rozhraní v oboru ontologie, pouze ty, kde potřebujete přidat nové funkce. Pokud například potřebujete přidat novou funkci, například arterial
vlastnost do rozhraní Chodby, můžete toto rozhraní rozšířit, aniž byste rozšířili další rozhraní, která také rozšiřují z místnosti.
Relace k rozšířeným rozhraním
Rozšířená rozhraní lze také použít jako cíl relací, i když je relace původně modelována tak, aby cílila na základní rozhraní. Například v ontologii realEstateCore založené na DTDL obsahuje rozhraní Apartment pojmenovanou relaci, která cílí na rozhraní místnosti (znázorněno v diagramu níže). Díky tomu můžete vytvořit graf místností pro vytvoření bytu.
V závislosti na části hierarchie místností z předchozí části může digitální dvojče apartmánu obsahovat dvojčata typu pokoje a chodba je rozšířením pokoje (takže apartmán může obsahovat chodby). To také znamená, že byt může obsahovat rozšířenou chodbu s arterial
nemovitostí, protože rozšířená chodba se počítá jako chodba, jak je odkazována v původních relacích.
Použití rozšířené hierarchie prostoru
Při vytváření digitálních dvojčat pomocí rozšířené hierarchie prostorů bude každý model digitálního dvojčete jeden z rozšířených prostorových hierarchií (nikoli původní oborové ontologie) a bude zahrnovat všechny možnosti z oboru ontologie a rozšířené rozhraní prostřednictvím dědičnosti rozhraní.
Každý model digitálního dvojčete bude rozhraním z rozšířené hierarchie, jak je znázorněno v následujícím diagramu.
Při dotazování na digitální dvojčata pomocí ID modelu ( IS_OF_MODEL
operátor) by se měla použít ID modelů z rozšířené hierarchie. Například SELECT * FROM DIGITALTWINS WHERE IS_OF_MODEL('dtmi:com:example:Office;1')
.
Přispívání zpět do původní ontologie
V některých případech rozšíříte oborovou ontologii způsobem, který je pro většinu uživatelů ontologie obecně užitečný. V takovém případě zvažte přispívání rozšíření zpět do původní ontologie. Každá ontologie má jiný proces pro přispívání, takže podrobnosti o příspěvku najdete v úložišti Ontologie na GitHubu.
DTDL pro nová rozhraní
DTDL pro nová rozhraní, která se rozšiřují přímo z oboru ontologie, by vypadala takto.
{
"@id": "dtmi:com:example:FocusRoom;1",
"@type": "interface",
"extends": "dtmi:digitaltwins:rec_3_3:building:Office;1",
"@context": "dtmi:dtdl:context;2"
}
DTDL pro rozšířená rozhraní
DTDL pro rozšířená rozhraní, omezená na část probíranou výše, by vypadala takto.
[
{
"@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"
}
]
Další kroky
Pokračujte na cestě pro vývoj modelů založených na ontologiích: Úplná cesta vývoje modelu.