我试图对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中。任何提示/解决方案?谢谢!
答案 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数据后,通过您将编写的转换函数处理它:
在此循环中,记录每个节点,并记录每个链接。对于节点,请确保使用对象以便获得唯一的节点。
循环遍历节点对象,并根据它创建“节点”数组
通过查找节点数组中每个节点的索引来创建“链接”数组...
您可能想查看d3.js邮件列表的档案,有些人已经提出了与您类似的问题。