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

时间:2015-09-20 05:49:50

标签: javascript json node.js d3.js

我试图对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}
  ]
}

我知道我可以使用d3.json打开一个json文件,但我不确定我是如何从JSON-LD到上面的格式。有解决方案吗感谢。

编辑:

我的猫头鹰本体可以在这里使用pastebin(json-ld格式):http://pastebin.com/g7ggDyFX。如果你在上下文中找到一个高峰,你可以看到我通过" isSubClass"来建模本体。属性。

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

我发现这个github存储库https://github.com/uf6/ottograf表示它应该能够转换为格式,但是我在运行它时遇到了很多麻烦,而且我也希望将它保存在javascript中。任何提示/解决方案?谢谢!

1 个答案:

答案 0 :(得分:0)

假设你要做的是转换它:

{
  "@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数组
  2. 在此循环中,记录每个节点,并记录每个链接。对于节点,请确保使用对象以便获得唯一的节点。

    1. 循环遍历节点对象,并根据它创建“节点”数组

    2. 通过查找节点数组中每个节点的索引来创建“链接”数组...

    3. 您可能想查看d3.js邮件列表的档案,有些人已经提出了与您类似的问题。