簡體   English   中英

JSON-LD 中頂級索引鍵的上下文

[英]A context for a top level index-only key in JSON-LD

我正在嘗試使用 JSON-LD 使舊版 JSON 文件機器可讀。 有問題的 JSON 文件有一個頂級 object item成員引用包含實際相關數據的 object。

{
  "item": {
    "id": "123",
    "name": "Test"
  }
}

當我現在介紹如下上下文時:

{
  "@context": {
    "name": "https://example.org/name"
  }
}

沒有知識被提取,這意味着不能從中解釋三元組。 為了讓它發揮作用,我意識到我可以做到以下幾點:

{
  "@context": {
    "item": "https://example.org/exists",
    "name": "https://example.org/name"
  }
}

這個可行,這意味着很好地提取了名稱謂詞的三元組。 然而,這種方法的問題是,還提取了帶有exists謂詞的不必要的三元組。

因此我嘗試將頂層 object 標記為索引容器,從而完全忽略item鍵。 我只是找不到一種方法來執行此操作,而無需為item術語分配 IRI,如果我分配一個,則再次提取不必要的三元組。

{
  "@context": {
    "name": "https://example.org/name"
  }
}

沒有知識被提取,這意味着不能從中解釋三元組。 為了讓它發揮作用,我意識到我可以做到以下幾點:

這根本不起作用(因為item術語沒有 IRI):

{
  "@context": {
    "item": {
      "@container": "@index"
    },
    "name": "https://example.org/name"
  }
}

這確實有效,但又出現了不必要的三元組:

{
  "@context": {
    "@container": "@index",
    "item": "https://example.org/exists",
    "name": "https://example.org/name"
  }
}

我在這里想念什么? 如何創建僅提取name三元組的上下文?

對照您的 JSON-LD 處理器檢查這一點:

{
  "item": {
    "id":   "123",
    "name": "Test"
  } ,
  "@context": {
    "@base": "http://example.com/id/",
    "id":    "@id", 
    "item":  "@nest",
    "name":  "https://example.org/name"
  } 
}

在 JSON-LD Playground 中,此上下文生成以下單個 RDF 三元組:

<http://example.com/id/123> <https://example.org/name> "Test" .

使用的 JSON-LD 功能:

您也可能對RML感興趣。

暫無
暫無

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

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