@_linked/fuseki

中文文档
3.9.2发布于 2026/10/28MITTypeScriptES Module构建来源已验证近 30 天下载 2331

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

中文使用文档
文档目录14 节
  1. 画面加上了富士奇的股票
  2. Fuseki 商店
  3. 从图表读取
  4. 图像
  5. 数据集推断类
  6. 这个 ds 数据集
  7. 仅存储读取
  8. 图
  9. 图表登记册
  10. 备份和删除
  11. 服务关闭
  12. Fuseki 6.2 笔记
  13. 在本地建立图像
  14. 重现图像

链接/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。 。 。 .

详情如下 图像 及其后各节.

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 三重写 到一个已命名的图表只有在图表登记簿列出该图表时才属于类分级 (见 数据集推断类) (中文(简体) ).
  • FUSEKI_USER, (中文(简体) ), FUSEKI_PASSWORD (可选) 基本 auth.

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

从图表读取

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

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.

docker run -d --name fuseki -p 3030:3030 -e ADMIN_PASSWORD=secret ghcr.io/linked-fw/fuseki:6.2.0-2
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 图表登记册列表 (见 图表登记册) (中文(简体) ). 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>)。 。 。 .

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

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个
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数字 :

# 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> 换句话说.

在本地建立图像

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号报告 以已建的图像; 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 共发布 28 个版本,首次发布于 2026/04/23;过去 12 个月发布了 28 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.9.2latest2026/10/2810 天前
3.9.12026/10/2513 天前
3.9.02026/10/2414 天前
3.8.02026/10/2414 天前
3.7.02026/10/2415 天前
3.6.02026/10/2216 天前

关于 @_linked/fuseki 的常见问题

@_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 和提交记录判断。