gpt4 book ai didi

language-agnostic - 将图形数据表示为键值对象

转载 作者:行者123 更新时间:2023-12-03 13:29:38 26 4
gpt4 key购买 nike

我开始研究图数据库,但是我不知道这些图如何在内部存储。假设我有这张图(取自Wikipedia):



如何将此图序列化为键值对象? (例如,Python字典)

我想象两个命令,一个用于顶点,一个用于边缘:

{'vertices':
{'1': {'Name': 'Alice', 'Age': 18},
'2': {'Name': 'Bob', 'Age': 22},
'3': {'Type': 'Group', 'Name': 'Chess'}},
'edges':
{'100': {'Label': 'knows', 'Since': '2001/10/03'},
'101': {'Label': 'knows', 'Since': '2001/10/04'},
'102': {'Label': 'is_member', 'Since': '2005/7/01'},
'103': {'Label': 'Members'},
'104': {'Label': 'Members'},
'105': {'Label': 'is_member', 'Since': '2011/02/14'}},
'connections': [['1', '2', '100'], ['2', '1', '101'],
['1', '3', '102'], ['3', '1', '103'],
['3', '2', '104'], ['2', '3', '105']]}


但是我不确定这是否是最实际的实现。也许“连接”应该在“顶点”字典中。那么,使用键值对象实现图形数据存储的最佳方法是什么?我在哪里可以了解到更多信息?

可能相关,但不是重复的: How to represent a strange graph in some data structure

最佳答案

正常模式是不具有单独的connections结构,而应将该信息放入edges结构中。这给出了类似的内容:

{
'vertices': {
'1': {'Name': 'Alice', 'Age': 18},
'2': {'Name': 'Bob', 'Age': 22},
'3': {'Type': 'Group', 'Name': 'Chess'} },
'edges': [
{'from': '1', 'to': '2', 'Label': 'knows', 'Since': '2001/10/03'},
{'from': '2', 'to': '1', 'Label': 'knows', 'Since': '2001/10/04'},
{'from': '1', 'to': '3', 'Label': 'is_member', 'Since': '2005/7/01'},
{'from': '3', 'to': '1', 'Label': 'Members'},
{'from': '3', 'to': '2', 'Label': 'Members'},
{'from': '2', 'to': '3', 'Label': 'is_member', 'Since': '2011/02/14'} ] }

关于language-agnostic - 将图形数据表示为键值对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11342758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com