# @\_linked/fuseki 中文文档

规范地址：https://npmcn.com/package/%40_linked/fuseki/

版本：3\.9\.2
npm 元数据更新时间：2026-10-28T08:05:24.487Z
中文译文更新时间：2026-11-06T21:11:36.498Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40_linked/fuseki
原文对照：https://npmcn.com/package/%40_linked/fuseki/?lang=original
项目主页：https://github.com/linked-fw/fuseki#readme
源码仓库：https://github.com/linked-fw/fuseki

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

- 包体积（解压后）：118 kB，33 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-04-22T21:40:11.113Z
- 最新版本发布：2026-10-28T08:05:24.087Z
- 近 30 天下载量：2331（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：28（近 12 个月 28 个）

## 中文简介

一个商店,用于 `@_linked/core` 与Apache Jena Fuseki 、 数据集管理员和 Fuseki 交谈 **图像** 每个链接的应用程序运行 : `ghcr.io/linked-fw/fuseki`,其数据集推断出 RDFS 类.

## 安装

```sh
npm install @_linked/fuseki
```

也可以使用：`pnpm add @_linked/fuseki`、`yarn add @_linked/fuseki`、`bun add @_linked/fuseki`

## README

# 链接/fuseki

一个商店,用于 `@_linked/core` 在HTTP上与Apache Jena Fuseki交谈的SPARQL, 数据集管理员 帮手和富塞克人 **图像** 每个链接的应用程序运行 : `ghcr.io/linked-fw/fuseki`,其数据集 推断RDFS课程.

## 画面加上了富士奇的股票

1.  **现场班对每个数据集进行推断.** 数据集类型 `lf:DatasetRDFSLive` 推断 `rdf:type` 结束 `rdfs:subClassOf` 在查询时间, 超过 二届理事会 任何推断均不写给 磁盘.
2.  **一个重建自己的等级体系.** 分类等级从存储中读取 `rdfs:subClassOf` 默认图中的三重并重建一次,在第一个读作后 把那个换了 写作永不重建(包括GSP写作) 一个重建,每个交易都能看到一个与自己的快照相匹配的等级.
3.  **每个图表的推论**,包括命名的图表.
4.  **仅存储读取于 `/<ds>/stored`**: SPARQL 查询和图读取所存储的三相 仅供备份、复制和计数之用。 写着405.
5.  **新数据集默认推断.** 管理员表的模板( E)`POST $/datasets`, (中文(简体) ), `dbType=tdb2`(中文(简体) ) 被烤入并宣布一个推断数据集;一个模板守卫在启动时检查.
6.  **服务(固定查询)取消** 整个服务器.
7.  **删除数据集将删除其文件.** Stock Fuseki 留下了被包裹的数据集的 CTB2 文件 后面; 图像为通过管理员 API 创建的数据集去除它们.
8.  **福塞基 6.2 (中文(简体) )**,与 SHACL 验证和 Lucene 文本索引 一起工作,用于推断数据集.
9.  **已发布图像**数字 : `ghcr.io/linked-fw/fuseki:<jena version>-<n>`,多结构,不可改变 仅发布于 `main`,一个摘要被绑定的基底,作为非根用户运行,配置 环境变量与 `secoresearch/fuseki`。 。 。 .

详情如下 [图像](https://npmcn.com/package/%40_linked/fuseki/#readme-the-image) 及其后各节.

## Fuseki 商店

这个 `FusekiStore` 将SPARQL通过HTTP发送到一个Fuseki数据集. 配置环境 变量 :

-   `FUSEKI_BASE_URL` (要求):例如:. `http://localhost:3030`,或 `http://fuseki:3030` 在多克语. 被被剪断了.
-   `FUSEKI_DATASET` (需要):数据集名称(例如. `cn-main`) (中文(简体) ).
-   `FUSEKI_DEFAULT_GRAPH` (可选) : 要瞄准的图 IRI; 未设置, 工厂倒回 `process.env.DATA_ROOT`在图像推断的数据集, `rdfs:subClassOf` 三重写 到一个已命名的图表只有在图表登记簿列出该图表时才属于类分级 (见 [数据集推断类](https://npmcn.com/package/%40_linked/fuseki/#readme-datasets-infer-classes)) (中文(简体) ).
-   `FUSEKI_USER`, (中文(简体) ), `FUSEKI_PASSWORD` (可选) 基本 auth.

选择转到 `/<ds>/sparql`,插入和更新到 `/<ds>/update`,图表读取和写入 `/<ds>/data`。 。 。 .

### 从图表读取

`@_linked/core` 读取名为 `.from(graph | graph[])` 选择、计算和询问,以及 使用其图形 API 来写整张图表(`OntologyGraph.create(...).withContent(...)`, (中文(简体) ), `NamedGraph.replaceContent`,将每个图表的记录保存在图表登记册中(见 [图表登记册](https://npmcn.com/package/%40_linked/fuseki/#readme-the-graph-registry)) (中文(简体) ). `FusekiStore` 为耶拿设立两个机构:

```ts
import {graphs} from '@_linked/core/ontologies/graphs';
import {OntologyGraph} from '@_linked/core/shapes/NamedGraph';

await Person.select((p) => p.name).from(graphs.allOntologies).exec(store); // every registered ontology graph
await Person.select((p) => p.name).from(OntologyGraph.iriFor('@_linked/schema')).exec(store); // one package graph
await Person.select((p) => p.name).from(graphs.union).exec(store); // every named graph
```

-   **便携式名称 :** `graphs.default` 读作耶拿 `urn:x-arq:DefaultGraph` 财务报告和审定财务报表 `graphs.union` 作为 `urn:x-arq:UnionGraph` (每个被命名的图表,没有默认的图表); `jenaGraphName` 是绘图。 任何一个都单独工作;与其他图芯一起拒绝 改为:`unsupported-query-kind`) (中文(简体) ). `graphs.allOntologies` 由核心扩展为 绘制登记册列表.
-   **写作** 或任何 `urn:x-arq:` 名称是 被拒绝(`graph-name-read-only`在发出请求之前.
-   **`isolateLinkedTypeChecks` 这是在 :** 通过链接到达的对象,其推断类型检查 马上就好 `GRAPH ?g` 块后,它读取它储存的 三分之一,因为耶拿 重排一个块内的图案, 否则会运行每个图中的类型检查 设定。 这是一个商店设置,从来不是每个查询.
-   **登记册缓存** 扩展 `graphs.allOntologies` 保存在数据集下的每个进程 终点( e)`{baseUrl}/{dataset}`: 每一个 `FusekiStore` 对于一个数据集共享,它自己的图表 写作更新, `store.invalidateGraphRegistry()` 放下它 一个30秒以上的条目 正在重读.
-   **图像 :** 所注册的肿瘤图的分级图仅读取 `ghcr.io/linked-fw/fuseki:6.2.0-2` 或以后; 打开 `6.2.0-1` 在软件包图表中声明的类 不推断.

数据集辅助工具( E)`@_linked/fuseki/utils/datasets`,也可以从软件包根导出 : `datasetExists`, (中文(简体) ), `createDataset` (单位:千美元)`dbType: 'tdb2'` 在图像上创建一个推断数据集, `ensureDatasetExists`, (中文(简体) ), `ensureDatasetsExist`, (中文(简体) ), `clearDataset`, (中文(简体) ), `clearDatasets`,以及 `storedEndpoint` (下关.

## 图像

`ghcr.io/linked-fw/fuseki:6.2.0-2` (队列) `<jena version>-<n>`,不可改变) `secoresearch/fuseki:6.2.0` 加:

-   模块 `linked-fuseki-module.jar` 内 `/javalibs/` (图像的类路径目录): 数据集类型 `lf:DatasetRDFSLive`,则 `/stored` 终点,服务关闭 模板守护和删除过滤器;
-   `/fuseki-base/templates/config-tdb2`模板 `POST $/datasets` ,声明 推断数据集;
-   推断 `ds` 数据集(`/fuseki-base/configuration/assembler.ttl`) (中文(简体) ).

其它一切都是基本图像的:入口及其环境(`ADMIN_PASSWORD`, (中文(简体) ), `ENABLE_DATA_WRITE`, (中文(简体) ), `ENABLE_UPDATE`, (中文(简体) ), `ENABLE_SHACL`, (中文(简体) ), `QUERY_TIMEOUT`, (中文(简体) ), `USE_SYSTEM_CA_CERTS`, (中文(简体) ), `FUSEKI_BASE=/fuseki-base`, uid 9008 (第0组), 端口 3030.

```bash
docker run -d --name fuseki -p 3030:3030 -e ADMIN_PASSWORD=secret ghcr.io/linked-fw/fuseki:6.2.0-2
```

```yaml
services:
  fuseki:
    image: ghcr.io/linked-fw/fuseki:6.2.0-2
    ports: ["3030:3030"]
    environment:
      ADMIN_PASSWORD: ${FUSEKI_ADMIN_PASSWORD}
    volumes:
      - fuseki_databases:/fuseki-base/databases
volumes:
  fuseki_databases:
```

## 数据集推断类

通过管理员窗体创建的数据集( E)`POST $/datasets` 与 `dbName` 财务报告和审定财务报表 `dbType=tdb2`(中文(简体) ) 推断 RDFS 类: `ex:A rdfs:subClassOf ex:B` 存储,每个 `ex:A` 实例也是 `ex:B` 实例到每个查询. `dbType=mem` 数据集(`config-mem`)不要推断.

-   **只有阶级.** 等级是存储器的过渡性关闭 `rdfs:subClassOf` 三进制 **默认图** 页:1 **图表登记册列表** (见 [图表登记册](https://npmcn.com/package/%40_linked/fuseki/#readme-the-graph-registry)) (中文(简体) ). `rdfs:subPropertyOf`, (中文(简体) ), `rdfs:domain` 财务报告和审定财务报表 `rdfs:range` 即使数据集持有它们,也不会推断出什么。 A 类 `subClassOf` 3倍于其他任何一个 名称图表(草稿,导入)不是等级的一部分.
-   **每个图** 推断出:默认图,每个被命名的图和结合图。 推断 3倍数留在导致它们的数据的图表中.
-   **什么都没有实现.** 耶拿的查询时间 RDFS 视图 (`org.apache.jena.rdfs`回答问题 在阅读时推断出三重;贸发二理事会只持有书面内容,其交易为 不变。 推想出三进制的删除是禁行(商店不持有).
-   **等级跟随数据,懒惰.** 可能改变它的承诺只标志着 分级 stale: 任何写入注册图; 写入或删除一个 `rdfs:subClassOf` 三进制(或通配符删除、清晰、图表添加或投放) 列表图。 首个写着的交易 之后重建一次( 阅读器同时等待); 只写交易, 图表存储协议 `POST`, (中文(简体) ), `PUT` 财务报告和审定财务报表 `DELETE` 打开 `/<ds>/data` 包括,从未 重建,所以数百个肿瘤 花费一个重建(~20 ms for 800 class, 低于10ms for schema.org's 952 axioms). 交易保持它首先读取的等级 直到它结束,永远不要用比它自己的快照还老的读取(等待的交易) 为了写作锁,或者在他人犯罪期间开始, 建立自己的。 它可读作: 较新的一个:当另一个交易在开始后重建时,一个轴被删除,因为不再是 在它仍然可以看到被删除的三重体时推断出来。 作家会看到自己 `subClassOf` 从其下一个交易中更改;在同一交易中,通常与 从更改前开始的分级(因此有一个更新请求插入一个) `subClassOf` 接下来 运行 `DELETE WHERE { ?x a ex:Super }` 并仅包含更改 当共享的等级体系在最初读取时已经停滞.
-   **`ADD`, (中文(简体) ), `COPY` 财务报告和审定财务报表 `MOVE` 存储推断出三重.** SPARQL 更新 `ADD`, (中文(简体) ), `COPY` 财务报告和审定财务报表 `MOVE … TO DEFAULT` (或向任何图表)通过所推断的视图读取出源图表,所以 目标收到来源推断的 三重存储。 只复制存储的,请读 来源 `/<ds>/stored` 写下来.
-   **每一个书写都通过数据集.** 只写通过 `lf:DatasetRDFSLive` 数据集 (它的服务终点) 标志等级 Stale. 同样的服务或装配器 LDC2 位置, 或服务器运行时写入数据库文件的工具, 更改数据 但是,在下一个层次通过数据集或重新启动而改变之前,不是等级.
-   打开数据集( 服务器启动) 一次构建其层次; 日志说 `[linked-fuseki] <location>: hierarchy built (<n> subClassOf, <k> graphs, <ms> ms)` (单位:千美元)`<k>`数字 : 列表的图表,默认的图表不计算),每个重建 `hierarchy rebuilt (…, generation <g>)`。 。 。 .

静态数据集在其组装器中宣布该类型:

```turtle
PREFIX ja:   <http://jena.hpl.hp.com/2005/11/Assembler#>
PREFIX tdb2: <http://jena.apache.org/2016/tdb#>
PREFIX lf:   <https://linked.cm/ont/fuseki#>

:ds  a lf:DatasetRDFSLive ; ja:dataset :tdb .
:tdb a tdb2:DatasetTDB2 ; tdb2:location "/fuseki-base/databases/<name>" .
```

Lucene 索引将其包装为任何数据集 : `:text a text:TextDataset ; text:dataset :ds ; text:index …`。 。 。 . 通过一个包裹的数据集Jena-text,在贸发二理事会承诺之后,而不是在其中(因为 过耶拿自己的 `ja:DatasetRDFS`: 两者之间发生相撞,可以将索引留在数据后面; 以 `jena.textindexer` (单位:千美元)`$TEXTINDEXER` 在图像中).

**模板保存在原地.** Fuseki将股票模板复制到 `/fuseki-base/templates` 只有在他们失踪时,所以从更古老的图像中持续运行的区域才会产生平地 数据集。 模块启动时重写 `templates/config-tdb2` 当它与自己的不同时 战线。 挂载数据库( E)`/fuseki-base/databases`而不是整个运行区域.

## 这个 `ds` 数据集

图像保存底片图像 `ds` 服务 : `sparql` 和只读的 `data` 永远; `update` (单位:千美元)`ENABLE_UPDATE=true`),读写 `data` (单位:千美元)`ENABLE_DATA_WRITE=true`和 `shacl` (单位:千美元)`ENABLE_SHACL=true`应要求; `stored` 永远 它的数据集是 `lf:DatasetRDFSLive` 贸发理事会第二届会议 时间 `/fuseki-base/databases/ds` (没有联盟默认图),基站图像的 Lucene 索引为 `/fuseki-base/databases/lucene`用于测试和实验;任何数据都不应依赖 这个 一个自生自灭的消费者 `/fuseki-base/configuration` 替换它.

## 仅存储读取

每个推断数据集都有 `/<ds>/stored`,在存储的三进制后有一个终点:

| 请求 | 答复 |
| --- | --- |
| `GET /<ds>/stored` 与 `Accept: application/n-quads` | 整个存储的数据集,每个图表 |
| `GET /<ds>/stored?default`, (中文(简体) ), `?graph=<iri>` | 一个存储的图表 |
| `?query=…`, (中文(简体) ), `POST` `application/sparql-query`,一个表格 `query=` | a SPARQL 查询存储的三相 |
| 任何写入 | 405个 |

```ts
import { storedEndpoint } from '@_linked/fuseki';
storedEndpoint('http://localhost:3030', 'cn-main'); // http://localhost:3030/cn-main/stored
```

用它来做任何不能看出的 三分数: **备份、 数据集副本( 叉) 、 四 计数**。 。 。 . `GET /<ds>` (数据集 URL)和 `GET /<ds>/data` 返回时也推断出三分之一,a 从他们那里得到的拷贝 将存储推论.

## 图

默认图是存储的默认图: 没有数据集 `tdb2:unionDefaultGraph` (卢旺达国防军) 视图没有看到它,它应用时会隐藏存储的默认图,同时读取 写作仍然在那里。 命名的图表在贸发二理事会中持续存在,并被推定为默认图表; 联盟图是 `<urn:x-arq:UnionGraph>` (不包括默认图表;从不写) ) (中文(简体).

### 图表登记册

每个数据集可能都有其所命名的图表、图表的登记簿 `<https://linked.cm/pkg/core/graph/registry>` (每个数据集中相同的IRI),描述如下: SPARQL 服务描述 `@_linked/core`条件. `@_linked/core` 写它(每个软件包) 肿瘤图 `{package IRI}/graph/ontology` ; 模块仅读取 这个 记录将其图表列为 **等级源** 与 `core:feedsHierarchy true`数字 :

```turtle
# in GRAPH <https://linked.cm/pkg/core/graph/registry>
<https://linked.cm/pkg/schema/graph/ontology> a core:OntologyGraph ;
  sd:name <https://linked.cm/pkg/schema/graph/ontology> ;
  core:package "@_linked/schema" ; core:version "1.7.0" ;
  core:contentHash "3f9c…" ; core:feedsHierarchy true ;
  dcterms:modified "2026-10-30T10:12:00Z"^^xsd:dateTime ;
  dcterms:source "data/schema.ttl", "data/schema-added.ttl" .
```

(单位:千美元)`core:` 实值 `https://linked.cm/ont/core/`, (中文(简体) ), `sd:` `http://www.w3.org/ns/sparql-service-description#`. ) (中文(简体) )

-   等级由默认图加每个图构建 `?g` 与 `?r core:feedsHierarchy true ; sd:name ?g` 在登记册中,改为存储(无推断;旗帜) 是一个 `xsd:boolean`这样 `"true"` 作为普通字符串并不计数。 草案和进口品 记录 `false` 并永不供养.
-   一旦记录被写入,在记录被写入之前所写的图表即为输入. 丢弃记录(或 图)在下读时删除其类.
-   IRI在模块中被固定:没有数据集配置命名它们,并为 `6.2.0-1` 无需改动.
-   打开 `6.2.0-1` 结构是默认图中唯一的: a `@_linked/core` 移动 分级到软件包图表需求 `6.2.0-2` 或后会.

## 备份和删除

-   **备份流 `GET /<ds>/stored`** (单位:千美元)`Accept: application/n-quads`),并通过张贴恢复 n-Quads 到一个新的数据集的 URL. `POST $/backup/<ds>` 丢弃服务数据集, 推断 包括了三分, 并且恢复了垃圾场 将储存起来: 永远不要用它来推断 数据集.
-   **`DELETE $/datasets/<ds>` 删除数据集的文件** 下级 `/fuseki-base/databases/<ds>` 用于通过管理员 API 创建的数据集(一个带有自己的 `configuration/<ds>.ttl`) (中文(简体) ). 福锡 跳过一个包裹的数据集; 模块在 Fuseki 自己的规则下完成: 之后 仅成功删除, 仅此目录, 绝不是一个符号链接 。 重新创建的数据集 同一名称开始为空。 在共享配置文件中声明的数据集( C)`ds`,或 数据集在自己的 `assembler.ttl`) 仅未登记,并保留其档案,如平面 福泽克.
-   `POST $/compact/<ds>` 工作如贸发二大.

## 服务关闭

模块集 `arq:httpServiceAllowed false` 用于整个服务器的查询: `SERVICE <url>` 回答 422号。 未设置 `arq:httpServiceAllowed true` 在数据集中 `ja:context`。 。 。 . SPARQL 更新 `LOAD <url>` 仍然获取 `http:` 财务报告和审定财务报表 `file:` IRIs: 继续更新终点 认证或关闭公共网络.

`/stored` 读取下方的每套活数据。 不设置访问控制数据集 (jena-fuseki-access)之上的推断数据集,其服务也有 `stored`数字 : `/stored` 将 绕开它.

## Fuseki 6.2 笔记

-   `/<ds>/upload` 在Fuseki 6.2上回答405(“没有Fuseki调度”),在这个图像和底部 图像:Fuseki的上传处理器随其UI模块而来. 发送文件到 `/<ds>/data` (图形存储) 议定书)或N-Quads to `/<ds>` 换句话说.

## 在本地建立图像

```bash
docker build -t linked-fuseki:dev server     # from this repository's root
server/scripts/smoke.sh linked-fuseki:dev    # port 3233 (SMOKE_PORT)
```

或作曲: `build: { context: <path to this repository>/server }` 与 `image: linked-fuseki:dev`模块本身: `mvn -B -f server verify` (Java 21, 马文; Jena 6.2.0 是一种 提供依赖. `server/probe/probe.sh` 运行测量 [第001号报告](https://npmcn.com/package/%40_linked/fuseki/docs/reports/001-store-inference.md) 以已建的图像; `server/bench/` 这是 1M-三相基准.

## 重现图像

图像有自己的版本, `server/IMAGE_TAG` (单位:千美元)`<jena>-<n>`中,该版本与 `server/pom.xml`;工作流程检查. 这个 **图像** 工作流程发布 `ghcr.io/linked-fw/fuseki:<IMAGE_TAG>` 页:1 `linux/amd64` 财务报告和审定财务报表 `linux/arm64` 当一个推向 `main` 触摸 `server/`,或者在手动发送时;一个已存在的标记永远不会被覆盖,所以更改为 `server/` 以相撞方式发布 `IMAGE_TAG`编辑 **服务器** 工作流程的构建、测试和 每一次触碰的推力都要有烟味测试 `server/`npm 软件包(变换集, `publish.yml`(中文(简体) ) 不包含 `server/`。 。 。 .

第一个发布创建了 GHCR 软件包: 设置为 **公开** 一次(包装设置) 如果标签没有,则将其链接到此仓库。 保持连接 `linked-fw/fuseki` 有动作访问:工作流程通过软件包API读取已存在的标记, 答案是404, 包括缺失的软件包和工作流程可能看不到的软件, 404读作 作为"尚未公布".

## 常见问题

### @\_linked/fuseki 是什么？

一个商店,用于 @\_linked/core 与Apache Jena Fuseki 、 数据集管理员和 Fuseki 交谈 图像 每个链接的应用程序运行 : ghcr\.io/linked-fw/fuseki,其数据集推断出 RDFS 类\.

### 如何安装 @\_linked/fuseki？

在项目目录运行 npm install @\_linked/fuseki，或使用 pnpm add / yarn add / bun add。

### @\_linked/fuseki 支持 TypeScript 吗？

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

### @\_linked/fuseki 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @\_linked/fuseki 可以商用吗？

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

### @\_linked/fuseki 的下载量有多少？

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

### @\_linked/fuseki 还在维护吗？

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

