有没有办法将边缘属性作为 regraph 层次结构中的占位符?

Is there a way to have edge attributes as placeholders in a regraph hierarchy?

我正在开发一个 python 脚本,该脚本使用基于 networkx 的 regraph 库。我创建了一个层次结构,其中包含不同的图表,这些图表是相互输入的。在其中一个图中,我希望边具有属性,例如名称。当我这样做时,我收到一条消息说同态被破坏,因为输入它的图没有完全相同的边属性。

我知道这可能不是 regraph 的设计目的,但是有没有一种方法可以在层次结构中的图形中指定边属性或者不仅考虑模式而且考虑节点名称的规则?

我已经尝试将空属性添加到层次结构中的其他图形,这不起作用。

hierarchy = rg.NetworkXHierarchy()

g_type = nx.DiGraph()
g_type.add_nodes_from(['list', 'number'])
g_type.add_edges_from([('list', 'number')])

g_obj = nx.DiGraph()
g_obj.add_nodes_from(['A', 'a'])
rg.add_edge(g_obj, 'A', 'a', attrs={'name': 'input'})

hierarchy.add_graph('type', g_type)
hierarchy.add_graph('obj', g_obj)

hierarchy.add_typing('obj', 'type', {'A': 'list', 'a': 'number'})

我希望图的边有一个属性名,但是会导致同态错误

对于感兴趣的人,以下是我设法解决问题的方法:

hierarchy = rg.NetworkXHierarchy()

g_type = nx.DiGraph()
g_type.add_nodes_from(['list', 'number'])
g_type.add_edges_from([('list', 'number')])
rg.add_edge_attr(g_type, 'list', 'number', attrs={'name': rg.UniversalSet()})

g_obj = nx.DiGraph()
g_obj.add_nodes_from(['A', 'a'])
rg.add_edge(g_obj, 'A', 'a', attrs={'name': 'input'})

hierarchy.add_graph('type', g_type)
hierarchy.add_graph('obj', g_obj)

hierarchy.add_typing('obj', 'type', {'A': 'list', 'a': 'number'})

您只需添加具有 rg.UniversalSet 作为值的相同属性。