将JSON-LD转换为d3.js节点/链接格式

Convert JSON-LD to d3.js node/links format?

本文关键字:节点 链接 格式 js d3 JSON-LD 转换      更新时间:2023-09-26

我正在尝试对OWL本体进行可视化。我已经转换为JSON-LD,但现在需要得到它的D3的节点/链接格式?作为参考,格式如下:

{
  "nodes": [
    {"x": 469, "y": 410},
    {"x": 493, "y": 364},
    {"x": 442, "y": 365},
    {"x": 467, "y": 314},
    {"x": 477, "y": 248},
    {"x": 425, "y": 207},
    {"x": 402, "y": 155},
    {"x": 369, "y": 196},
    {"x": 350, "y": 148},
    {"x": 539, "y": 222},
    {"x": 594, "y": 235},
    {"x": 582, "y": 185},
    {"x": 633, "y": 200}
  ],
  "links": [
    {"source":  0, "target":  1},
    {"source":  1, "target":  2},
    {"source":  2, "target":  0},
    {"source":  1, "target":  3},
    {"source":  3, "target":  2},
    {"source":  3, "target":  4},
    {"source":  4, "target":  5},
    {"source":  5, "target":  6},
    {"source":  5, "target":  7},
    {"source":  6, "target":  7},
    {"source":  6, "target":  8},
    {"source":  7, "target":  8},
    {"source":  9, "target":  4},
    {"source":  9, "target": 11},
    {"source":  9, "target": 10},
    {"source": 10, "target": 11},
    {"source": 11, "target": 12},
    {"source": 12, "target": 10}
  ]
}

我知道我可以打开一个json文件使用d3。json,但我不确定如何从json - ld转换为上述格式。有解决方案吗?谢谢。

编辑:

我的猫头鹰本体可以在pastebin上找到(json- old格式):http://pastebin.com/g7ggDyFX。如果你看一下上下文,你可以看到我正在通过"isSubClass"属性建模本体。

我知道在D3中读取json文件,我可以使用D3 .json。我不确定如何准确地转换为上述格式。

我发现这个github存储库https://github.com/uf6/ottograf说它应该能够转换成格式,但我有很多麻烦运行它,我也想保持它在javascript。任何建议/解决方案?谢谢!

假设你要做的是转换这个:

{
  "@id": "schema:Person"
  , "@type": "owl:Class"
  , "subClassOf": { 
    "@id": "gr:BusinessEntity"
  }
}

{
  "nodes": [
    { "@id": "schema:Person", "@type": "owl:Class"}
    { "@id": "gr:BusinessEntity"}
  ]
  , "links": [
    {"source":  0, "target":  1}
  ]
}

你需要做的是:

一旦json数据被加载,通过一个转换函数处理它,你会写:

  1. 循环通过@graph数组

在这个循环中,保存每个节点的记录,以及每个链接的记录。对于节点,请确保使用对象,以便获得唯一的节点。

  • 循环遍历nodes对象,并基于它创建你的"nodes"数组

  • 通过查找nodes数组中每个节点的索引来创建你的"links"数组

  • 你可能想看看d3.js的邮件列表,有些人已经问了类似的问题。