跳转到主要内容

pgrdf

PostgreSQL 内 RDF、SPARQL、SHACL 与 OWL 推理扩展

概览

扩展包名版本分类许可证语言
pgrdf0.6.40FEATMITRust
ID扩展名BinLibLoadCreateTrustReloc模式
2640pgrdf否是是是否否pgrdf

Production hook/cache deployments should preload pgrdf.

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY0.6.401817161514pgrdf-
RPMPIGSTY0.6.401817161514pgrdf_$v-
DEBPIGSTY0.6.401817161514postgresql-$v-pgrdf-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
d12.aarch64
d13.x86_64
d13.aarch64
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
u22.x86_64
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
u22.aarch64
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
u24.x86_64
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
u24.aarch64
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
PIGSTY 0.6.39
u26.x86_64
u26.aarch64

构建

您可以使用 pig build 命令构建 pgrdf 扩展的 RPM / DEB 包:

pig build pkg pgrdf         # 构建 RPM / DEB 包

安装

您可以直接安装 pgrdf 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install pgrdf;          # 当前活跃 PG 版本安装
pig
pig ext install -y pgrdf -v 18  # PG 18
pig ext install -y pgrdf -v 17  # PG 17
pig ext install -y pgrdf -v 16  # PG 16
pig ext install -y pgrdf -v 15  # PG 15
pig ext install -y pgrdf -v 14  # PG 14
dnf
dnf install -y pgrdf_18       # PG 18
dnf install -y pgrdf_17       # PG 17
dnf install -y pgrdf_16       # PG 16
dnf install -y pgrdf_15       # PG 15
dnf install -y pgrdf_14       # PG 14
apt
apt install -y postgresql-18-pgrdf   # PG 18
apt install -y postgresql-17-pgrdf   # PG 17
apt install -y postgresql-16-pgrdf   # PG 16
apt install -y postgresql-15-pgrdf   # PG 15
apt install -y postgresql-14-pgrdf   # PG 14

预加载配置:

shared_preload_libraries = 'pgrdf';

创建扩展:

CREATE EXTENSION pgrdf;

用法

来源:

pgrdf 0.6.40 在 PostgreSQL 内保存 RDF 图,支持 Turtle/TriG/N-Quads 导入、SPARQL 查询与更新、SHACL 校验和 RDFS/OWL 推理。先预加载 pgrdf 并重启,再由超级用户创建扩展。

核心用法

shared_preload_libraries = 'pgrdf'
CREATE EXTENSION pgrdf;
SELECT pgrdf.add_graph('http://example.org/people');
SELECT pgrdf.parse_turtle(
  '@prefix ex: <http://example.org/> . ex:alice ex:name "Alice" .',
  pgrdf.graph_id('http://example.org/people'));
SELECT * FROM pgrdf.sparql('SELECT ?s ?p ?o WHERE { ?s ?p ?o } LIMIT 10');
SELECT * FROM pgrdf.surface();

运行边界

固定的 pgrdf 模式提供 add_graph、graph_id、parse_turtle、load_turtle、sparql、materialize、validate、stats 和 surface。文件加载器读取服务端路径,应谨慎授权。can_clear_graphs() 报告清空图所需权限;非所有者写图仍需文档规定的底层表权限,并遵循图锁。shacl_capability() 显示支持的校验范围,路径深度/截断设置限制遍历。源码构建选项覆盖 PostgreSQL 14–18,已发布的 Linux 二进制面向 PG18。0.6.39 使用不复用的序列分配图 ID,图身份由 IRI 确定,编号间隙属于正常情况。安装匹配的库后,在各数据库执行 ALTER EXTENSION pgrdf UPDATE;新库遇到旧 SQL 会以 SQLSTATE 55000 拒绝操作。不要使用无法正常构建的 0.6.35–0.6.38 PGXN 源码归档。备份须共同保留并验证图与字典数据。

0.6.40 的所有者修复

如果存储表曾转交给其他角色,0.6.39 的升级可能让 _pgrdf_graph_id_seq 仍归升级执行者所有,从而无法创建新图。0.6.40 将该序列所有者对齐到 _pgrdf_quads 的所有者;只授予序列使用权限并不足够。pgrdf.ownership_drift() 报告存储对象所有者的差异及建议修复命令,更改角色前应逐项检查。安装匹配二进制后,在各数据库执行 SQL 升级;0.6.34–0.6.38 可直接升级到 0.6.40。

这个页面对您有帮助吗?