使用neo4j-shell工具导入GraphML失败

时间:2013-09-27 16:01:36

标签: neo4j graphml

使用https://github.com/jexp/neo4j-shell-tools中的工具运行neo4j-shell时,它不会加载我的graphml文件,并在http://validator.w3.org/check上验证。

Neo4j使用OpenJDK IcedTea 2.3.9在KDE下运行Ubuntu

这是命令和消息:

neo4j-sh (0)$ import-graphml -i /home/larsj/Prosjekt/neograf/bigram_graph.xml -t bigram
GraphML-Import file /home/larsj/Prosjekt/neograf/bigram_graph.xml 
rel-type bigram batch-size 40000 use disk-cache false
0. 100%: nodes = 1 rels = 0 properties = 0 time 6 ms
null

如何才能成功? 这是我的graphml文件的片段:

<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">

<key id = "form0" for = "node" attr.name = "label" attr.type = "string"/>
<key id = "freq0" for = "all" attr.name = "frequency" attr.type = "int"/>
<key id = "mi0" for = "edge" attr.name = "mi" attr.type = "float"/>
<key id = "label0" for = "edge" attr.name = "label" attr.type = "string">
   <default>bigram</default>
</key><graph id="nb.no/bigrams" edgedefault="directed">    <node id="1512655">
    <data key = "form0">barn</data>
    <data key = "freq0">526136</data>
</node>
<node id="1781558">
    <data key = "form0">fattige</data>
    <data key = "freq0">49089</data>
</node>
<edge  source = "2305969" target = "3070510">
    <data key = "freq0">86421</data>
    <data key = "mi0">71.57629973392675</data>
</edge>
<edge  source = "3070510" target = "3070510">
    <data key = "freq0">22</data>
    <data key = "mi0">-9.818479721124337</data>
</edge>

1 个答案:

答案 0 :(得分:0)

neo4j shell-tools的import-graphml命令的一个缺陷是确保每个键在文档的图形标记之前都有一个键ID。 shell-tools不会导入任何具有密钥id部分中未定义的密钥的节点或边缘。没有看到整个文件,可能是没有定义XML密钥ID的节点/边缘属性。

要检查是否存在任何密钥ID不匹配,请使用名为XML Tools的Notepad ++ XML插件。安装完成后,转到插件&gt; XML工具&gt;立即验证。它将显示一个对话框,其中包含未定义的任何密钥ID。

只要“data”字段中的每个属性都具有在“graph”标记之前定义的密钥ID,导入命令就会起作用。在Neo4j shell-tools控制台中键入以下内容:

import-graphml -i [name of input graphml file]

如果要在从Neo4j导出到GraphML时包含这些密钥ID,请在shell-tools控制台中使用此命令。它在转储数据库然后将其加载回Neo4j的格式时很有用:

$ export-graphml -o [name of output graphml file] -t

相关问题