我是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:ProvidedCHO对象,每个对象都是一个edm:aggregatedCHO?
答案 0 :(得分:2)
请注意,在上下文中设置@type表示该术语应该是具有该数据类型的文字;您可能希望在正文中使用此@type,如果愿意,将创建类型边。
请注意,@ 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总是好的。