我是 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/