2017-12-17 12 views
0

저는 tinkerpop 콘솔을 처음 사용하고 있으며 서브 그래프가있는 graphml 파일로 작업하는 데 관심이 있습니다. 나는 '시작하기'를 끝내고 다른 문서를 시작했다.하위 그래프가있는 그래프를 읽을 때 Tinkerpop 콘솔에서 nullpointerexception을 반환합니다.

하위 그래프가없는 graphml 파일을 가져올 수 있지만 하위 그래프가있는 경우 파일을 읽을 수 없습니다. 지원됩니까? 여기

gremlin> graph = TinkerGraph.open() 
==>tinkergraph[vertices:0 edges:0] 
gremlin> graph.io(graphml()).readGraph('data/xsmall0.graphml') 
==>null 
gremlin> g = graph.traversal() 
==>graphtraversalsource[tinkergraph[vertices:3 edges:2], standard] 
gremlin> g.V() 
==>v[n1] 
==>v[n2] 
==>v[n3] 
gremlin> graph = TinkerGraph.open() 
==>tinkergraph[vertices:0 edges:0] 
gremlin> graph.io(graphml()).readGraph('data/xsmall2.graphml') 
java.lang.NullPointerException 
Type ':help' or ':h' for help. 
Display stack trace? [yN]y 
java.lang.NullPointerException 
    at org.apache.tinkerpop.gremlin.structure.io.graphml.GraphMLReader.readGraph(GraphMLReader.java:175) 
    at org.apache.tinkerpop.gremlin.structure.io.graphml.GraphMLIo.readGraph(GraphMLIo.java:92) 
    at org.apache.tinkerpop.gremlin.structure.io.Io$readGraph.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) 
    at groovysh_evaluate.run(groovysh_evaluate:3) 
    at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232) 
    at org.codehaus.groovy.tools.shell.Interpreter.evaluate(Interpreter.groovy:70) 
    at org.codehaus.groovy.tools.shell.Groovysh.execute(Groovysh.groovy:191) 
    at org.apache.tinkerpop.gremlin.console.GremlinGroovysh.super$3$execute(GremlinGroovysh.groovy) 
    at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) 
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213) 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132) 
    at org.apache.tinkerpop.gremlin.console.GremlinGroovysh.execute(GremlinGroovysh.groovy:72) 
    at org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:122) 
    at org.codehaus.groovy.tools.shell.ShellRunner.work(ShellRunner.groovy:95) 
    at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$work(InteractiveShellRunner.groovy) 
    at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) 
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213) 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132) 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:152) 
    at org.codehaus.groovy.tools.shell.InteractiveShellRunner.work(InteractiveShellRunner.groovy:124) 
    at org.codehaus.groovy.tools.shell.ShellRunner.run(ShellRunner.groovy:59) 
    at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$run(InteractiveShellRunner.groovy) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) 
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213) 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132) 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:152) 
    at org.codehaus.groovy.tools.shell.InteractiveShellRunner.run(InteractiveShellRunner.groovy:83) 
    at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232) 
    at org.apache.tinkerpop.gremlin.console.Console.<init>(Console.groovy:143) 
    at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232) 
    at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:450) 
gremlin> 

이 ( http://kb.yworks.com/article/78/에서 복사) 내가 가져있어 xsmall2.graphml 파일

<?xml version="1.0" encoding="UTF-8"?> 
<graphml> 
    <graph id="G" edgedefault="directed"> 
    <node id="n0"/> 
    <node id="n1"/> 
    <node id="n2"> 
     <graph id="n2::" edgedefault="directed"> 
     <node id="n2::n0"/> 
     <node id="n2::n1"> 
      <graph id="n2::n1::" edgedefault="directed"> 
      <node id="n2::n1::n0"/> 
      <node id="n2::n1::n1"/> 
      <node id="n2::n1::n2"/> 
      <edge id="e0" source="n2::n1::n1" target="n2::n1::n0"/> 
      <edge id="e1" source="n2::n1::n2" target="n2::n1::n1"/> 
      </graph> 
     </node> 
     <node id="n2::n2"/> 
     <edge id="e2" source="n2::n1" target="n2::n0"/> 
     <edge id="e3" source="n2::n2" target="n2::n1"/> 
     </graph> 
    </node> 
    <edge id="e4" source="n1" target="n0"/> 
    <edge id="e5" source="n1" target="n2::n1"/> 
    <edge id="e6" source="n0" target="n2"/> 
    </graph> 
</graphml> 
+0

... 그리고 나는 g = graph.traversal() GV()를 사용할 때 나는 그들 중 절반에 대해 누락 노드를 볼 수 있지만 –

답변

1

TinkerPop의 GraphMLReader는 아무튼입니다 (사이트 내 검색이 지원되지 않는 아니었다 표시하지 않았다) 하위 그래프를 지원하지 않습니다. 파서가 <graph> 요소를 또 다른 <graph> 요소에 포함시킬 것을 기대하지 않는다고 생각합니다.

+0

하지 내가 바라던 대답하지만, 권위 그럼에도 불구하고 대답 :) –