JSON-LD 框架:框架对象属性仅作为术语(不是 IRI)
JSON-LD Frame: framed object properties as term only (not as IRI)
我正在学习如何使用节点 jsonld.js 使用 JSON-LD 帧,我想知道为什么某些属性被标记为 IRI而其他人则被标记为术语,我看不出这种差异有什么明显的原因。
这是 sample。
例如,在该示例中,name
属性 被标记为预期,而在其他情况下它被标记为 http://www.schema.org/name
,与 url
和 http://www.schema.org/url
;我不知道为什么:
{
"@context": "https://schema.org/docs/jsonldcontext.json",
"@graph": [
{
"id": "_:b0",
"type": "MusicRecording",
"byArtist": {
"id": "_:b1",
"type": "http://www.schema.org/MusicGroup",
"http://www.schema.org/name": "Snoop Dogg",
"http://www.schema.org/sameAs": "/Snoop-Dogg/"
},
"name": "Paper'd Up",
"schema:sameAs": "/Snoop-Dogg/Paper%27d-Up/",
"url": "../Snoop-Dogg/Paper%27d-Up/",
"http://www.schema.org/duration": "PT3M55S",
"http://www.schema.org/image": "/static/track_images_200/lr1734_2009720_1372375126.jpg",
"http://www.schema.org/inAlbum": {
"id": "_:b2",
"type": "http://www.schema.org/MusicAlbum",
"http://www.schema.org/albumRelease": {
"id": "_:b4",
"type": "http://www.schema.org/MusicRelease",
"http://www.schema.org/datePublished": "2001",
"http://www.schema.org/recordLabel": "Priority"
},
"http://www.schema.org/name": "Paid the Cost to Be the Bo$$"
},
"http://www.schema.org/producer": {
"id": "_:b3",
"type": "http://www.schema.org/Person",
"http://www.schema.org/name": "Fredwreck",
"http://www.schema.org/sameAs": "/Fredwreck/",
"http://www.schema.org/url": {
"id": "../Fredwreck/"
}
},
"http://www.schema.org/thumbnailUrl": {
"id": "../static/track_images_100/mr1734_2009720_1372375126.jpg"
}
}
]
}
如何检索属性命名为类型而不是 IRI 的树(使用 jsonld.js)?
术语必须与您用于 属性 的 IRI 相匹配。例如,schema.org 将 name
定义为 http://schema.org/name
。在您的示例中,您有 http://www.schema.org/name
.
还有几个地方应该是 IRI(URL)的值被视为文本,为此你想使用像 "http://schema.org/image": {"@id": "/static/track_images_200/lr1734_2009720_1372375126.jpg"}
这样的东西
部分术语选择旨在确保某个值与上下文中适当的 @type
定义匹配。例如,image
设置为 {"@type": "@id"}
,因此它只会匹配看起来像这样的东西。
我正在学习如何使用节点 jsonld.js 使用 JSON-LD 帧,我想知道为什么某些属性被标记为 IRI而其他人则被标记为术语,我看不出这种差异有什么明显的原因。
这是 sample。
例如,在该示例中,name
属性 被标记为预期,而在其他情况下它被标记为 http://www.schema.org/name
,与 url
和 http://www.schema.org/url
;我不知道为什么:
{
"@context": "https://schema.org/docs/jsonldcontext.json",
"@graph": [
{
"id": "_:b0",
"type": "MusicRecording",
"byArtist": {
"id": "_:b1",
"type": "http://www.schema.org/MusicGroup",
"http://www.schema.org/name": "Snoop Dogg",
"http://www.schema.org/sameAs": "/Snoop-Dogg/"
},
"name": "Paper'd Up",
"schema:sameAs": "/Snoop-Dogg/Paper%27d-Up/",
"url": "../Snoop-Dogg/Paper%27d-Up/",
"http://www.schema.org/duration": "PT3M55S",
"http://www.schema.org/image": "/static/track_images_200/lr1734_2009720_1372375126.jpg",
"http://www.schema.org/inAlbum": {
"id": "_:b2",
"type": "http://www.schema.org/MusicAlbum",
"http://www.schema.org/albumRelease": {
"id": "_:b4",
"type": "http://www.schema.org/MusicRelease",
"http://www.schema.org/datePublished": "2001",
"http://www.schema.org/recordLabel": "Priority"
},
"http://www.schema.org/name": "Paid the Cost to Be the Bo$$"
},
"http://www.schema.org/producer": {
"id": "_:b3",
"type": "http://www.schema.org/Person",
"http://www.schema.org/name": "Fredwreck",
"http://www.schema.org/sameAs": "/Fredwreck/",
"http://www.schema.org/url": {
"id": "../Fredwreck/"
}
},
"http://www.schema.org/thumbnailUrl": {
"id": "../static/track_images_100/mr1734_2009720_1372375126.jpg"
}
}
]
}
如何检索属性命名为类型而不是 IRI 的树(使用 jsonld.js)?
术语必须与您用于 属性 的 IRI 相匹配。例如,schema.org 将 name
定义为 http://schema.org/name
。在您的示例中,您有 http://www.schema.org/name
.
还有几个地方应该是 IRI(URL)的值被视为文本,为此你想使用像 "http://schema.org/image": {"@id": "/static/track_images_200/lr1734_2009720_1372375126.jpg"}
部分术语选择旨在确保某个值与上下文中适当的 @type
定义匹配。例如,image
设置为 {"@type": "@id"}
,因此它只会匹配看起来像这样的东西。