# @comunica/query-sparql-solid 中文文档

规范地址：https://npmcn.com/package/%40comunica/query-sparql-solid/

版本：5\.0\.1
npm 元数据更新时间：2026-10-22T07:39:04.650Z
中文译文更新时间：2026-11-10T14:43:05.832Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40comunica/query-sparql-solid
原文对照：https://npmcn.com/package/%40comunica/query-sparql-solid/?lang=original
项目主页：https://comunica.dev/
源码仓库：https://github.com/comunica/comunica-feature-solid

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：258 kB，30 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：258 个
- 首次发布：2022-02-16T09:28:59.017Z
- 最新版本发布：2026-01-08T09:16:05.227Z
- 近 30 天下载量：21619（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：18（近 12 个月 2 个）

## 中文简介

用于对 Solid Data sockets 进行查询评价的 Comunica 引擎

## 安装

```sh
npm install @comunica/query-sparql-solid
```

也可以使用：`pnpm add @comunica/query-sparql-solid`、`yarn add @comunica/query-sparql-solid`、`bun add @comunica/query-sparql-solid`

## README

# SPARQL 固体

[![npm version](https://badge.fury.io/js/%40comunica%2Fquery-sparql-solid.svg)](https://www.npmjs.com/package/@comunica/query-sparql-solid) [![Docker Pulls](https://img.shields.io/docker/pulls/comunica/query-sparql-solid.svg)](https://hub.docker.com/r/comunica/query-sparql-solid/)

Comunica SPARQL 光谱 Solid是用于 JavaScript 的 SPARQL 查询引擎, 可以向上查询 [固态](https://solidproject.org/) 数据舱.

这个软件包在Node.js和浏览器环境中都可以安全使用.

这个模块是 [通信框架](https://comunica.dev/)。 。 。 . [点击这里了解更多 Comunica 和 Solid](https://comunica.dev/docs/query/advanced/solid/)。 。 。 .

## 已知问题

这个图书馆在某些情况下有下列已知问题,这些问题是我们无法控制的(但已经报告).

-   **网络工人**: 此库无法在 Web Workers 内部使用, 原因是其中存在一个未打开的问题 [https://github.com/inrupt/solid-client-authn-js/issues/1657 (中文(简体) )](https://github.com/inrupt/solid-client-authn-js/issues/1657) 在这个问题解决之前, [https://github.com/rubensworks/soli-client-authn-js (中文(简体) )](https://github.com/rubensworks/solid-client-authn-js) 可改为使用.
-   **企业固件服务器** (单位:千美元)[https://pod.inrupt.com/ (中文(中国大陆) )](https://pod.inrupt.com/):
    -   补丁请求不被接受,因此只能创建新文档,而不能修改已存在的文档.
    -   由于失踪 `Accept-Patch`,以及 `Accept-Put` 信头, [目标类型必须强制](https://comunica.dev/docs/query/advanced/destination_types/)。这只有助于通过 `putLdp` 目标类型。 通过 `patchSparqlUpdate` 由于前一问题,目前不可能.

与 [社区固件服务器](https://github.com/solid/community-server/)

## 安装

```bash
$ yarn add @comunica/query-sparql-solid
```

或者说

```bash
$ npm install -g @comunica/query-sparql-solid
```

## 使用量

从私人资源显示 100 三重 通过 [https://solidcommunity.net/ 页面存档备份,存于互联网档案馆](https://solidcommunity.net/) 身份提供者(当使用时) [https://pod.inrupt.com/ (中文(中国大陆) )](https://pod.inrupt.com/),您的境内流离失所者将 [https://broductor.pod.inrupt.com/ 互联网档案馆的存檔,存档日期2013-12-21](https://broker.pod.inrupt.com/):

```bash
$ comunica-sparql-solid --idp https://solidcommunity.net/ \
  http://example.org/private-resource.ttl \
  "SELECT * WHERE {
       ?s ?p ?o
   } LIMIT 100"
```

此命令将连接到给定的身份提供者 , 并打开浏览器登录您的 WebID . 登录后,查询引擎将能够访问所有您访问的文件.

显示所有选项的帮助 :

```bash
$ comunica-sparql-solid --help
```

碞钩 [Comunica SPARQL 光谱](https://github.com/comunica/comunica/tree/master/packages/query-sparql), (中文(简体) ), (单位:千美元) [动态变量](https://github.com/comunica/comunica/tree/master/packages/query-sparql#usage-from-the-command-line) (单位:千美元)`comunica-dynamic-sparql-solid`)也存在.

_[**更多信息** 关于从命令行查询](https://comunica.dev/docs/query/getting_started/query_cli/)。 。 。 ._

### 应用中的使用

此引擎可用于JavaScript/TypeScript应用如下:

```javascript
const QueryEngine = require('@comunica/query-sparql-solid').QueryEngine;
const { interactiveLogin } = require('solid-node-interactive-auth');

// This will open your Web browser to log in
const session = await interactiveLogin({ oidcIssuer: 'https://solidcommunity.net/' });
const myEngine = new QueryEngine();

const bindingsStream = await myEngine.queryBindings(`
  SELECT * WHERE {
      ?s ?p ?o
  } LIMIT 100`, {
  sources: [session.info.webId], // Sets your profile as query source
  '@comunica/actor-http-inrupt-solid-client-authn:session': session,
});

// Consume results as a stream (best performance)
bindingsStream.on('data', (binding) => {
  console.log(binding.toString()); // Quick way to print bindings for testing

  console.log(binding.has('s')); // Will be true

  // Obtaining values
  console.log(binding.get('s').value);
  console.log(binding.get('s').termType);
  console.log(binding.get('p').value);
  console.log(binding.get('o').value);
});
bindingsStream.on('end', () => {
  // The data-listener will not be called anymore once we get here.
});
bindingsStream.on('error', (error) => {
  console.error(error);
});

// Consume results as an array (easier)
const bindings = await bindingsStream.toArray();
console.log(bindings[0].get('s').value);
console.log(bindings[0].get('s').termType);
```

**请注意: `solid-node-interactive-auth` 只在Node.js应用程序内工作。 请参考 [`@inrupt/solid-client-authn-browser`](https://www.npmjs.com/package/@inrupt/solid-client-authn-browser) 如果你想通过浏览器应用程序登录.**

_[**更多信息** 关于查询应用程序](https://comunica.dev/docs/query/getting_started/query_app/)。 。 。 ._

### 用作 SPARQL 端点

启动网络服务,通过 SPARQL 协议(即 a) 曝光私有资源 _SPARQL 端点_, (中文(简体) ), 通过 [https://solidcommunity.net/ 页面存档备份,存于互联网档案馆](https://solidcommunity.net/) 身份提供者.

```bash
$ comunica-sparql-solid-http --idp https://solidcommunity.net/ \
  http://example.org/private-resource.ttl
```

显示所有选项的帮助 :

```bash
$ comunica-sparql-solid-http --help
```

SPARQL端点只能动态地启动. 一个替代配置文件可以通过 `COMUNICA_CONFIG` 环境变量.

使用 `bin/http.js` 在 Comunica 单列坡开发环境中运行时.

_[**更多信息** 关于设置 SPARQL 端点](https://comunica.dev/docs/query/getting_started/setup_endpoint/)。 。 。 ._

## 常见问题

### @comunica/query-sparql-solid 是什么？

用于对 Solid Data sockets 进行查询评价的 Comunica 引擎

### 如何安装 @comunica/query-sparql-solid？

在项目目录运行 npm install @comunica/query-sparql-solid，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 comunica-sparql-solid、comunica-sparql-solid-http、comunica-dynamic-sparql-solid，可以用 npx comunica-sparql-solid 直接运行。

### @comunica/query-sparql-solid 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @comunica/query-sparql-solid 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @comunica/query-sparql-solid 可以商用吗？

@comunica/query-sparql-solid 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @comunica/query-sparql-solid 的下载量有多少？

根据 npm 官方下载统计，@comunica/query-sparql-solid 在 2026/10/11 – 2026/11/09 这 30 天内被下载 21,619 次，日均约 721 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @comunica/query-sparql-solid 还在维护吗？

最新版本 5\.0\.1 发布于 2026/01/08（10 个月前）；至今共发布 18 个版本，其中过去 12 个月发布了 2 个；首次发布于 2022/02/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

