Tiago de Paula Peixoto wrote:
On 12/21/2006 12:44 PM, Jens Müller wrote:
Is it trying to set a graph property instead of an edge property?! -> boost::mutate_graph_impl<...>::set_graph_property (#8)
It seems like it is... Could you please send your graphml file attached, if it's not very big, or a smaller version that shows the same problem?
I just changed the following in the code: void handle_property(std::string key_id, std::string descriptor, bool is_vertex, std::string value) { if (false) // (descriptor == "") <-- workaround?! m_g.set_graph_property(m_key_name[key_id], value, m_key_type[key_id]); else if (is_vertex) m_g.set_vertex_property(m_key_name[key_id], get_vertex_descriptor(descriptor), value, m_key_type[key_id]); else m_g.set_edge_property(m_key_name[key_id], get_edge_descriptor(descriptor), value, m_key_type[key_id]); } (change in line 362 of graphml.cpp) $ cat planar10.graphml <?xml version="1.0"?> <graphml xmlns="http://graphml.graphdrawing.org/xmlns/1.0rc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns/1.0rc graphml-structure-1.0rc.xsd http://graphml.graphdrawing.org/xmlns/1.0rc graphml-attributes-1.0rc.xsd"
<key id="k0" for="node" attr.name="coord1" attr.type="double"> <desc>First coordinate</desc> <default>0</default> </key> <key id="k1" for="node" attr.name="coord2" attr.type="double"> <desc>Second coordinate</desc> <default>0</default> </key> <key id="k2" for="edge" attr.name="length" attr.type="double"> <desc>Distance</desc> <default>1</default> </key> <graph edgedefault="directed"> <node id="n0"> <data key="k0">0.0351315</data> <data key="k1">0.118342</data> </node> <node id="n1"> <data key="k0">0.118659</data> <data key="k1">0.691161</data> </node> <node id="n2"> <data key="k0">0.166528</data> <data key="k1">0.382172</data> </node> <node id="n3"> <data key="k0">0.196673</data> <data key="k1">0.640841</data> </node> <node id="n4"> <data key="k0">0.275214</data> <data key="k1">0.517752</data> </node> <node id="n5"> <data key="k0">0.382098</data> <data key="k1">0.0422192</data> </node> <node id="n6"> <data key="k0">0.441136</data> <data key="k1">0.485064</data> </node> <node id="n7"> <data key="k0">0.747237</data> <data key="k1">0.414742</data> </node> <node id="n8"> <data key="k0">0.806262</data> <data key="k1">0.89162</data> </node> <node id="n9"> <data key="k0">0.831375</data> <data key="k1">0.128477</data> </node> <edge source="n0" target="n1"> <data key="k2">0.578877</data> </edge> <edge source="n1" target="n0"> <data key="k2">0.578877</data> </edge> <edge source="n1" target="n8"> <data key="k2">0.716227</data> </edge> <edge source="n8" target="n1"> <data key="k2">0.716227</data> </edge> </graph> </graphml> should do just the same, but has less nodes :-)