Fork me on GitHub

小型图数据库gqlite

市场上,越来越多的智能终端涌现而出,智能家居、智能汽车等等各式各样的终端设备层出不穷。从安全性角度来讲,人们并不希望所有的信息都上传到由资本掌控的服务器中;同时,由于网络不可靠性,也不可能时刻依赖服务端提供的智能来操控终端。因此,有必要给终端提供一定的智能化能力。
众所周知,当前的智能,都跟图有着密切的关系。从国际象棋的A星搜索,到AlphaGo的蒙特卡罗树搜索;从隐马尔可夫模型,到因果图,都可以看到图的影子。所以,尝试在图的基础上,为终端提供智能化能力是一个不错的选择。

当前,许多图数据库都提供了算法库。例如,Neo4j就提供了A*算法。同时,由于它们自身的定位,是为大型数据所准备的,所以常常会采用分布式技术,利用计算集群来提升它们的速度。但是对于终端设备来说,往往缺少这样的算力,不可能提供全方位的智能化能力。所以一个小型的、灵活的图数据库孕育而出。

技术上,已经有足够成熟的能力来构建这样的小型数据库。
1. 借鉴于Postgres的Gist/GIN索引,可以构建多领域的应用,例如PostgresGIS之于地理信息系统

2. 借鉴于Postgres的扩展机制,可以灵活的切换不同的算法,以达成优化的目标。

基于上述分析,在此构建了一个小型的图数据库雏形gqlite。其源码以MIT协议放在github上:
https://github.com/webbery/gqlite
由于时间精力有限,许多功能尚未实现,后续将逐步补充。

同时,为了简化学习曲线,其查询语言采用了类似nosql的形式。如同js一般,只要有一定的编程基础,就可以看懂查询语言。同时也能够降低开发的成本,以提升智能终端的即时应变能力。

总的来说,小型图数据库gqlite是为那些安全性要求高、无网络以及高延迟环境下的智能设备所准备的一种智能解决方案。利用它以快速完成多样化的功能,如寻找一条最好的任务路径以执行机器人的行动序列,或者在深空/深海以增强风险应对能力等等。

 

posted @ 2022-03-07 23:53  webberg  阅读(158)  评论(0编辑  收藏  举报