链接/fuseki
一个商店,用于 @_linked/core 在HTTP上与Apache Jena Fuseki交谈的SPARQL, 数据集管理员
帮手和富塞克人 图像 每个链接的应用程序运行 : ghcr.io/linked-fw/fuseki,其数据集
推断RDFS课程.
画面加上了富士奇的股票
- 现场班对每个数据集进行推断. 数据集类型
lf:DatasetRDFSLive推断rdf:type结束rdfs:subClassOf在查询时间, 超过 二届理事会 任何推断均不写给 磁盘. - 一个重建自己的等级体系. 分类等级从存储中读取
rdfs:subClassOf默认图中的三重并重建一次,在第一个读作后 把那个换了 写作永不重建(包括GSP写作) 一个重建,每个交易都能看到一个与自己的快照相匹配的等级. - 每个图表的推论,包括命名的图表.
- 仅存储读取于
/<ds>/stored: SPARQL 查询和图读取所存储的三相 仅供备份、复制和计数之用。 写着405. - 新数据集默认推断. 管理员表的模板( E)
POST $/datasets, (中文(简体) ),dbType=tdb2(中文(简体) ) 被烤入并宣布一个推断数据集;一个模板守卫在启动时检查. - 服务(固定查询)取消 整个服务器.
- 删除数据集将删除其文件. Stock Fuseki 留下了被包裹的数据集的 CTB2 文件 后面; 图像为通过管理员 API 创建的数据集去除它们.
- 福塞基 6.2 (中文(简体) ),与 SHACL 验证和 Lucene 文本索引 一起工作,用于推断数据集.
- 已发布图像数字 :
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 类subClassOf3倍于其他任何一个 名称图表(草稿,导入)不是等级的一部分. - 每个图 推断出:默认图,每个被命名的图和结合图。 推断 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读作
作为"尚未公布".