当前位置:   article > 正文

python使用pygraphdb连接graphdb图数据库

graphdb

前言

本文主要介绍如何用python操作graphdb,以及相应包pygraphdb的安装和使用

一、GraphDB是什么?

GraphDB 是一个高效、强大的图形数据库, 支持RDF和SPARQL。
通过使用SPARQL语句查询数据。

  1. 使用参考链接: https://graphdb.ontotext.com/documentation/free/index.html
  2. docker部署graphdb文章链接:https://blog.csdn.net/weixin_44836662/article/details/121216577
  3. 注意:由于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
  • 2
  • 3
  • 4

数据库管理

1. 获取现有的repository列表
2. 删除现有的repository
3. 创建一个repository
4. 重启现有的repository
5. 获取现有的repository size
  • 1
  • 2
  • 3
  • 4
  • 5

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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/1013515
推荐阅读
相关标签
  

闽ICP备14008679号