簡體   English   中英

@vocab在JSON-LD中的用途是什么?與@context的區別是什么?

[英]What is the use of @vocab in JSON-LD and what is the difference to @context?

JSON-LD中的@vocab屬性是什么? 正如我所看到的,你可以“導入”一個遠程詞匯表,但這與@context可以做的不一樣嗎? 如果我沒錯,那么你也可以“導入” @context的遠程源代碼。 那么@vocab@context之間的區別在@vocab

額外的問題:我可以擁有一個以上的@vocab嗎? 例如,第一個引用到schema.org,另一個引用到rdfs?

@vocab專門用於聲明所有術語派生的默認詞匯表,而不必為每個術語聲明特定的映射(正如您通常在@context所做的那樣)。

例如,請參閱此代碼段(取自JSON-LD 1.0規范 ):

{
  "@context": {
    "@vocab": "http://schema.org/"
  }
  "@id": "http://example.org/places#BrewEats",
  "@type": "Restaurant",
  "name": "Brew Eats"
  ...
}

在這個片段中, @vocab用於定義在此上下文中,所有術語都來自schema.org詞匯表。 因此,在以下片段中, Restaurant映射到http://schema.org/Restaurant ,並將地圖namehttp://schema.org/name 您當然也可以在@context使用顯式映射完成此操作:

{
  "@context": {
    "Restaurant": "http://schema.org/Restaurant",
    "name" : "http://schema.org/name" 
  }
  "@id": "http://example.org/places#BrewEats",
  "@type": "Restaurant",
  "name": "Brew Eats"
  ...
}

但是當你開始使用來自相同詞匯表的越來越多的術語時,這很快變得乏味。 @vocab只是一個有用的簡短方法:“如果我沒有明確的術語映射,這就是它映射到的”。

至於你是否可以使用多個@vocab :你可以在JSON-LD文檔中擁有多個@vocab (就像你可以擁有多個@context ),但你不能同時擁有多個@vocab @context 我相信它定義默認值的解釋也清楚地表明為什么你不能在同一個上下文中有兩個。

暫無
暫無

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

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