【问题标题】:How to describe the predicate/edge of a triple in JSON-LD?如何在 JSON-LD 中描述三元组的谓词/边?
【发布时间】:2014-04-17 19:32:39
【问题描述】:

我是 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 建议后,这似乎不正确,'edm:ProvidedCHO' 实际上应该是 @ type,因为它描述了节点的内容类型(http://www.w3.org/TR/json-ld/#typed-values)。

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

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

【问题讨论】:

    标签: json-ld


    【解决方案1】:

    请注意,在上下文中设置@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 游乐场或类似的服务或工具上测试您的 JSON-LD 总是好的。

    【讨论】:

    • 您在@context 区域和正文中使用@type 之间的澄清非常有帮助-我想我在@context 区域中尝试做的太多了。但是,我仍然想为我的ProvidedCHO 使用别名sourceResource 来增加清晰度并减少JSON 正文中的混乱。我在此示例中使用 @type 是否是实现此目的的适当方式? pastie.org/9105617
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多