gpt4 book ai didi

semantic-web - JSON-LD 压缩和压缩 IRI 作为值

转载 作者:行者123 更新时间:2023-12-04 05:06:55 25 4
gpt4 key购买 nike

我对 JSON-LD compaction 有点困惑以及它是否可以用于压缩值的 IRI。

我有以下 JSON-LD 对象

{
"@context": {
"@base": "file:///",
"x": "https://example.org/pub/x#",
"x-attribute": "https://example.org/pub/x-attribute#",
"x:purpose": {
"@type": "@id"
}
},
"https://example.org/pub/x#purpose": "https://example.org/pub/x-attribute#on"
}

和下面的新上下文

{
"x": "https://example.org/pub/x#",
"x-attribute": "https://example.org/pub/x-attribute#"
}

我期待...并且想要 ...得到

{
"@context": {
"x": "https://example.org/pub/x#",
"x-attribute": "https://example.org/pub/x-attribute#"
},
"x:purpose": "x-attribute:on"
}

但我最终得到的是

{
"@context": {
"x": "https://example.org/pub/x#",
"x-attribute": "https://example.org/pub/x-attribute#"
},
"x:purpose": "https://example.org/pub/x-attribute#on"
}

您可以将其插入 JSON-LD Playground如果你想试试这个。

我怎样才能完成我想做的事情? IE。基本上在值位置使用 Compact IRI。

最佳答案

首先要注意一点:您没有使用在输入对象的上下文中定义的术语。由于您使用的是完整的 URI,因此未应用 @type 定义。相反,您应该使用术语 (x:purpose):

{
"@context": {
"@base": "file:///",
"x": "https://example.org/pub/x#",
"x-attribute": "https://example.org/pub/x-attribute#",
"x:purpose": {
"@type": "@id"
}
},
"x:purpose": "https://example.org/pub/x-attribute#on"
}

如果您不在数据中使用该术语,则需要指定该值是一个@id,如下所示:

{
"@context": {
"@base": "file:///",
"x": "https://example.org/pub/x#",
"x-attribute": "https://example.org/pub/x-attribute#",
"x:purpose": {
"@type": "@id"
}
},
"https://example.org/pub/x#purpose": {
"@id": "https://example.org/pub/x-attribute#on"
}
}

现在,要在将值压缩为 CURIE 的情况下获得您想要的效果,您必须指出该值实际上是您词汇表的一部分(如果您愿意,可以是“枚举”)。您可以通过将新上下文更改为:

{
"x": "https://example.org/pub/x#",
"x-attribute": "https://example.org/pub/x-attribute#",
"x:purpose": {
"@type": "@vocab"
}
}

这应该会给你想要的结果。

关于semantic-web - JSON-LD 压缩和压缩 IRI 作为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21185001/

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