[英]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 有額外的規則和限制(例如,所有屬性都必須具有一種Property
或Relationship
type
),因此並非所有 JSON-LD 片段都是有效的 NGSI-LD。
就像 JSON-LD 是JSON 加鏈接數據概念一樣,NGSI-LD 是NGSI-v2 加鏈接數據概念。
NGSI-LD 規范描述了如何向上下文代理發出請求以及響應的預期格式。 NGSI 中有 27 個定義明確的操作。 此外NGSI-LD定義的術語如認購和登記財產和關系,如何時間戳應當只在舉行的嚴格定義observedAt
,地理位置必須在找到location
屬性作為GeoJSON的Point
等等。
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.