json-ld - 如何在 JSON-LD 中描述三元组的谓词/边?

标签 json-ld

我是 JSON-LD 和 LOD 的新手,所以请原谅我使用的术语。我正致力于在 JSON-LD 中创建数据模型,以描述基于欧洲数据模型 (http://pro.europeana.eu/edm-documentation) 的聚合数字馆藏。

我想创建一个描述关系的@context 区域:

ore:Aggregation --- edm:aggregatedCHO --> edm:ProvidedCHO

(其中“edm:aggregatedCHO”是谓词/边),但我想在我的模型中将 edm:ProvidedCHO 标记为“sourceResource”。

目前我的@context 看起来像这样:

{
    "@context": {

        "edm" : "http://www.europeana.eu/schemas/edm/",

        "sourceResource" : {
            "@id" : "edm:ProvidedCHO",
            "@type" : "edm:aggregatedCHO" 

        }
    }
}

我的意图是使用@type 定义谓词('edge'),使用@id 定义节点内容,但在查看 W3C Recommendation 之后,这似乎不正确,'edm:ProvidedCHO' 实际上应该是 @类型,因为它描述了节点的内容类型 ( http://www.w3.org/TR/json-ld/#typed-values )。

我的问题通常是,在 JSON-LD @context 语句中在哪里/如何包含三元组的谓词?

在这种情况下,具体来说,我如何表示一个名为“sourceResource”的节点,其中包含 edm:ProvidedCHO 对象,每个对象都是一个 edm:aggregatedCHO?

最佳答案

请注意,在上下文中设置@type 表示该术语应该是具有该数据类型的文字;您可能想在正文中使用此 @type,如果您愿意,它将创建一个 type edge

请注意,@context 不定义关系,而是定义术语,以及应如何解释术语的值(以及其他一些内容)。我认为您想要的是拥有一个 @context 来简单地定义您想要在 JSON 主体中使用的术语,您可以在其中定义节点和它们之间的关系。

可能如下所示:

{
  "@context": {
    "edm" : "http://www.europeana.eu/schemas/edm/",
    "ore": "http://example/",
    "edm:aggregatedCHO": {"@type": "@id"}
  },
  "@id": "ore:Aggregation",
  "edm:aggregatedCHO": "edm:ProvidedCHO"
}

在 JSON-LD Playground 或一些类似的服务或工具上测试您的 JSON-LD 总是好的。

关于json-ld - 如何在 JSON-LD 中描述三元组的谓词/边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23141875/

相关文章:

javascript - 在 javascript 中为 json-ld 解析 JSON

json - 将大型RDF/XML文件转换或转换为JSON-LD格式-如何?

json - JSON-LD 中的 IRI 映射和引用

web - JSON-LD Schema.org : Multiple video/image page

javascript - 如何将 Google 标签管理器与使用 JSON-LD 和变量的多模式产品评论结合使用

javascript - 使用 Javascript/jQuery 反序列化 Jackson 对象

schema.org - 网页上的任何示例实现 JSON-LD 文档

seo - 什么是 `&lt;script type=' application/ld+json'>{jsonObj}</script >` in a ` head` 部分?

seo - 在 Schema.org JSON-LD 中使用多个同类项目

schema.org - 结构化数据测试工具 : "There is an error in your Sitelinks Search Box template: OFF_DOMAIN"