تحويل الرموز القياسية للصناعة إلى DTDL ل Azure Digital Twins

تستند معظم عمليات تخطيط الشبكة إلى معايير الويب الدلالية مثل OWL وRDF وRDFS.

لاستخدام نموذج مع Azure Digital Twins، يجب أن يكون بتنسيق DTDL. توضح هذه المقالة إرشادات التصميم العامة في شكل نمط تحويل لتحويل النماذج المستندة إلى RDF إلى DTDL بحيث يمكن استخدامها مع Azure Digital Twins.

تحتوي المقالة أيضا على نموذج التعليمات البرمجية للمحول لمحولات RDF وOWL، والتي يمكن توسيعها للمخططات الأخرى في صناعة البناء.

على الرغم من أن الأمثلة الواردة في هذه المقالة تركز على الإنشاء، يمكنك تطبيق عمليات مماثلة على المخططات القياسية عبر صناعات مختلفة لتحويلها إلى DTDL أيضا.

نمط التحويل

هناك العديد من مكتبات الجهات الخارجية التي يمكن استخدامها عند تحويل النماذج المستندة إلى RDF إلى DTDL. تسمح لك بعض هذه المكتبات بتحميل ملف النموذج الخاص بك في رسم بياني. يمكنك إجراء تكرار حلقي عبر الرسم البياني للبحث عن بنى RDFS وOWL معينة، وتحويلها إلى DTDL.

الجدول التالي هو مثال على كيفية تعيين بنيات RDFS وOWL إلى DTDL.

مفهوم RDFS/OWL إنشاء RDFS/OWL مفهوم DTDL إنشاء DTDL
الفصول owl:Class
لاحقة IRI
rdfs:label
rdfs:comment
الواجهة @type:Interface
@id
displayName
comment
الفئات الفرعيه owl:Class
لاحقة IRI
rdfs:label
rdfs:comment
rdfs:subClassOf
الواجهة @type:Interface
@id
displayName
comment
extends
خصائص نوع البيانات owl:DatatypeProperty
rdfs:label أو INode
rdfs:label
rdfs:range
خصائص الواجهة @type:Property
name
displayName
schema
خصائص الكائن owl:ObjectProperty
rdfs:label أو INode
rdfs:range
rdfs:comment
rdfs:label
العلاقة type:Relationship
name
target(أو تم حذفه إذا لم يكن )rdfs:range
comment
displayName

يوضح مقتطف التعليمات البرمجية C# التالي كيفية تحميل ملف نموذج RDF في رسم بياني وتحويله إلى DTDL، باستخدام مكتبة 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);

        }
    }
}

عينات المحول

يحتوي هذا القسم على نموذج التعليمات البرمجية للمحول لمحولات RDF وOWL، والتي يمكن توسيعها للمخططات الأخرى في صناعة البناء.

تطبيق محول RDF

هناك نموذج تطبيق متاح يحول ملف نموذج يستند إلى RDF إلى DTDL الإصدار 2 (v2). يتم دعم DTDL v2 من قبل Azure Digital Twins، ولكن يمكنك أيضا اتباع هذه الإرشادات لتحويل نماذج DTDL v2 إلى DTDL v3 الأحدث.

تم التحقق من صحة نموذج التطبيق لمخطط الطوب، ويمكن توسيعه للمخططات الأخرى في صناعة البناء (مثل مخطط البناء Ontology (BOT) أو شبكة الاستشعار الدلالية أو فئات مؤسسة صناعة BuildingSmart (IFC)).

العينة هي تطبيق سطر أوامر .NET Core يسمى RdfToDtdlConverter.

لتنزيل التعليمات البرمجية إلى جهازك، حدد الزر Browse code أسفل العنوان في صفحة العينة، والذي سينقلك إلى مستودع GitHub للعينة. حدد الزر Code و Download ZIP لتنزيل العينة كملف .zip يسمى RdfToDtdlConverter-main.zip. يمكنك بعد ذلك فك ضغط الملف واستكشاف التعليمات البرمجية.

لقطة شاشة لمستودع RdfToDtdlConverter على GitHub. يتم تحديد الزر Code، وينتج مربع حوار حيث يتم تمييز الزر Download ZIP.

يمكنك استخدام هذه العينة لمشاهدة أنماط التحويل في السياق، وأن يكون لديك ككتلة بناء لتطبيقاتك الخاصة التي تقوم بتحويلات النموذج وفقا لاحتياجاتك الخاصة.

محول OWL2DTDL

محول OWL2DTDL هو نموذج قاعدة تعليمات برمجية تترجم علم معلومات OWL إلى مجموعة من إعلانات واجهة DTDL، والتي يمكن استخدامها مع خدمة Azure Digital Twins. كما أنه يعمل لشبكات علم الأورام، مصنوعة من أحد الأورام الجذر التي تعيد استخدام الأنطولوجيا الأخرى من خلال owl:imports الإعلانات. تم استخدام هذا المحول لترجمة Real Estate Core Ontology إلى DTDL ويمكن استخدامه لأي علم ترجمة مستند إلى OWL.

نموذج التعليمات البرمجية هذا ليس حلا شاملا يدعم كامل مواصفات OWL، ولكن يمكن أن يمنحك أفكارا وبدء التعليمات البرمجية التي يمكنك استخدامها في تطوير مسارات استيعاب علم الأورام الخاصة بك.

الخطوات التالية

تابع على مسار تطوير النماذج استنادا إلى النماذج: مسار تطوير النموذج الكامل.