gpt4 book ai didi

json-ld - 在 JSON-LD 中引用另一个资源的正确方法是什么

转载 作者:行者123 更新时间:2023-12-02 01:21:51 29 4
gpt4 key购买 nike

所以我试图围绕 JSON-LD 进行思考,我看到的所有示例主要包括嵌入“链接数据”。但我想提供对链接数据的引用(主要是因为嵌入所有数据可能会产生 10MB 的有效负载)。所以我想知道我这样做是否正确。

这是我所拥有的:

{
"@context": "/contexts/Customers.jsonld",
"@id": "/customers/1",
"@type": "Customer",
"sessions": {
"@id": "/customers/1/sessions",
"@type": "Session"
},
"dealer": "/dealers/2",
"givenName": "Abe",
"familyName": "Abrahms",
/* ... snip ... */
}

我在这里谈论的对链接数据的引用由 sessions 表示。属性(property)。假设这是正确的,那么我需要在 Customer 中更改什么?语境?
"@context": {
"hydra": "http://www.w3.org/ns/hydra/core#",
"doc": "https://api.waterlinkconnect.com/doc#",
"Customer": "doc:Customer",
"givenName": "doc:Customer/givenName",
"familyName": "doc:Customer/familyName",
"email":"doc:Customer/email",
"address":"doc:Customer/address",
"notes":"doc:Customer/notes",
"phone1":"doc:Customer/phone1",
"phone2":"doc:Customer/phone2"
"sessions": "???????"
}

最佳答案

你只需要提供一个 IRI 作为值,例如:

"propertyFoo": { "@id": "https://example.com/some-iri" }

(此处使用 @id 以便 IRI 不会被解释为字符串值。)

所以你的例子 sessions可以,但您不必提供 @type如果你不想要/不需要它。

type coercion

如果这个属性总是得到一个 IRI 作为值,你可以在你的 @context 中定义它。 :

"propertyFoo": 
{
"@id": "https://your-vocabulary.example.com/propertyFoo",
"@type": "@id"
}

那么你可以省略 @id提供值时:

"propertyFoo": "https://example.com/some-iri" 

(如果像这样使用类型强制,则不能为该节点提供其他属性。)

关于json-ld - 在 JSON-LD 中引用另一个资源的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39666295/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com