Iparági szabványnak megfelelő onlogikák átalakítása DTDL-vé az Azure Digital Twinshez
A legtöbb ontológiák szemantikai webes szabványokon alapulnak, például OWL, RDF és RDFS.
Ha egy modellt az Azure Digital Twins használatával szeretne használni, annak DTDL formátumban kell lennie. Ez a cikk általános tervezési útmutatást nyújt az RDF-alapú modellek DTDL-vé alakításához szükséges konverziós minta formájában, hogy azok az Azure Digital Twinsben is használhatók legyenek.
A cikk RDF- és OWL-konverterekhez is tartalmaz mintakonverter-kódot , amely az építőipar más sémáira is kiterjeszthető.
Bár a cikkben szereplő példák épületközpontúak, hasonló folyamatokat alkalmazhat a különböző iparágakban található szabványos ontologiákra, hogy ezeket is DTDL-vé alakítsa.
Konverziós minta
Az RDF-alapú modellek DTDL-vé való konvertálásához számos külső kódtár használható. Ezen kódtárak némelyike lehetővé teszi a modellfájl gráfba való betöltését. A gráfon végighaladva megkeresheti az RDFS- és OWL-szerkezeteket, és átalakíthatja őket DTDL-vé.
Az alábbi táblázat egy példa az RDFS- és OWL-szerkezetek DTDL-re való leképezésére.
RDFS/OWL-koncepció | RDFS/OWL-szerkezet | DTDL-koncepció | DTDL-szerkezet |
---|---|---|---|
Osztályok | owl:Class IRI-utótag rdfs:label rdfs:comment |
Interfész | @type:Interface @id displayName comment |
Alosztályok | owl:Class IRI-utótag rdfs:label rdfs:comment rdfs:subClassOf |
Interfész | @type:Interface @id displayName comment extends |
Adattípus tulajdonságai | owl:DatatypeProperty rdfs:label vagy INode rdfs:label rdfs:range |
Felület tulajdonságai | @type:Property name displayName schema |
Objektum tulajdonságai | owl:ObjectProperty rdfs:label vagy INode rdfs:range rdfs:comment rdfs:label |
Kapcsolat | type:Relationship name target (vagy kihagyva, ha nem rdfs:range )comment displayName |
Az alábbi C#-kódrészlet bemutatja, hogyan töltődik be egy RDF-modellfájl egy gráfba, és hogyan konvertálódik DTDL-vé a dotNetRDF-kódtár használatával.
using VDS.RDF.Ontology;
using VDS.RDF.Parsing;
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace DigitalTwins_Samples
{
public class DigitalTwinsConvertRDFSample
{
public void Run()
{
Console.WriteLine("Reading file...");
FileLoader.Load(_ontologyGraph, rdfFile.FullName);
// Start looping through for each owl:Class
foreach (OntologyClass owlClass in _ontologyGraph.OwlClasses)
{
// Generate a DTMI for the owl:Class
string Id = GenerateDTMI(owlClass);
if (!String.IsNullOrEmpty(Id))
{
Console.WriteLine($"{owlClass.ToString()} -> {Id}");
// Create Interface
var dtdlInterface = new DtdlInterface
{
Id = Id,
Type = "Interface",
DisplayName = GetInterfaceDisplayName(owlClass),
Comment = GetInterfaceComment(owlClass),
Contents = new List<DtdlContents>(),
};
// An OWL graph can have parent/child classes.
// So to understand if an OWL class is a base class or a child class,
// look for a superclass on any given OWL class.
// If found, convert these to parent + child Interfaces using DTDL extends.
IEnumerable<OntologyClass> foundSuperClasses = owlClass.DirectSuperClasses;
//...
}
// Add interface to the list of interfaces
_interfaceList.Add(dtdlInterface);
}
// Serialize to JSON
var json = JsonConvert.SerializeObject(_interfaceList);
}
}
}
Konverterminták
Ez a szakasz RDF- és OWL-konverterek mintakonverter-kódját tartalmazza, amely az építőipar más sémáira is kiterjeszthető.
RDF-konverteralkalmazás
Elérhető egy mintaalkalmazás, amely egy RDF-alapú modellfájlt konvertál dTDL 2-es (v2-es) verzióra. A DTDL v2-t az Azure Digital Twins támogatja, de a DTDL v2-modellek újabb DTDL v3-ra való konvertálásához is követheti ezeket az utasításokat .
A mintaalkalmazás érvényesítve lett a Brick-sémához , és kiterjeszthető az építőipar egyéb sémáira is (például a Building Topology Ontology (BOT), a Szemantikus érzékelő hálózata vagy a BuildingSmart Industry Foundation Classes (IFC)).
A minta egy RdfToDtdlConverter nevű .NET Core parancssori alkalmazás.
Ha le szeretné tölteni a kódot a gépére, válassza a kód tallózása gombot a mintalap címe alatt, amely a minta GitHub-adattárába viszi. A minta .zip RdfToDtdlConverter-main.zip nevű fájlként való letöltéséhez kattintson a Kód gombra, és töltse le a ZIP-t. Ezután kibonthatja a fájlt, és felfedezheti a kódot.
Ezzel a mintával megtekintheti az átalakítási mintákat a kontextusban, és építőelemként használhatja saját alkalmazásai számára a modellkonverziókat a saját igényeinek megfelelően.
OWL2DTDL konverter
A OWL2DTDL Konverter egy mintakódbázis, amely egy OWL-ontológiát DTDL-interfészdeklarációk készletére fordít le, amelyek az Azure Digital Twins szolgáltatással használhatók. Az ontológiai hálózatok esetében is működik, amelyek egy gyökér ontológiából készülnek, és deklarációkon keresztül owl:imports
újrahasználják a többi ontológiát. Ez a konverter a Real Estate Core Ontology DTDL-re való fordítására szolgál, és bármilyen OWL-alapú ontológiához használható.
Ez a mintakód nem egy átfogó megoldás, amely támogatja az OWL-specifikáció teljes egészét, de ötleteket és kezdő kódot adhat, amelyeket saját ontológiai betöltési folyamatok fejlesztéséhez használhat.
Következő lépések
Folytassa a modellek fejlesztésének útját az ontológiák alapján: Teljes modellfejlesztési út.