综合介绍
OpenSPG是由蚂蚁集团与OpenKG合作开发的开源知识图谱引擎,基于SPG(语义增强可编程图)框架。该引擎旨在提供显式语义表示、逻辑规则定义和操作框架等功能,支持领域知识图谱的构建和管理。OpenSPG结合了LPG结构的简单性和RDF语义的复杂性,适用于金融等多种业务场景。
功能列表
- 知识建模:支持领域模型约束的知识建模
- 语义表示:提供显式的语义表示和逻辑规则定义
- 操作框架:支持构建、推理等操作框架
- 插件适配:支持基础引擎和算法服务的插件化适配
- 数据可视化:提供直观的数据探索和分析界面
使用帮助
安装流程
服务端安装
服务端基于Docker Compose部署,主要包含4个镜像:
- openspg-server:提供schema服务
- openspg-mysql:存储schema数据
- tugraph:存储图谱数据
- elasticsearch:索引图谱数据
- 下载
docker-compose.yml
文件,并在当前目录下执行以下命令,等待命令执行完成即完成服务端启动:docker-compose -f docker-compose.yml up -d
- 当
openspg-server
在本地启动后,可以打开 http://127.0.0.1:8887 端口看到前端可视化页面。如果openspg-server
部署在远程,对应的IP地址需要做相应修改。
客户端安装
客户端也提供了Docker镜像,直接执行以下命令会拉取该镜像:
docker pull --platform linux/x86_64 spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-python:latest
下载完镜像后,可以克隆OpenSPG源码:
git clone --depth=1 https://github.com/OpenSPG/openspg.git
源码克隆完成后,可以体验源码中自带的案例:
# 启动容器,将其中的${project_dir}替换成源码目录
docker run --rm --net=host -v ${project_dir}:/code \
-it spg-registry.cn-hangzhou.cr.aliyuncs.com/spg/openspg-python:latest \
"/bin/bash"
# 容器启动后,进入/code目录,即openspg项目源码目录
cd /code
# 后续可以安装案例教程,比如进入riskmining目录
cd python/knext/knext/examples/riskmining
# 参考案例教程,执行相应的knext命令,比如
knext project create --prj_path .
knext schema commit
knext builder execute ...
knext reasoner execute ...
另外,当本地基于IDE去编写图谱项目时,可以执行以下命令安装knext:
pip install openspg-knext
详细操作流程
服务端启动
- 克隆 OpenSPG 源码,并在IDE中打开:
git clone git@github.com:OpenSPG/openspg.git
以下命令假定都执行在openspg代码库的根目录下。
- 执行 mvn 编译命令:
mvn clean install -Dmaven.test.skip=true -Dspotless.check.skip -Dspotless.apply.skip
- 本地启动MySQL、ElasticSearch、TuGraph等容器:
sh dev/test/docker-compose.sh
- 启动 server 入口位于:
com.antgroup.openspg.server.arks.sofaboot.Application
客户端启动
- 准备一个 Python 虚拟环境,版本3.8+。
- 将 mvn 编译好的 reasoner 和 builder 包复制到 knext 对应目录中:
cp dev/release/python/lib/builder* python/knext/knext/builder/lib cp dev/release/python/lib/reasoner* python/knext/knext/reasoner/lib
- 本地安装 nn4k:
cd python/nn4k python setup.py develop
- 本地安装 knext:
cd python/knext python setup.py develop
- 完成之后就可以在该 Python 虚拟环境中执行knext命令。
核心能力模型
OpenSPG的核心能力模型包括:
- SPG-Schema语义建模:负责属性图语义增强的Schema框架设计,如主体模型、演化模型、谓词模型等。
- SPG-Builder知识构建:支持结构化和非结构化知识导入,与大数据架构兼容衔接,提供了知识构建算子框架,实现从数据到知识的转换。抽象了知识加工SDK框架,提供实体链指、概念标化和实体归一等算子能力,结合自然语言处理(NLP)和深度学习算法,提高单个类型中不同实例的唯一性水平,支持领域图谱的持续迭代演化。
- SPG-Reasoner逻辑规则推理:抽象了KGDSL(Knowledge Graph Domain Specific Language),为逻辑规则提供可编程的符号化表示。以机器可理解的符号表示支持下游规则推理、神经/符号融合学习、KG2Prompt联动LLM知识抽取/知识推理等。通过谓词语义和逻辑规则来定义知识之间的依赖和传递,并且支持对复杂的业务场景的建模和分析。
- 可编程框架KNext:KNext作为图谱可编程框架,提供了一套可扩展、流程化、对用户友好的组件化能力;抽象了图谱核心能力,沉淀为组件化、框架化、引擎内置的能力;实现引擎与业务逻辑、领域模型的隔离,方便业务快速定义图谱解决方案;构建以OpenSPG引擎为基础,知识驱动的可控AI技术栈,链接LLM、GraphLearning等深度学习能力。
- 云适配层Cloudext:业务系统通过SDK对接开放引擎,构建自身特色的业务前端;可扩展/适配自定义的图存储/图计算引擎;可扩展/适配适合自身业务特点的机器学习框架。