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

使用nw:load graphml导入netlogo中的链接品种,netlogo,graphml,Netlogo,Graphml,导入graphml文件时,如何让NetLogo识别链接种类 我在graphml文件中指定了品种属性,并在NetLogo中命名了品种。当使用nw:load graphml导入NetLogo时,我认为NetLogo应该通过读取graphml文件中的breed属性将breed分配给链接。如中所述: …nw:load graphml将尝试将graphml文件中定义的属性值分配给同名的NetLogo代理变量(不区分大小写)。它尝试设置的第一个变量是品种,如果它在那里,那么海龟或链接将获得正确的品种,从而获

导入graphml文件时,如何让NetLogo识别链接种类

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

nw:load graphml
将尝试将graphml文件中定义的属性值分配给同名的NetLogo代理变量(不区分大小写)。它尝试设置的第一个变量是
品种
,如果它在那里,那么海龟或链接将获得正确的品种,从而获得正确的品种变量

但是,尽管在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>

谢谢大家!

在图形文件中从单数品种更改为复数品种(例如,从
ftf-tie
更改为
ftf-tie
)完全解决了这个问题


请参阅:

您的链接品种是否具有相同数量的变量?您可以使用语句
设置品种
来更改品种,但如果品种具有不同的变量集,则这不会有帮助。您可能需要做一些丑陋的事情,比如读取通用链接的图形,并使用变量“var1”、“var2”。阅读后,您可以同时更改品种和属性变量。@JenB谢天谢地,所有链接品种都有相同的变量!我无法读入无种子链接,然后设置繁殖,因为NetLogo不允许在同一个世界中有种子链接和无种子链接。我遗漏了什么吗?更新:在文件中从单数品种更改为复数品种(例如,从
ftf-tie
ftf-tie
)解决了这个问题。见:
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