指导RDF API
一个TypeScript库,用于在Node.js和浏览器中与RDF词汇工作. 它授权 导师 VS代码扩展,通过寄存器模式和轻量级结构推理提供结构化访问本体学.
特征
仓库模式
通过提供类型安全、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');