簡體   English   中英

NGSI-LD 和 JSON-LD 的區別是什么?

[英]Which are the differences of NGSI-LD and JSON-LD?

在 Fiware 教程中,我讀到 NGSI-LD 不是 100% JSON-LD。 你能解釋一下有哪些區別嗎?

JSON-LD是 JavaScript 對象表示法的擴展,它使鏈接數據概念能夠以 JSON 表示,並提供人類和計算機可讀的格式。 這是 JSON-LD:

{
  "@context": "https://json-ld.org/contexts/person.jsonld",
  "@id": "http://dbpedia.org/resource/John_Lennon",
  "name": "John Lennon",
  "born": "1940-10-09",
  "spouse": "http://dbpedia.org/resource/Cynthia_Lennon"
}

這與 NGSI-LD 中表示的數據相同

{
   "@context":  [
     "https://json-ld.org/contexts/person.jsonld",
     "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld"
  ],
   "id": "http://dbpedia.org/resource/John_Lennon",
   "type": "Person",
   "name": {"type": "Property", "value": "John Lennon"},
   "born": {"type": "Property", "value": "1940-10-09"},
   "spouse": {
      "type": "Relationship", "object": 
      "http://dbpedia.org/resource/Cynthia_Lennon"
   }
}

每個 NSGI-LD 負載都是有效的 JSON-LD。 然而,NGSI-LD 有額外的規則和限制(例如,所有屬性都必須具有一種PropertyRelationship type ),因此並非所有 JSON-LD 片段都是有效的 NGSI-LD。

就像 JSON-LD 是JSON 加鏈接數據概念一樣,NGSI-LD 是NGSI-v2 加鏈接數據概念

NGSI-LD 規范描述了如何向上下文代理發出請求以及響應的預期格式。 NGSI 中有 27 個定義明確的操作。 此外NGSI-LD定義的術語如認購登記財產關系,如何時間戳應當只在舉行的嚴格定義observedAt ,地理位置必須在找到location屬性作為GeoJSON的Point等等。

NGSI-LD 實體、屬性和關系

JSON-LD 僅是一種數據表示,除了具有 JSON 格式的屬性和@context屬性之外,它不假設如何訪問有效負載或如何構建有效負載。

NGSI-LD 中的 Context-Broker 到 Context-Broker 操作可以假設核心上下文https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld是一部分請求並最后處理,因此總是覆蓋其他@context元素。 @context元素也可以使用 鏈接@context表示

JSON-LD 表示必須始終包含一個@context屬性(畢竟這使它們成為application/ld+json而不僅僅是普通的application/json )並且@context根據找到的元素數組的順序進行處理。

NGSI-LD 請求也可能以 JSON application/json和 GeoJSON application/geo+json格式application/geo+json

所以總而言之,NGSI-LD 是 JSON-LD 的擴展子集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM