TypedTree提供了一个树结构,允许分别向节点和关系添加类型信息。
typed-tree的Python项目详细描述
Contextualise,我目前正在开发的一个知识管理应用程序,允许用户可视化 感兴趣的主题(即nodes)以及这些主题之间的关系(即对其他节点的引用) 网络图可视化。为此,TypedTree不仅使可视化变得简单 实际的(网络)图形本身,也增强了与每个类型相关的信息的可视化 节点和对其他节点的引用。在
TypedTree基于mine的早期实现:Python tree implementation。在
安装
TypedTree正式支持Python3.6–3.7。要安装TypedTree,只需:
$ pip install typed-tree
安装开发版本
如果系统上安装了Git,则可以安装开发版本 属于TypedTree。在
在安装开发版本之前,您可能需要使用卸载TypedTree的标准版本 pip:
^{pr2}$然后做:
$ git clone https://github.com/brettkromkamp/typed-tree $ cd typed-tree $ pip install -e .
pip install -e .命令允许您通过在 正确放置并将命令行脚本安装到适当的位置。在
然后,如果要随时更新TypedTree,请在同一目录中执行以下操作:
$ git pull
示例
fromtypedtree.traversalconstantimportTraversalConstantfromtypedtree.treeimportTreetree=Tree()# A node without a parent pointer is by definition the root nodetree.add_node('Elon Musk',node_type='person')tree.add_node('Lyndon Rive',parent_pointer='Elon Musk',node_type='person',edge_type='family')tree.add_node('SpaceX',parent_pointer='Elon Musk',node_type='company',edge_type='founder')tree.add_node('Tesla',parent_pointer='Elon Musk',node_type='company',edge_type='founder')tree.add_node('Solar City',parent_pointer='Lyndon Rive',node_type='company',edge_type='co-founder')tree.add_node('Solar Energy Services',parent_pointer='Solar City',node_type='product',edge_type='service')tree.add_node('Falcon 9',parent_pointer='SpaceX',node_type='rocket',edge_type='technology')tree.add_node('Falcon Heavy',parent_pointer='SpaceX',node_type='rocket',edge_type='technology')tree.add_node('Dragon',parent_pointer='SpaceX',node_type='space-ship',edge_type='technology')tree.add_node('Model S',parent_pointer='Tesla',node_type='car',edge_type='product')tree.add_node('Model X',parent_pointer='Tesla',node_type='car',edge_type='product')tree.add_node('Model Y',parent_pointer='Tesla',node_type='car',edge_type='product')tree.add_node('Roadster',parent_pointer='Tesla',node_type='car',edge_type='product')print('\n***** TREE STRUCTURE *****')tree.display('Elon Musk')print('\n***** DEPTH-FIRST ITERATION *****')foridentifierintree.traverse('Elon Musk'):node=tree[identifier]print(f"{node.identifier} [{node.typeor'*Undefined*'}]")print('\n***** BREADTH-FIRST ITERATION *****')foridentifierintree.traverse('Elon Musk',mode=TraversalConstant.BREADTH):node=tree[identifier]print(f"{node.identifier} [{node.typeor'*Undefined*'}]")
Output
***** TREE STRUCTURE ***** Elon Musk [person] - (*Undefined*) Lyndon Rive [person] - (family) Solar City [company] - (co-founder) Solar Energy Services [product] - (service) SpaceX [company] - (founder) Falcon 9 [rocket] - (technology) Falcon Heavy [rocket] - (technology) Dragon [space-ship] - (technology) Tesla [company] - (founder) Model S [car] - (product) Model X [car] - (product) Model Y [car] - (product) Roadster [car] - (product) ***** DEPTH-FIRST ITERATION ***** Elon Musk [person] Lyndon Rive [person] Solar City [company] Solar Energy Services [product] SpaceX [company] Falcon 9 [rocket] Falcon Heavy [rocket] Dragon [space-ship] Tesla [company] Model S [car] Model X [car] Model Y [car] Roadster [car] ***** BREADTH-FIRST ITERATION ***** Elon Musk [person] Lyndon Rive [person] SpaceX [company] Tesla [company] Solar City [company] Falcon 9 [rocket] Falcon Heavy [rocket] Dragon [space-ship] Model S [car] Model X [car] Model Y [car] Roadster [car] Solar Energy Services [product]
文件
待定。在
如何作出贡献
- 检查是否有未解决的问题,或者打开一个新的问题,围绕某个特性想法或bug展开讨论。在
- 在GitHub上分叉the repository,开始对master分支(或其分支)进行更改。在
- 编写一个测试,测试该错误是否已修复,或者该功能是否按预期工作。在
- 发送一个pull请求并对维护者进行bug,直到它被合并和发布。:)确保将自己添加到AUTHORS。在
- 项目
标签: