İkiz modelleri ve bunları nasıl tanımladığınız hakkında bilgi Azure Digital Twins

Bu özelliğin Azure Digital Twins özelliği, kendi kelime dağarcığınızı tanımlama ve ikiz grafını işletmenizin kendi tanımlı terimleriyle oluşturma becerisidir. Bu özellik, kullanıcı tarafından sağlanan modeller aracılığıyla sağlanır. Modelleri, dünyanıza ilişkin bir açıklamanın içinde yer alan bir açıklama olarak düşünabilirsiniz. Azure Digital Twins modelleri JSON-LD tabanlı Dijital İkiz Tanımlama Dili (DTDL) içinde temsil edilmiştir.

Model, nesne odaklı programlama dilindeki sınıfa benzer ve gerçek iş ortamınız için belirli bir kavram için veri şekli tanımlar. Modellerin adları (Room veya TemperatureSensor gibi) vardır ve özellikler, telemetri/olaylar gibi öğeleri ve ortamınız içinde bu tür bir varlığın neler yapalarını açıklayan komutlar içerir. Daha sonra bu tür açıklamasına uygun belirli varlıkları temsil eden dijital ikizler oluşturmak için bu modelleri kullanacağız.

Modeller için Dijital İkiz Tanımlama Dili (DTDL)

Veri Azure Digital Twins, Digital Twins Dili (DTDL) kullanılarak tanımlanır.

DTDL için tam dil özellikleri şu GitHub: Digital Twins Dili (DTDL) - Sürüm 2. Bu sayfa, kendi DTDL modellerinizi yazmaya başlamanıza yardımcı olacak ayrıntılı DTDL başvurusu ve örnekler içerir.

JSON-LD tabanlı bir dil olan DTDL, programlama dilinden bağımsız olarak çalışır. DTDL, yalnızca Azure Digital Twins değildir, ancak cihaz verilerini IoT Tak Çalıştır gibi diğer IoT hizmetlerde temsil etmek için de kullanılır. Azure Digital Twins DTDL sürüm 2 kullanıyorsa (DTDL sürüm 1'Azure Digital Twins artık kullanım dışıdır).

Bu makalenin geri kalanında dilin bu makalede nasıl Azure Digital Twins.

Azure Digital Twins DTDL uygulama özellikleri

DTDL kullanan tüm hizmetler DTDL'nin tam olarak aynı özelliklerini uygulamaz. Şu anda desteklemesi Azure Digital Twins bazı DTDL özellikleri vardır:

  • DTDL komutları
  • Özellikler writable veya ilişkilerde özniteliği. Bu öznitelik DTDL belirtimleri başına ayarlansa da, değer bir Azure Digital Twins. Bunun yerine, bu öznitelikler her zaman genel yazma izinlerine sahip dış istemciler tarafından yazılabilir olarak Azure Digital Twins kabul edilir.
  • İlişkilerde minMultiplicity maxMultiplicity ve özellikleri. Bu öznitelikler DTDL belirtimleri başına ayarlansa da, değerler bir Azure Digital Twins.

DTDL modelinin Azure Digital Twins uyumlu olması için şu gereksinimleri de karşılaması gerekir:

  • Bir modelde tüm üst düzey DTDL öğelerinin arabirimi türünde olması gerekir. Bu gereksinimin nedeni, Azure Digital Twins API'lerinin bir arabirimi veya bir arabirim dizisini temsil eden JSON nesnelerini alamalarıdır. Sonuç olarak, üst düzeyde başka hiçbir DTDL öğe türüne izin verilmez.
  • Azure Digital Twins için DTDL hiçbir komut tanımlamaz.
  • Azure Digital Twins yalnızca tek bir bileşen iç içe yerleştirme düzeyine izin verir, yani bileşen olarak kullanılan arabirimin kendi bileşenlerine sahip olamayabilirsiniz.
  • Arabirimler diğer DTDL arabirimleri içinde satır içinde tanımlanmalıdır; kendi kimliklerine sahip ayrı üst düzey varlıklar olarak tanımlanmalıdır. Daha sonra, başka bir arabirim bu arabirimi bileşen olarak veya devralma yoluyla eklemek istiyorsa, kimliğine başvurur.

Modele genel bakış

Modelin öğeleri

Model tanımında üst düzey kod öğesi bir arabirimidir. Bu tür modelin tamamını kapsüller ve modelin geri kalanı arabiriminde tanımlanır.

DTDL model arabirimi aşağıdaki alanların her biri için sıfır, bir veya daha fazla değer içerebilir:

  • Özellik - Özellikler, bir varlığın durumunu temsil eden veri alanlarıdır (birçok nesne odaklı programlama dilindeki özellikler gibi). Özellikler, depolamayı destekleye sahiptir ve herhangi bir zamanda okunabilir. Daha fazla bilgi için aşağıdaki Özellikler ve telemetri verilerine bakın.

  • Telemetri - Telemetri alanları ölçümleri veya olayları temsil edebilir ve genellikle cihaz algılayıcısı okumalarını açıklamak için kullanılır. Özelliklerin aksine telemetri bir dijital ikizde depolanmış değil; Bu, meydana gelen şekilde işlerinin de zaman içinde gerçekleşmesi gereken bir dizi veri olaydır. Daha fazla bilgi için aşağıdaki Özellikler ve telemetri verilerine bakın.

  • İlişki - İlişkiler, bir dijital ikizin diğer dijital ikizlerle nasıl ilgili olduğunu temsil etmelerini sağlar. İlişkiler, içerir ("zemin oda içerir"), soğutıcılar ("hvac cools room"), isBilledTo ("kullanıcıya faturalandırıldı") gibi farklı anlamları temsil ediyor olabilir. İlişkiler, çözümün birbiriyle ilişkili varlıkların grafını sağlamasına olanak sağlar. İlişkilerin kendi özellikleri de olabilir. Daha fazla bilgi için aşağıdaki İlişkiler'e bakın.

  • Bileşen - Bileşenler, model arabiriminizi diğer arabirimlerin derlemesi olarak derlemenize olanak sağlar. Bir bileşene örnek olarak, bir telefon için model tanımlamada kullanılan frontCamera arabirimi (ve başka bir bileşen arabirimi backCamera) örneğidir. İlk olarak frontCamera için kendi modeli gibi bir arabirim tanımlayın ve sonra bu arabirimi tanımlarken buna Telefon.

    Çözümle ilgili önemli bir parça olan ancak ayrı bir kimliğe ihtiyaç olmayan ve ikiz grafı içinde bağımsız olarak oluşturulma, silinme veya yeniden düzenlemeye gerek olmayan bir şeyi açıklamak için bir bileşen kullanın. Varlıkların ikiz grafiğinde bağımsız varlıklara sahip olması için bunları ilişkilerle bağlantılı farklı modellerin ayrı dijital ikizleri olarak temsil eder.

    İpucu

    Bileşenler, bir model arabiriminde ilgili özellik kümelerini grup etmek için kuruluş için de kullanılabilir. Bu durumda, her bileşeni arabirimin içinde bir ad alanı veya "klasör" olarak düşünebilirsiniz.

    Daha fazla bilgi için aşağıdaki Bileşenler'e bakın.

Not

DTDL'nin özellikleri ayrıca, bir dijital ikizde yürütülen yöntemler (sıfırlama komutu veya bir fanı açma veya kapatma komutu gibi) olan Komutlar'ı tanımlar. Ancak, komutlar şu anda Azure Digital Twins.

Model kodu

İkiz türü modelleri herhangi bir metin düzenleyicisinde yazabilirsiniz. DTDL dili JSON söz dizimlerini izler, bu nedenle modelleri .json uzantısıyla depolamanız gerekir. JSON uzantısını kullanmak, birçok programlama metin düzenleyicisinin DTDL belgeleriniz için temel söz dizimi denetimi ve vurgulaması sağlamalarını sağlar. Ayrıca, için kullanılabilen bir DTDL uzantısı Visual Studio Code.

Modelin alanları:

Alan Açıklama
@id Modelin tanımlayıcısı. biçiminde dtmi:<domain>:<unique-model-identifier>;<model-version-number> olmalıdır.
@type Açıklanan bilgi türlerini tanımlar. Bir arabirim için tür Arabirimi'dir.
@context JSON belgesinin bağlamını ayarlar. Modellerin kullan olması dtmi:dtdl:context;2 gerekir.
displayName [isteğe bağlı] Model için kolay bir ad tanımlama seçeneği sağlar.
contents Kalan tüm arabirim verileri, öznitelik tanımları dizisi olarak buraya yerleştirilir. Her öznitelik, tanımladığınız arabirim bilgileri sıralamalarını tanımlamak için bir ( özellik , telemetri , komut , ilişki veya bileşen ) sağlay olmalı ve ardından gerçek özniteliği tanımlayan bir özellik kümesi (örneğin, ve bir özellik tanımlamak @type name schema için) sağlanmaktadır.

Örnek model

Bu bölümde, DTDL arabirimi olarak yazılmış bir temel model örneği yer almaktadır.

Bu model, bir kimlik için bir özelliği olan Bir Giriş'i açıklar. Giriş modeli ayrıca Bir Kat modeliyle olan ilişkiyi de tanımlar. Bu ilişki, bir Home ikizin belirli Floor twins'e bağlı olduğunu belirtmek için kullanılabilir.

{
  "@id": "dtmi:com:adt:dtsample:home;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Home",
  "contents": [
    {
      "@type": "Property",
      "name": "id",
      "schema": "string"     
    },    
    {
      "@type": "Relationship",
      "@id": "dtmi:com:adt:dtsample:home:rel_has_floors;1",
      "name": "rel_has_floors",
      "displayName": "Home has floors",
      "target": "dtmi:com:adt:dtsample:floor;1"
    }
  ]
}

Özellikler ve telemetri

Bu bölüm DTDL modellerinde özellikler ve telemetri hakkında daha ayrıntılı bilgi içerir.

Bir özelliğin parçası olarak görünse de alanların kapsamlı bir listesi için DTDL v2 özelliklerinde Özelliği'ne bakın. Telemetri kapsamında görünse de alanların kapsamlı bir listesi için DTDL v2 özelliklerinde Telemetri'ye bakın.

Not

Özellikler writable için DTDL özniteliği şu anda Azure Digital Twins. Modele eklenebilir, ancak Azure Digital Twins zorlanmaz. Daha fazla bilgi için bkz. DTDL Azure Digital Twins özellikleri.

Özellikler ve telemetri arasındaki fark

Burada, DTDL özelliği ile veri analizinde telemetri arasında kavramsal olarak ayrım Azure Digital Twins.

  • Özelliklerin, bir özelliği herhangi bir zamanda okuyabileceği ve değerini aldırarak destek depolama alanına sahip olması beklenir. Özellik yazılabilir ise, özelliğinde bir değer de depoabilirsiniz.
  • Telemetri daha çok olay akışına benzer; Kısa ömürleri olan bir veri iletileri kümesidir. Olayı dinlemeyi ve bu olduğunda gerçekleştireceğim eylemleri ayarlayamazsanız, daha sonra olay izlemesi olmaz. Bu makaleye geri dönüp daha sonra okuyabilirsiniz.
    • C# terimleriyle telemetri bir C# olayına benzer.
    • IoT açısından telemetri genellikle bir cihaz tarafından gönderilen tek bir ölçümdür.

Telemetri genellikle IoT cihazlarında kullanılır çünkü çoğu cihaz, kendi oluşturabilecekleri ölçüm değerlerini depolayamayabilecekleri veya ilgilenmeyabilecekleri için kullanılır. Bunun yerine, bunları "telemetri" olaylarının akışı olarak gönderirler. Bu durumda, telemetri alanı için en son değer için cihazı herhangi bir zamanda sorgulayamzabilirsiniz. Cihazdan gelen iletileri dinlemeli ve iletiler geldiken eyleme geçebilirsiniz.

Sonuç olarak, Azure Digital Twins model tasarlarken büyük olasılıkla ikizlerinizi modellemek için özellikleri kullanabilirsiniz. Bunu yapmak, destek depolama alanına ve veri alanlarını okuma ve sorgulama özelliğine sahip olur.

Telemetri ve özellikler genellikle cihazlardan gelen verileri işlemek için birlikte çalışır. Tüm Azure Digital Twins API'ler aracılığıyla olduğu gibi,normalde cihazlardan telemetri veya özellik olaylarını okumak için giriş işlevinizi kullanır ve yanıt olarak Azure Digital Twins özelliğini ayarlayabilirsiniz.

Telemetri olaylarını api'sini kullanarak da Azure Digital Twins yayımabilirsiniz. Diğer telemetrilerde olduğu gibi bu da dinleyicinin işlemesini gerektiren kısa süreli bir olaydır.

Şema

DTDL'ye göre, özellik ve telemetri özniteliklerinin şeması standart temel türlerden ( , , ve ) ve ve gibi integer diğer double string boolean türlerden dateTime duration olabilir.

İlkel türlere ek olarak, özellik ve telemetri alanları şu karmaşık türlere sahip olabilir:

  • Object
  • Map
  • Enum
  • (yalnızca telemetri)Array

Ayrıca, değerlere birimlerle açıklamaek açıklama ekserliği sağlayan semantik türler de olabilir.

Temel özellik ve telemetri örnekleri

Bir DTDL modeli üzerinde bir özelliğin temel bir örneği aşağıdaki gibidir. Bu örnekte, Bir Giriş'in ID özelliği gösterir.

{
  "@id": "dtmi:com:adt:dtsample:home;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Home",
  "contents": [
    {
      "@type": "Property",
      "name": "id",
      "schema": "string"     
    },    
    {
      "@type": "Relationship",
      "@id": "dtmi:com:adt:dtsample:home:rel_has_floors;1",
      "name": "rel_has_floors",
      "displayName": "Home has floors",
      "target": "dtmi:com:adt:dtsample:floor;1"
    }
  ]
}

Burada DTDL modelli telemetri alanıyla ilgili temel bir örnek veserde yer alan bir örnek veserdir. Bu örnekte Bir Algılayıcıda Sıcaklık telemetrisi yer alıyor.

{
  "@id": "dtmi:com:adt:dtsample:sensor;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Sensor",
  "contents": [
    {
    "@type": "Telemetry",
    "name": "Temperature",
    "schema": "double"      
    },
    {
      "@type": "Property",
      "name": "humidity",
      "schema": "double"      
    }
  ]
}

Karmaşık (nesne) tür örneği

Özellikler ve telemetri, bir tür de dahil olmak üzere karmaşık türler Object olabilir.

Aşağıdaki örnekte, ana modelin adresi için bir özelliği olan başka bir sürümü gösterir. address , sokak, şehir, eyalet ve zip için kendi alanları olan bir nesnedir.

{
  "@id": "dtmi:com:adt:dtsample:home;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Home",
  "extends": "dtmi:com:adt:dtsample:core;1",
  "contents": [
    {
      "@type": "Property",
      "name": "address",
      "schema": {
        "@type": "Object",
        "fields": [
          {
            "name": "street",
            "schema": "string"
          },
          {
            "name": "city",
            "schema": "string"
          },
          {
            "name": "state",
            "schema": "string"
          },
          {
            "name": "zip",
            "schema": "string"
          }
        ]
      }
    },
    {
      "@type": "Relationship",
      "@id": "dtmi:com:adt:dtsample:home:rel_has_floors;1",
      "name": "rel_has_floors",
      "displayName": "Home has floors",
      "target": "dtmi:com:adt:dtsample:floor;1",
      "properties": [
        {
          "@type": "Property",
          "name": "lastOccupied",
          "schema": "dateTime"
        }
      ]
    }
  ]
}

Semantik tür örneği

Semantik türler, bir birim ile bir değeri ifade etmelerini mümkün hale getirmektedir. Özellikler ve telemetri, DTDL tarafından desteklenen semantik türlerden herhangi biri ile temsil olabilir. DTDL'de semantik türler ve desteklenen değerler hakkında daha fazla bilgi için bkz. DTDL v2 özelliklerinde semantik türler.

Aşağıdaki örnekte Sıcaklık için semantik tür telemetri verilerine sahip bir Algılayıcı modeli ve Nem için semantik tür özelliği yer almaktadır.

{
  "@id": "dtmi:com:adt:dtsample:sensor;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Sensor",
  "contents": [
    {
      "@type": ["Telemetry", "Temperature"],
      "name": "temperature",
      "unit": "degreeFahrenheit",
      "schema": "double"      
    },
    {
      "@type": ["Property", "Humidity"],
      "name": "humidity",
      "unit": "gramPerCubicMetre",
      "schema": "double"        
    }
  ]
}

İlişkiler

Bu bölüm DTDL modellerinde ilişkiler hakkında daha ayrıntılı bilgi sağlar.

Bir ilişkinin parçası olarak görünse de alanların kapsamlı bir listesi için bkz. DTDL v2 özelliklerinde ilişki.

Not

İlişkiler writable minMultiplicity için , ve maxMultiplicity DTDL öznitelikleri şu anda Azure Digital Twins. Bunlar modele eklenebilir, ancak Azure Digital Twins zorlanmaz. Daha fazla bilgi için bkz. DTDL Azure Digital Twins özellikleri.

Temel ilişki örneği

Burada bir DTDL modeliyle ilgili temel bir ilişki örneği ve bir örnek veserde yer alan bir örnek ve daha sonra ve daha fazla bilgi Bu örnekte, Bir Floor modeline bağlanmasına olanak sağlayan bir Giriş modeliyle ilişkisi gösterir.

{
  "@id": "dtmi:com:adt:dtsample:home;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Home",
  "contents": [
    {
      "@type": "Property",
      "name": "id",
      "schema": "string"     
    },    
    {
      "@type": "Relationship",
      "@id": "dtmi:com:adt:dtsample:home:rel_has_floors;1",
      "name": "rel_has_floors",
      "displayName": "Home has floors",
      "target": "dtmi:com:adt:dtsample:floor;1"
    }
  ]
}

Not

İlişkiler için @id isteğe bağlı bir alandır. @idSağlanıyorsa, dijital ikiz arabirimi işlemcisi bir tane atar.

Hedeflenen ve hedefsiz ilişkiler

İlişkiler hedef ile veya hedef olmadan tanımlanabilir. Hedef, ilişkinin hangi ikiz türlerine ulaş erişeceğini belirtir. Örneğin, Bir Ev modelinin yalnızca Floor twins olan ikizlerle yalnızca bir rel_has_floors ilişkisi olabileceğini belirtmek için bir hedef dahil olabilir.

Bazen, ilişkinin birçok farklı ikiz türüne bağlana bağlanması için belirli bir hedef olmadan bir ilişki tanımlamak istiyor olabilirsiniz.

Hedefi olmayan bir DTDL modeliyle ilgili bir ilişki örneği burada vetir. Bu örnekte ilişki, bir Oda'nın sahip olabileceği algılayıcıları tanımlamaya ve ilişki herhangi bir türe bağlanabilirsiniz.

{
  "@id": "dtmi:com:adt:dtsample:room;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Room",
  "extends": "dtmi:com:adt:dtsample:core;1",
  "contents": [
    {
      "@type": ["Property", "Humidity"],
      "name": "humidity",
      "unit": "gramPerCubicMetre",
      "schema": "double"
    },
    {
      "@type": "Component",
      "name": "thermostat",
      "schema": "dtmi:com:adt:dtsample:thermostat;1"
    },
    {
      "@type": "Relationship",
      "@id": "dtmi:com:adt:dtsample:room:rel_has_sensors;1",
      "name": "rel_has_sensors",
      "displayName": "Room has sensors"
    }
  ]
},

İlişkilerin özellikleri

DTDL ayrıca ilişkilerin kendi özelliklerine sahip olabilir. Bir DTDL modeli içinde ilişki tanımlarken ilişki, ilişkiye özgü durumu açıklamak için özel özellikler tanımladığınız properties kendi alanına sahip olabilir.

Aşağıdaki örnekte, ilişkinin ilgili Floor'ın en son ne zaman meşgul olduğunu temsil eden bir özelliğine sahip olduğu Home modelinin rel_has_floors başka bir sürümü yer almaktadır.

{
  "@id": "dtmi:com:adt:dtsample:home;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Home",
  "extends": "dtmi:com:adt:dtsample:core;1",
  "contents": [
    {
      "@type": "Property",
      "name": "address",
      "schema": {
        "@type": "Object",
        "fields": [
          {
            "name": "street",
            "schema": "string"
          },
          {
            "name": "city",
            "schema": "string"
          },
          {
            "name": "state",
            "schema": "string"
          },
          {
            "name": "zip",
            "schema": "string"
          }
        ]
      }
    },
    {
      "@type": "Relationship",
      "@id": "dtmi:com:adt:dtsample:home:rel_has_floors;1",
      "name": "rel_has_floors",
      "displayName": "Home has floors",
      "target": "dtmi:com:adt:dtsample:floor;1",
      "properties": [
        {
          "@type": "Property",
          "name": "lastOccupied",
          "schema": "dateTime"
        }
      ]
    }
  ]
}

Bileşenler

Bu bölüm DTDL modellerinde bileşenler hakkında daha ayrıntılı bilgi içerir.

Bir bileşenin parçası olarak görünse de alanların kapsamlı bir listesi için bkz. DTDL v2 özelliklerinde bileşen.

Temel bileşen örneği

Burada bir DTDL modeline temel bir bileşen örneği ve bir örnek veserde yer alan ve bu örnek ve daha sonra yer alan bir bileşen ve daha fazla bilgi Bu örnekte, termostat modelini bileşen olarak kullanan bir Oda modeli gösterir.

[
  {
    "@id": "dtmi:com:adt:dtsample:room;1",
    "@type": "Interface",
    "@context": "dtmi:dtdl:context;2",
    "displayName": "Room",
    "extends": "dtmi:com:adt:dtsample:core;1",
    "contents": [
      {
        "@type": ["Property", "Humidity"],
        "name": "humidity",
        "unit": "gramPerCubicMetre",
        "schema": "double"
      },
      {
        "@type": "Component",
        "name": "thermostat",
        "schema": "dtmi:com:adt:dtsample:thermostat;1"
      },
      {
        "@type": "Relationship",
        "@id": "dtmi:com:adt:dtsample:room:rel_has_sensors;1",
        "name": "rel_has_sensors",
        "displayName": "Room has sensors"
      }
    ]
  },
  {
    "@context": "dtmi:dtdl:context;2",
    "@id": "dtmi:com:adt:dtsample:thermostat;1",
    "@type": "Interface",
    "displayName": "thermostat",
    "contents": [
      {
        "@type": ["Property", "Temperature"],
        "name": "temperature",
        "unit": "degreeFahrenheit",
        "schema": "double"
      }
    ]
  }
]

Bu çözümdeki diğer modeller de termostat içermesi gerekirse, Oda'nın yaptığı gibi kendi tanımlarında bileşen olarak aynı termostat modeline başvurabilirsiniz.

Önemli

Bileşen başvurusu bulun için bileşen arabirimi (yukarıdaki örnekte termostat) bunu kullanan arabirimler (yukarıdaki örnekte oda) ile aynı dizide tanımlanmalıdır.

Model devralma

Bazen bir modeli daha fazla uzmanlaşmak istiyor olabilirsiniz. Örneğin, genel bir modele sahip olmak yararlı olabilir Oda ve ConferenceRoom veRoom özel varyantları. DTDL, özelleştirmeyi ifade etmek için devralmayı destekler. Arabirimler bir veya daha fazla arabirimden devralabilir. Modele bir alan ekleyerek extends bunu yapabiliriz.

bölümü extends bir arabirim adı veya arabirim adları dizisidir (genişletme arabiriminin birden çok üst modelden devralmasına izin verir). Tek bir üst, birden çok genişletme arabirimi için temel model olarak kullanılabilir.

Aşağıdaki örnek, önceki DTDL örneğinden Giriş modelini daha büyük bir "çekirdek" modelin alt türü olarak yeniden hayal ediyor. İlk olarak üst model (Çekirdek) tanımlanır ve ardından alt model (Home) kullanılarak bu model üzerinde extends derlemeler.

{
    "@id": "dtmi:com:adt:dtsample:core;1",
    "@type": "Interface",
    "@context": "dtmi:dtdl:context;2",
    "displayName": "Core",
    "contents": [
        {
            "@type": "Property",
            "name": "id",
            "schema": "string"
        },
        {
            "@type": "Property",
            "name": "name",
            "schema": "string"
        }
    ]
}
{
  "@id": "dtmi:com:adt:dtsample:home;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Home",
  "extends": "dtmi:com:adt:dtsample:core;1",
  "contents": [
    {

Bu durumda Core, Giriş'e bir kimlik ve ad sağlar. Diğer modeller bu özellikleri almak için Çekirdek modeli de genişletebilirsiniz. Aynı üst arabirimi genişleten bir Oda modeli şu şekildedir:

{
  "@id": "dtmi:com:adt:dtsample:room;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Room",
  "extends": "dtmi:com:adt:dtsample:core;1",
  "contents": [
    {

Devralma uygulandıktan sonra, genişletme arabirimi devralma zincirinin tamamına sahip tüm özellikleri gösterir.

Genişleten arabirim, üst arabirimlerin tanımlarının herhangi birini değiştiremez; yalnızca bunları ekleyebilir. Ayrıca, üst arabirimlerinin herhangi birsinde zaten tanımlanmış bir özelliği yeniden tanımamaz (yetenekler aynı olacak şekilde tanımlansa bile). Örneğin, bir üst arabirim bir özellik kitlesi tanımlarsa, genişletme arabirimi aynı zamanda bir olsa bile yığın double bildirimini içerelamaz. double

Modellemeye yönelik en iyi yöntemler

Modelleri ortamınız üzerindeki varlıkları yansıtacak şekilde tasarlarken, önden bakmak ve tasarımınızı sorgunun etkilerini göz önünde bulundurarak yararlı olabilir. Özellikleri graf geçişlerinden büyük sonuç kümelerini önleyecek şekilde tasarlamak iyi olabilir. Ayrıca tek bir sorguda tek düzeyli ilişkiler olarak yanıtlandıracak ilişkileri modellemek de istiyor olabilir.

Modelleri doğrulama

İpucu

Model oluşturdukktan sonra, modellerinizi Azure Digital Twins örneğine yüklemeden önce çevrimdışı olarak doğrulamanız önerilir.

Model belgelerini doğrulamaya ve örneğine yüklemeden önce DTDL'nin doğru olduğundan emin olmak için dilden bağımsız bir DTDL Doğrulayıcı örneği vardır.

DTDL doğrulayıcı örneği, istemci tarafı kitaplığı olarak NuGet'de bulunan bir .NET DTDL ayrıştırıcı kitaplığı üzerine inşa edilmiştir: Microsoft.Azure.DigitalTwins.Parser. Kendi doğrulama çözümlerinizi tasarlamak için kitaplığı doğrudan da kullanabilirsiniz. Ayrıştırıcı kitaplığını kullanırken, çalışma sürümüyle uyumlu bir sürüm Azure Digital Twins olun. Şu anda bu sürüm 3.12.4'dür.

Kullanım örnekleri de dahil olmak üzere doğrulayıcı örneği ve ayrıştırıcı kitaplığı hakkında daha fazla bilgi edinmek için Modelleri ayrıştırma ve doğrulama konusundan bilgi edinebilirsiniz.

Modelleme araçları

Modeller ve ontologies ile daha da kolay ilgilenin. Bu depoda yer almaktadır: Digital Twins Tanım Dili (DTDL) araçları.

Bu bölümde geçerli örnek kümesi daha ayrıntılı olarak açıklanmaktadır.

Model karşıya yükleyici

Modellerinizi oluşturmayı, genişletmeyi veya seçmeyi tamamladikten sonra, çözümde kullanılabilir hale Azure Digital Twins için bunları Azure Digital Twins örneğine yükleyebilirsiniz. DTDL modellerini yönetme konusunda açıklandığı Azure Digital TwinsAPI'lerini kullanarak bunu yapabiliriz.

Ancak, karşıya yüklenilen çok sayıda modeliniz varsa veya tek tek karşıya yüklemelerin sıralandırıcı karmaşık hale gele birçok bağımlılığı varsa, aynı anda birçok modeli karşıya yüklemek için Azure Digital Twins Model Karşıya Yükleyici örneğini kullanabilirsiniz. Modeli kendi örneğine yüklemek üzere bu projeyi yapılandırmak ve kullanmak için örnekle birlikte verilen yönergeleri izleyin.

Model görselleştiricisi

Azure Digital Twins örneğinize modelleri yükledikten sonra, Azure Digital Twins Model Görselleştiricisi'Azure Digital Twins devralma ve model ilişkileri de dahil olmak üzere Azure Digital Twins örneğinize görüntü atabilirsiniz. Bu örnek şu anda taslak durumdadır. Dijital ikiz geliştirme topluluğuna örneği genişletmelerini ve katkıda bulunanlarını teşvik etmek için çalışıyoruz.

Sonraki adımlar