sparql
使用SQL查询SPARQL数据源
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgsparql | 1.0 | UTIL | Apache-2.0 | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 4470 | sparql | 否 | 否 | 否 | 是 | 否 | 否 | sparql |
| 相关扩展 | plperl plperlu pgjq pgjwt gzip bzip zstd http pg_net pg_curl |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0 | 1817161514 | pgsparql | plperl, plperlu |
| RPM | PIGSTY | 1.0 | 1817161514 | pgsparql_$v | - |
| DEB | PIGSTY | 1.0 | 1817161514 | postgresql-$v-pgsparql | - |
构建
您可以使用 pig build 命令构建 pgsparql 扩展的 RPM / DEB 包:
pig build pkg pgsparql # 构建 RPM / DEB 包
安装
您可以直接安装 pgsparql 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pgsparql; # 当前活跃 PG 版本安装
pig ext install -y pgsparql -v 18 # PG 18
pig ext install -y pgsparql -v 17 # PG 17
pig ext install -y pgsparql -v 16 # PG 16
pig ext install -y pgsparql -v 15 # PG 15
pig ext install -y pgsparql -v 14 # PG 14
dnf install -y pgsparql_18 # PG 18
dnf install -y pgsparql_17 # PG 17
dnf install -y pgsparql_16 # PG 16
dnf install -y pgsparql_15 # PG 15
dnf install -y pgsparql_14 # PG 14
apt install -y postgresql-18-pgsparql # PG 18
apt install -y postgresql-17-pgsparql # PG 17
apt install -y postgresql-16-pgsparql # PG 16
apt install -y postgresql-15-pgsparql # PG 15
apt install -y postgresql-14-pgsparql # PG 14
创建扩展:
CREATE EXTENSION sparql CASCADE; -- 依赖: plperl, plperlu
用法
从 PostgreSQL 查询 SPARQL 端点(如 DBpedia/Virtuoso)。SPARQL 查询被编译为 PostgreSQL 视图,可在 SQL 中使用。
获取资源的属性
SELECT * FROM sparql.get_properties('dbpedia', 'http://dbpedia.org/resource/Johann_Sebastian_Bach');
获取资源的引用
SELECT * FROM sparql.get_references('dbpedia', 'http://dbpedia.org/resource/Johann_Sebastian_Bach');
将 SPARQL 查询编译为 SQL 视图
SELECT sparql.compile_query(endpoint, identifier, sparql_query [, grouping]);
参数:
endpoint– 默认 SPARQL 端点名称identifier– 创建的函数和视图的 SQL 标识符sparql_query– 要编译的 SPARQL 查询grouping– 可选的分组标识符数组(未分组的列会被聚合为数组)
示例
SELECT sparql.compile_query('dbpedia', 'ludwig_van', $$
SELECT ?predicate, ?object
WHERE {
<http://dbpedia.org/resource/Ludwig_van_Beethoven> ?predicate ?object.
}
$$, '{predicate}');
-- 现在可以通过创建的视图进行查询
SELECT * FROM ludwig_van;
这将创建一个函数 ludwig_van() 和一个视图 ludwig_van,用于查询 SPARQL 端点并以 SQL 表的形式返回结果。