【问题标题】:How to explicitly set namespace of a node in json-ld如何在 json-ld 中显式设置节点的命名空间
【发布时间】:2017-10-19 07:13:25
【问题描述】:

我定义了一个带有多个上下文的 jsonld 文件。每个上下文定义一个具有相同名称的术语。当对 jsonld 文件进行压缩时,所有具有相同名称的字段都在同一个命名空间中。

比如下面的文件

{
    "@context": [
    {
        "name1": "http://example.org/name1/",

        "id" : {
            "@id" : "name:id",
            "@type" : "xsd:string"
        }

    },
    {
        "name2": "http://example.org/name2/",
        "identifier": {
            "@id": "name2"
        },
        "id" : {
            "@id" : "name2:id",
            "@type" : "xsd:string"
        }

    }],
    "@id": "http://example.org/1",
    "id" : "id/1",
    "identifier": {
        "id" : "identifier/1"
    }
}

我在压缩后得到这个结果

{
  "@id" : "http://example.org/1",
  "http://example.org/name2/" : {
    "http://example.org/name2/id" : {
      "@type" : "xsd:string",
      "@value" : "identifier/1"
    }
  },
  "http://example.org/name2/id" : {
    "@type" : "xsd:string",
    "@value" : "id/1"
  }
}

但我会期待这个

{
  "@id" : "http://example.org/1",
  "http://example.org/name2/" : {
    "http://example.org/name2/id" : {
      "@type" : "xsd:string",
      "@value" : "identifier/1"
    }
  },
  "http://example.org/name1/id" : {  <== here name1
    "@type" : "xsd:string",
    "@value" : "id/1"
  }
}

【问题讨论】:

    标签: json-ld


    【解决方案1】:

    上下文中定义的术语按顺序使用,最后遇到的上下文获胜。在此示例中,我看不到在压缩时使用不同术语的任何方法。但是,您可能希望在 JSON-LD 1.1 中看到Scoped Contexts,它确实为您提供了更大的灵活性。

    【讨论】:

    • 即使扩展了子上下文和词汇表,id 也不在正确的命名空间中。 { "@context": [ { "name1": "http://example.org/name1/", "id" : { "@id" : "name1:id", "@type" : "xsd:string" }, "identifier": { "@id": "http://example.org/identifier/", "id" : { "@id" : "http://example.org/identifier/id", "@type" : "xsd:string", "@context" : { "@vocab" : "http://example.org/identifier/" } } } }], "@id": "http://example.org/1", "id" : "id/1", "identifier": { "id" : "identifier/1" } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多