2

我正在尝试将一个非常大的 JSON 文件转换为 JSON-LD。当我将下面的示例代码导入到 GraphDB 中时,db:metadata成为一个属性/谓词,将每个GeneSet:setX节点与一个自动创建的空白节点_:bX(图中灰色)连接起来,然后属性从中set_name指向set_id它们对应的值。

关联数据示例

{
    "@context":{
        "xsd": "http://www.w3.org/2001/XMLSchema#",
        "db": "http://example.com/setDB#",
        "_id": "@id",
        "GeneSet": {"@id": "db:GeneSet"},
        "data": {"@id": "db:metadata"},
        "set_name": {
            "@id": "db:set_name",
            "@type": "xsd:string"
        },
        "set_id": {
            "@id": "db:set_id",
            "@type": "xsd:string"
        }
    },
    "@graph": [
        {
        "_id": "GeneSet:set1",
        "data": {
            "set_name": "set1",
            "set_id": "M123"}},
        {
        "_id": "GeneSet:set2",
        "data": {
            "set_name": "set2",
            "set_id": "M456"}},
        {
        "_id": "GeneSet:set3",
        "data": {
            "set_name": "set3",
            "set_id": "M789"}
        }]
}

我想将这些空白节点转换为实际的 URI,最好使用唯一的形式db:setX/data,但更通用的db:data也可以。"@id": "db:data/setX"我知道我可以通过在每个定义的大括号内添加来实现前者"data": {...},但由于我的完整数据有超过 100,000 个这些 GeneSet,我想通过简单地修改@context.

这可能吗?

4

1 回答 1

1

您之后的那种“模板化”ID 生成(故意)不可能通过 JSON-LD@context机制。用于将@context树数据映射到图形数据,而不是对其进行转换。

因此,在处理之前以编程方式将这些 ID 值注入 JSON-LD 是一种选择。

您可能还想在JSON-LD WG 的邮件列表中询问以获取更多选项。

于 2021-05-25T14:31:00.890 回答