@faubulous/mentor-rdf

中文文档
2.7.0发布于 2026/11/03GPLTypeScriptCommonJS构建来源已验证近 30 天下载 3005

用于与RDF词汇合作的图书馆,支持RDFS基础和OWL推论.

中文使用文档
文档目录12 节
  1. 特征
  2. 仓库模式
  3. 结构原因
  4. RDF 存储器
  5. 词汇常数
  6. SKOS 概念计划和收藏
  7. 哪些概念属于计划
  8. 三个不同的问题
  9. 嵌入式收藏
  10. 周期和自我参考
  11. 安装
  12. 快速启动

指导RDF API

一个TypeScript库,用于在Node.js和浏览器中与RDF词汇工作. 它授权 导师 VS代码扩展,通过寄存器模式和轻量级结构推理提供结构化访问本体学.

License: LGPL-2.1 API Docs Coverage npm downloads TypeScript

特征

仓库模式

通过提供类型安全、SPARQL免费查询的专用寄存器访问 RDF 资源 :

  • 词汇库 - 查询本体学和SKOS概念方案
  • 类仓库 - 获取具有分级结构的 OWL/RDFS 类
  • 财产仓库 - 访问对象、数据类型和注释属性
  • 个人仓库 - 查询类实例及其属性
  • 形状仓库 - 与SHACL节点和财产形状合作

结构原因

内置理性器扩展了您的 RDF 图表,并带有推断出的三个:

  • 红外线 – 说吧 – rdfs:subClassOf, (中文(简体) ), rdfs:subPropertyOf,域/范围推论
  • 猫头鹰 - OWL 类表达式、属性特征、等同性
  • Skos Reasoner 软件 - SKOS概念等级和语义关系
  • 阴影 - SHACL形状目标推论

RDF 存储器

一个 卢旺达国防军- 与下列三家店兼容:

  • 多格式支持:Turtle,N3,N-Triples,N-Quads,TriG,RDF/XML
  • 命名的图表管理
  • 捆绑的W3C肿瘤(RDF、RDFS、OWL、SKOS、SHACL、XSD)

词汇常数

捆绑词汇的IRI作为常数输出: RDF.type 财务报告和审定财务报表 XSD.string 作为弦, rdf.type 作为RDF/JS术语,以及 _RDF 或者说 _XSD 用于命名空间。 仅需要这些常量的代码,例如浏览器捆绑,从自己的入口导入这些常量,以便库的其余部分不加入捆绑:

import { RDF, XSD } from '@faubulous/mentor-rdf/ontologies';

SKOS 概念计划和收藏

SKOS等级不是树,标准也不要求它们留在概念计划中. 因此,存放处采用明确的规则,以便分级查看既不会失去资源,也不会在错误的地方显示资源.

哪些概念属于计划

一个概念是 关联 有计划,当它携带 skos:inScheme 或者说 skos:topConceptOf 因为.. skos:broader 财务报告和审定财务报表 skos:narrower 故意的 故意的 没有 考虑到,因为它们可能跨越计划界限.

getTopConcepts 返回指定的概念 skos:hasTopConcept编号 :skos:topConceptOf, (中文(简体) ), 加号 计划的所有概念,如果没有更广泛的概念 在同一计划中第二部分涉及这样的词汇:

:TaskScheme a skos:ConceptScheme ; skos:hasTopConcept :task--root .

:task--paint a skos:Concept ;
    skos:inScheme :TaskScheme ;           # belongs to the task scheme …
    skos:broader  :group--finishing .     # … but hangs off a concept of another scheme

仅跟随 skos:broader 将离开 :task--paint 完全可达到 :GroupScheme,以及 :TaskScheme 似乎只包含 :task--root由于广义的概念不是 :TaskScheme, (中文(简体) ), :task--paint 是计划的一个顶级概念 宣布它.

当扩张时, getNarrowerConcepts(graphs, conceptUri, { inScheme }) 返回该图中较窄的概念,或与之相关的概念 没有 计划。 第二项条款保留了概念在词汇中可见,这些词汇只标出部分概念——严格的过滤会隐藏. 它不提供上概念规则,因此一个没有被扫描的概念从不单独成为上概念;无论它来自何处,都显示它.

三个不同的问题

方法答复
getConcepts(graphs)每个 skos:Concept 在图表中,无论方案.
getConceptsOfScheme(graphs, scheme)概念 关联 计划(skos:inScheme编号 :skos:topConceptOf) (中文(简体) ). 一个指数扫描.
getAllConceptsInScheme(graphs, scheme)对方案的分级观点可以 到达 顶端的概念加上下面可能显示的更窄的任何东西.

显示一个数值的UI 应该使用 getAllConceptsInScheme,因此数字与扩大计划所揭示的一致。 使用 getConcepts 在每个计划下报告整个文件总数。 转录索引了等级关系,每次调用一次,而不是查询每个概念,这样它就可以在大沙里语上使用(4,577-概念教科文组织词库中为~37 ms,而6 ms用于 getConceptsOfScheme) (中文(简体) ).

嵌入式收藏

A 类 skos:Collection 可能还有其他的收藏作为会员,所以收藏也形成等级:

  • getCollections 返回每个收藏; getRootCollections 返回只返回不属于其他收藏的收藏,这是等级视图应当在顶层显示的内容.
  • getSubCollections 返回收藏的会员; getCollectionMembers 返回所有成员。 都决心 skos:member 财务报告和审定财务报表 skos:memberList,并保留成员列表顺序 skos:OrderedCollection。 。 。 .
  • getSuperCollections 解决反向方向。 对于 skos:memberList 它走着 rdf:rest 从成员向后链,所以它也找到共享列表的收藏.
  • 所有这些接受 inScheme 将结果限于收集一个概念方案,或 inScheme: null 给与无.

周期和自我参考

SKOS禁止等级循环,但真正的词汇包含它们,所以曲面是防御性的:

  • 一个资源是它自己更广泛的概念或它自己的成员仍然是根或上的概念—— :A skos:member :A 不删除 :A 从 getRootCollections。 。 。 .
  • 每个收藏都由 getCollections 或是一个根集,或可到达下方。 如果一组藏品只能通过会籍周期才能得到,则其中之一会被作为根还原,这样就不会丢失.
  • 旅行者由被参观的一组人看守,并且总是终止,包括自行车 rdf:rest 成员列表中的链条.

src/rdf/tests/cases/valid-concept-cycle.ttl 财务报告和审定财务报表 valid-collection-cycle.ttl 标出这一行为.

已知的限制:

  • 由空白节点所识别的集合不能为其成员查询,所以总是作为根集合报告.
  • 以上"一无所失"的担保适用于收藏. 广义关系构成 关闭 没有顶端概念的周期没有切入点,也没有达到 getTopConcepts 或者说 getAllConceptsInScheme。 。 。 .

安装

在Node.js(QQ22)和现代浏览器中工作:

npm install @faubulous/mentor-rdf

快速启动

import { Store, VocabularyRepository, OwlReasoner } from '@faubulous/mentor-rdf';

const graph = 'http://example.org/test';

// Create a store with OWL reasoning
const store = new Store(new OwlReasoner());

// Load an ontology
await store.loadFromTurtleStream(turtleData, graph);

// Query using repositories
const repository = new VocabularyRepository(store);

// Get all classes defined in the ontology
for (const classUri of repository.getClasses(graph)) {
  console.log(classUri);
}

// Get class hierarchy (includes inferred subclass relationships)
const subClasses = repository.getSubClasses(graph, 'http://example.org/MyClass');

版本与发布记录

@faubulous/mentor-rdf 共发布 120 个版本,首次发布于 2023/09/13;过去 12 个月发布了 40 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.7.0latest2026/11/0311 天前
2.6.12026/10/3014 天前
2.6.02026/10/3015 天前
2.5.02026/10/2718 天前
2.4.02026/10/2619 天前
2.3.02026/10/2619 天前

关于 @faubulous/mentor-rdf 的常见问题

@faubulous/mentor-rdf 是什么?

用于与RDF词汇合作的图书馆,支持RDFS基础和OWL推论.

如何安装 @faubulous/mentor-rdf?

在项目目录运行 npm install @faubulous/mentor-rdf,或使用 pnpm add / yarn add / bun add。

@faubulous/mentor-rdf 支持 TypeScript 吗?

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

@faubulous/mentor-rdf 支持 ESM 还是 CommonJS?

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

@faubulous/mentor-rdf 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@faubulous/mentor-rdf 可以商用吗?

@faubulous/mentor-rdf 使用 GPL 许可。声明的许可为 GPL,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@faubulous/mentor-rdf 的下载量有多少?

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

@faubulous/mentor-rdf 还在维护吗?

最新版本 2.7.0 发布于 2026/11/03(11 天前);至今共发布 120 个版本,其中过去 12 个月发布了 40 个;首次发布于 2023/09/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。