[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [igraph] GraphML RuntimeWarning

From: Tamás Nepusz
Subject: Re: [igraph] GraphML RuntimeWarning
Date: Tue, 2 Sep 2014 10:57:01 +0200

You are correct, the warning originates from the C core and it is harmless. The 
reason is as follows. <node> tags in GraphML have an id attribute. Users 
generally expect this attribute to be imported into an igraph vertex attribute, 
so we do that. However, when the GraphML file is saved, this vertex attribute 
is also written into the file as an "ordinary" GraphML node attribute (not into 
the <node> tag but as a separate <data> subtag). We cannot use the "id" vertex 
attribute directly in the GraphML file as the ids of the <node> tags because 
the uniqueness of the "id" vertex attribute in igraph is not guaranteed. So, 
the saved file has both a <node id="..."> identifier for each vertex (used 
within the file only) and an "id" attribute in a <data> subtag. That's why you 
get this warning, but as I said, it is harmless. Actually, since it is causing 
confusion, it might be a good idea to remove it from future releases. Any 


> On 2 Sep 2014, at 10:23, Gianluca Della Vedova <address@hidden> wrote:
> I can confirm that I have the same warning, but using the C interface.
> It seems that it is not a problem, as the file is read correctly.
> Best,
>> On 01/09/2014 22:09, Bradford Boyle wrote:
>> When I try to read GraphML files written with python-igraph, I get the
>> following `RuntimeWarning`:
>>    RuntimeWarning: Could not add vertex ids, there is already an 'id'
>> vertex attribute at foreign-graphml.c:416
>> For example, consider the following simple [GraphML file][1]:
>>    <?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";>
>>        <graph id="G" edgedefault="undirected">
>>            <node id="n0"/>
>>            <node id="n1"/>
>>            <edge id="e1" source="n0" target="n1"/>
>>        </graph>
>>    </graphml>
>> and a simple python script:
>>    import igraph
>>    G1 = igraph.Graph.Read_GraphML('wiki.graphml')
>>    G1.write_graphml('wiki-ig.graphml')
>>    G2 = igraph.Graph.Read_GraphML('wiki-ig.graphml')
>> which loads the original GraphML files, saves it to a new GraphML file, and
>> then tries to read back the just written file. Note the `RuntimeWarning` is
>> only generated on the second `Read_GraphML()`. Am I using `write_graphml()`
>> and/or `Read_GraphML()` incorrectly?
>> For reference, I am running Ubuntu 14.04 with python-igraph 0.7 from PyPI.
>> Thanks,
>> Bradford
>> [1]: http://en.wikipedia.org/wiki/GraphML#Introduction_to_GraphML
>> _______________________________________________
>> igraph-help mailing list
>> address@hidden
>> https://lists.nongnu.org/mailman/listinfo/igraph-help
> -- 
> Gianluca Della Vedova
> http://gianluca.dellavedova.org
> _______________________________________________
> igraph-help mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/igraph-help

reply via email to

[Prev in Thread] Current Thread [Next in Thread]