文章目录
前言
本文主要介绍如何用python操作graphdb,以及相应包pygraphdb的安装和使用
一、GraphDB是什么?
GraphDB 是一个高效、强大的图形数据库, 支持RDF和SPARQL。
通过使用SPARQL语句查询数据。
- 使用参考链接: https://graphdb.ontotext.com/documentation/free/index.html
- docker部署graphdb文章链接:https://blog.csdn.net/weixin_44836662/article/details/121216577
注意:由于graphdb版本升级会导致pygraphdb出现bug,所以推荐安装 graphdb-free 9.10.0版本的,pygraphdb在此版本基础上构建,后续pygraphdb会更新去适应最新版本的graphdb。
二、使用pygraphdb连接graphdb
1.安装pygraphdb
pip install pygraphdb
注意:2.0.0版本以上不兼容它以下的版本
2. 功能介绍
数据管理
1. 通过执行SPARQL语句就可查询和更新Graph数据库
2. 下载数据并保存
3. 上传数据
4. 删除所有的节点数据
数据库管理
1. 获取现有的repository列表
2. 删除现有的repository
3. 创建一个repository
4. 重启现有的repository
5. 获取现有的repository size
3. 快速上手
import pygraphdb
# 数据库 config
host = '0.0.0.0'
port = '7200'
db_name = 'db_name'
user = 'admin'
password = 'password'
# sparql 语句
sparql = 'PREFIX pub: <http://ontology.ontotext.com/taxonomy/> ' \
'PREFIX pub-old: <http://ontology.ontotext.com/publishing#> ' \
'select distinct ?x ?Person ' \
'where {?x a pub:Person . ' \
'?x pub:preferredLabel ?Person . ' \
'?doc pub-old:containsMention / pub-old:hasInstance ?x .}'
# 连接数据库
db = pygraphdb.connect(host=host, port=port, user=user, password=password, db=db_name)
# 获取 cursor
cur = db.cursor()
# 执行sparql语句,得到结果
result = cur.execute(sparql)
print(result)
# 关闭 cursor
cur.close()
# 关闭数据库
db.close()
4. 使用with连接
# 第一种方式
with pygraph.connect(host, port, user, password, db) as db2:
# 获取 cursor
cur2 = db2.cursor()
# 执行sparql语句,得到结果
result2 = cur2.execute(sparql)
cur2.close()
print(result2)
# 第二种方式
db3 = pygraph.connect(host, port, user, password, db)
# 获取 cursor
with db3.cursor() as cur3:
# 执行sparql语句,得到结果
result3 = cur3.execute(sparql)
print(result3)
db3.close()
5.数据管理
import pygraphdb
host = '0.0.0.0'
port = '7200'
db_name = 'db_name'
user = 'admin'
password = 'password'
db = pygraphdb.connect(host, port, user, password, db_name)
cur = db.cursor()
"""
执行查询语句
"""
r = cur.execute('select * where {?s ?p ?o .} limit 100 ')
print(r)
"""
上传数据
支持上传 RDF OWL格式的文件
"""
r2 = cur.upload_data('./example.owl')
print(r2)
"""
下载数据
支持下载 RDF OWL JSON格式的文件
"""
r3 = cur.download_data('./download_result.owl')
print(r3)
"""
删除全部节点数据
"""
r4 = cur.delete_all_data()
print(r4)
cur.close()
db.close()
6.数据库管理
import pygraphdb
host = '0.0.0.0'
port = '7200'
user = 'admin'
password = 'password'
db = pygraphdb.connect(host, port, user, password)
manager = db.manage_repository()
"""
创建一个repository
"""
db_name = 'example'
r = manager.create_repository_graphdb_free(db_name)
print(r)
"""
删除一个repository
"""
r2 = manager.delete_repository(db_name)
print(r2)
"""
查询所有的repository列表
"""
r3 = manager.get_repository_list()
print(r3)
"""
重启repository
"""
r4 = manager.restart_repository(db_name)
print(r4)
"""
获取数据库大小
"""
r5 = manager.get_repository_size(db_name)
print(r5)
manager.close()
db.close()