【问题标题】:Specify an edgeLabel in graphML that tinkerpop can understand在graphML中指定tinkerpop可以理解的edgeLabel
【发布时间】:2018-01-16 11:22:58
【问题描述】:

我一直在努力将 graphml 加载到 Tinkerpop3。

Graph graphMLGraph = TinkerGraph.open();
graphMLGraph.io(IoCore.graphml()).readGraph(file.getAbsolutePath());

加载时,我希望边缘有一个标签。

graphTraversalSource.E().toStream().forEach(edge -> {
      System.out.println(edge.label());
    });

上面的代码总是将graphml中所有边的标签打印为edge。我的 graphml sn-ps。

<edge id="1" source="1" target="3">
<data key="edgelabel">belongs-to</data>
<data key="weight">1.0</data>
</edge>
<edge id="2" source="1" target="4">
<data key="weight">1.0</data>
<data key="edgelabel">part-of</data>
</edge>

以及关键定义

<key attr.name="Edge Label" attr.type="string" for="edge" id="edgelabel"/>

我使用 DSE 5.1.3 的 java 驱动程序,tinkerpop 3.2.5 通过传递依赖使用,并使用 Gephi 来编写 graphml。

【问题讨论】:

    标签: gephi tinkerpop3 datastax-enterprise-graph


    【解决方案1】:

    默认情况下,如果您将键定义为:

    <key id="labelE" for="edge" attr.name="labelE" attr.type="string" /> 
    

    重要的部分是attr.name 默认为“labelE”。请参阅 GraphML here 的 IO 参考文档。请注意,通过在构建器本身上设置 edgeLabelKey 值来实例化 GraphMLReader.Builder 对象时,可以更改默认值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多