涉及一个IRI的多个术语

时间:2018-04-25 16:06:36

标签: json-ld iri

我想创建一个用于多个数据源的上下文文件。是否可以陈述不同的术语来引用完全相同的IRI?

例如:

{
    "@context": {
          "twitter_name": "http://schema.org/name",
          "facebook_name": "http://schema.org/name"
    }
}

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您需要为同一属性定义不同的别名。所以不使用前缀,这个:

{
  "@context": {
    "twitter_name": "http://schema.org/name",
    "facebook_name": "http://schema.org/name"
  }
}

这应该是有效的。在一个对象中,必须是唯一的,但没有这样的要求。

您可以在JSON-LD Playground

中对其进行测试

此示例使用四种方式指定属性:

{
  "@context": {
    "bi": "http://schema.org/",
    "twitter_name": "bi:name",
    "facebook_name": "bi:name"
  },
  "bi:name": "Alice (prefix)",
  "twitter_name": "Alice (alias for Twitter)",
  "facebook_name": "Alice (alias for Facebook)",
  "http://schema.org/name": "Alice (full URI)"
}

压缩结果包含一个包含四个名称的数组值:

{
  "http://schema.org/name": [
    "Alice (prefix)",
    "Alice (alias for Facebook)",
    "Alice (full URI)",
    "Alice (alias for Twitter)"
  ]
}

因此,所有密钥都被正确解释为Schema.org的name属性。