如何使用Netlogo NW扩展加载graphml文件

时间:2015-02-14 15:38:37

标签: netlogo

我认为nw:load-graphml的工作方式存在一个错误。

将此graphml文件与3个节点和3个无向品种的链接" parentals"和2个有针对性的品种的链接"扩散" :

<?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">
<!-- Created by igraph -->
<key id="e_breed" for="edge" attr.name="breed" attr.type="string"/>
<graph id="G" edgedefault="undirected">
    <node id="n0">
    </node>
    <node id="n1">
    </node>
    <node id="n2">
    </node>
    <edge source="n0" target="n1">
       <data key="e_breed">parentals</data>
    </edge>
    <edge source="n0" target="n2">
       <data key="e_breed">parentals</data>
    </edge>
    <edge source="n1" target="n2">
       <data key="e_breed">diffusions</data>
    </edge>
    <edge source="n0" target="n1">
       <data key="e_breed">diffusions</data>
    </edge>
  </graph>
</graphml>

当您使用nw:load-graphml加载文件时,会发生的是所有&#34; parentals&#34;链接被创建,而&#34;扩散&#34;只是部分创造:只有&#34;扩散&#34;涉及未通过父级链接链接的节点的链接被创建,而其他链接被跳过...这是错误还是load-graphml原语中的预期行为?

这是一个简短的网络徽标代码,用于演示:

extensions [nw]

undirected-link-breed [parentals parental]
directed-link-breed [diffusions diffusion]

to setup
   ca
   nw:load-graphml "prova.graphml"
   layout-circle turtles 10
end

1 个答案:

答案 0 :(得分:1)

在您的NetLogo代码中,&#34;扩散&#34;链接是针对的。添加定向=&#34;真&#34;属性为prova.graphml文件中的扩散链接:

<edge source="n0" target="n1">
   <data key="e_breed">parentals</data>
</edge>
<edge source="n0" target="n2">
   <data key="e_breed">parentals</data>
</edge>
<edge directed="true" source="n1" target="n2">
   <data key="e_breed">diffusions</data>
</edge>
<edge directed="true" source="n0" target="n1">
   <data key="e_breed">diffusions</data>
</edge>

我尝试了更正的文件,我认为链接现在可以了:

ask links [show self]

结果:

(diffusion 2 1): (diffusion 2 1)
(diffusion 0 2): (diffusion 0 2)
(parental 0 1): (parental 0 1)
(parental 0 2): (parental 0 2)

编辑:

在当前版本的NW扩展中,load-graphml函数中有一些open issues。我认为在导入文件后添加一些验证是一个好主意,以检查链接&#39;一致性。也许每个&#34;定向的is-directed-link?记者和#34;链接面包,并计算链接和比较预期的链接数。