使用nw:load-graphml在netlogo中导入链接品种

时间:2019-01-21 22:45:32

标签: netlogo graphml

在导入graphml文件时如何使NetLogo识别链接品种?

我在graphml文件中指定了品种属性,并在NetLogo中命名了品种。使用nw:load-graphml导入NetLogo时,我相信NetLogo应该通过读取graphml文件中的breed属性将links分配给breed。如NetLogo documentation中所述:

  

... nw:load-graphml将尝试将GraphML文件中定义的属性值分配给相同名称的NetLogo代理变量(不区分大小写)。它尝试设置的第一个是breed(如果存在),因此乌龟或链接将获得正确的品种,因此也将获得正确的品种变量。

但是,尽管在NetLogo和graphml文件中指定了链接品种,但在导入时仍为链接分配了通用的“链接”品种。

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="v_name" for="node" attr.name="name" attr.type="string"/>
  <key id="e_breed" for="edge" attr.name="breed" attr.type="string"/>
  <graph id="G" edgedefault="undirected">
    <node id="n0">
      <data key="v_name">1</data>
    </node>
    <node id="n1">
      <data key="v_name">2</data>
    </node>
    <node id="n2">
      <data key="v_name">3</data>
    </node>
    <node id="n3">
      <data key="v_name">4</data>
    </node>
    <node id="n4">
      <data key="v_name">5</data>
    </node>
    <edge source="n1" target="n2">
      <data key="e_breed">ftf-tie</data>
    </edge>
    <edge source="n0" target="n3">
      <data key="e_breed">ftf-tie</data>
    </edge>
    <edge source="n0" target="n4">
      <data key="e_breed">ftf-tie</data>
    </edge>
    <edge source="n1" target="n4">
      <data key="e_breed">ftf-tie</data>
    </edge>
    <edge source="n1" target="n4">
      <data key="e_breed">sns-tie</data>
    </edge>
  </graph>
</graphml>

NetLogo导入代码:

extensions [ nw ]

undirected-link-breed [ ftf-ties ftf-tie ]
undirected-link-breed [ sns-ties sns-tie ]

to setup
  clear-all
  nw:load-graphml "test.graphml"
  repeat 30 [ layout-spring turtles links 0.2 5 1 ]
end

谢谢!

1 个答案:

答案 0 :(得分:2)

在graphml文件中从单品种改为多品种(例如,从ftf-tieftf-ties)完全解决了这个问题。

请参阅:https://github.com/NetLogo/NW-Extension/issues/189