Mengonversi ontologi standar industri ke DTDL untuk Azure Digital Twins
Sebagian besar ontologi didasarkan pada standar web semantik seperti OWL, RDF, dan RDFS.
Untuk menggunakan model dengan Azure Digital Twins, model harus dalam format DTDL. Artikel ini menjelaskan panduan desain umum dalam bentuk pola konversi untuk mengonversi model berbasis RDF ke DTDL sehingga dapat digunakan dengan Azure Digital Twins.
Artikel ini juga berisi sampel kode konverter untuk konverter RDF dan OWL, yang dapat diperluas untuk skema lain dalam industri bangunan.
Meskipun contoh dalam artikel ini berfokus pada bangunan, Anda dapat menerapkan proses serupa ke ontologi standar di berbagai industri untuk mengonversinya ke DTDL juga.
Pola konversi
Ada beberapa pustaka pihak ketiga yang dapat digunakan saat mengonversi model berbasis RDF ke DTDL. Beberapa pustaka ini memungkinkan Anda memuat file model ke dalam grafik. Anda dapat mengulang grafik yang mencari konstruksi RDFS dan OWL tertentu dan mengonversinya ke DTDL.
Tabel berikut adalah contoh bagaimana konstruksi RDFS dan OWL dapat dipetakan ke DTDL.
Konsep RDFS/OWL | Konstruksi RDFS/OWL | Konsep DTDL | Konstruksi DTDL |
---|---|---|---|
Kelas | owl:Class Akhiran IRI rdfs:label rdfs:comment |
Antarmuka | @type:Interface @id displayName comment |
Subkelas | owl:Class Akhiran IRI rdfs:label rdfs:comment rdfs:subClassOf |
Antarmuka | @type:Interface @id displayName comment extends |
Properti Jenis Data | owl:DatatypeProperty rdfs:label atau INode rdfs:label rdfs:range |
Properti Antarmuka | @type:Property name displayName schema |
Properti Obyek | owl:ObjectProperty rdfs:label atau INode rdfs:range rdfs:comment rdfs:label |
Hubungan | type:Relationship name target (atau dihilangkan jika tidak ada rdfs:range )comment displayName |
Cuplikan kode C# berikut menunjukkan bagaimana file model RDF dimuat ke dalam grafik dan dikonversi ke DTDL, menggunakan pustaka dotNetRDF.
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);
}
}
}
Sampel konverter
Bagian ini berisi contoh kode konverter untuk konverter RDF dan OWL, yang dapat diperluas untuk skema lain di industri bangunan.
Aplikasi konverter RDF
Ada aplikasi sampel yang tersedia yang mengonversi file model berbasis RDF ke DTDL Versi 2 (v2). DTDL v2 didukung oleh Azure Digital Twins, tetapi Anda juga dapat mengikuti instruksi ini setelah itu untuk mengonversi model DTDL v2 ke DTDL v3 yang lebih baru.
Aplikasi sampel telah divalidasi untuk skema Bata, dan dapat diperluas untuk skema lain dalam industri bangunan (seperti Ontologi Topologi Bangunan (BOT), Jaringan Sensor Semantik, atau bangunan Kelas Yayasan Industri (IFC)).
Sampel adalah aplikasi baris perintah .NET Core yang disebut RdfToDtdlConverter.
Untuk mengunduh kode ke mesin Anda, pilih tombol Telusuri kode di bawah judul pada halaman sampel, yang akan membawa Anda ke repo GitHub untuk sampel. Pilih tombol Kode dan Unduh ZIP untuk mengunduh sampel sebagai file .zip yang disebut RdfToDtdlConverter-main.zip. Anda kemudian dapat membuka zip file dan menjelajahi kode.
Anda dapat menggunakan sampel ini untuk melihat pola konversi dalam konteks, dan memilikinya sebagai blok penyusun untuk aplikasi Anda sendiri yang melakukan konversi model sesuai dengan kebutuhan spesifik Anda sendiri.
Konverter OWL2DTDL
OWL2DTDL Converter adalah basis kode sampel yang menerjemahkan ontologi OWL ke dalam serangkaian deklarasi antarmuka DTDL, yang dapat digunakan dengan layanan Azure Digital Twins. Ini juga bekerja untuk jaringan ontologi, terbuat dari satu akar ontologi menggunakan kembali ontologi lain melalui deklarasi owl:imports
. Konverter ini digunakan untuk menerjemahkan Ontologi Inti Real Estat ke DTDL dan dapat digunakan untuk setiap ontologi berbasis OWL.
Kode sampel ini bukan solusi komprehensif yang mendukung keseluruhan spesifikasi OWL, tetapi dapat memberi Anda ide dan kode awal yang dapat Anda gunakan dalam mengembangkan alur penyerapan ontologi Anda sendiri.
Langkah berikutnya
Lanjutkan pada jalur untuk mengembangkan model berdasarkan ontologi: Jalur pengembangan model lengkap.