1个不稳定版本
0.3.1 | 2022年8月23日 |
---|
#767 in 算法
53 每月下载量
用于 5 个crate(4 直接使用)
380KB
6K SLoC
RDFtk:核心
此crate提供了RDF抽象语法的实现,以及一个提供类似构建器体验的
Resource
类型。
来自 RDF 1.1 概念和抽象语法;
抽象语法的核心结构是一组三元组,每个三元组包含一个主语、谓语和宾语。这样的一组三元组称为RDF图。RDF图可以表示为一个节点和有向弧图,其中每个三元组表示为节点-弧-节点链接。
RDF图中可能有三种类型的节点:IRI、字面量和空白节点。
在这个库中,三元组、或称语句,以及主语、谓语和宾语类型都包含在statement
模块中。字面量作为宾语在literal
模块中得到支持。描述图的特征由graph
模块提供。
还提供了其他功能,例如支持数据集(模块model.data_set
)以及支持核心RDF抽象模型的扩展,如RDF-star。
示例
use field33_rdftk_core_temporary_fork::{Literal, Statement, StatementList, SubjectNode};
use field33_rdftk_iri_temporary_fork::IRI;
use std::rc::Rc;
use std::str::FromStr;
pub fn make_statements() -> StatementList {
let mut statements: StatementList = Default::default();
statements.push(Statement::new(
SubjectNode::named(IRI::from_str("http://en.wikipedia.org/wiki/Tony_Benn").unwrap()),
IRI::from_str("http://purl.org/dc/elements/1.1/title").unwrap(),
Literal::new("Tony Benn").into(),
).into());
// ...
statements
}
变更
版本 0.3.1
- 添加了PrefixMappingFactory trait和GraphFactory上的prefix_mapping_factory方法。
版本 0.3.0
- 模块'model'中描述的抽象RDF API现在完全基于trait。
- 模块'simple'中的实现提供了具体的内存类型。
- 添加了新的LanguageTag类型,以更完整地表示这些值。
- 添加了特征的概念,表示数据集、图和语句实现所支持的能力。
版本 0.2.4
- 创建了新的Featured trait,由多个类型实现,允许客户端查询各种可选功能。这也包括了has_index/has_all_indices功能,因为所有索引查询现在都是特征查询。
版本 0.2.3
- 从rdftk_io复制了一些错误。
- 将Io变体重命名为ReadWrite。
版本 0.2.2
- 重构API以使用Ref类型,并确保在模块中使用trait对象和类型时保持一致性。
- 添加了数据集的工厂类型。
- 在core::graph::mapping模块中将PrefixMappings改为具体类型。
- 在ErrorKind中添加了InvalidMatch和Io变体。
- 在Statement中添加了mutators。
版本 0.2.1
- 更改了API,移除了Graph和DataSet的不可变trait,将方法移动到其基础trait中。
- 添加了图的工厂类型。
- 为图添加了Skolemization函数。
版本 0.2.0
- API变更,所有
Statement
和语句组件现在作为Rc
引用传递。- 添加了额外的_ref构造函数,以允许更干净的客户端代码。
- API变更,
Graph
和DataSet
现在使用类型参数来描述由query方法返回的迭代器。 - API变更,
QName
构造函数现在在无效值上返回错误而不是panic。 - 添加了更多字面量值的构造函数。
- 在字面量中添加了对
chrono::Duration
的支持,以及std版本,因为chrono支持正确的输出格式。 - 在
SubjectNode
和ObjectNode
上添加了eq_
方法,用于简单测试内部值。 - 在各个部分添加了文档和示例。
版本 0.1.15
- 修复了Clippy建议。
- 从语句中移除了Context。
- 向Graph添加了value_factory方法。
- 将所有单元测试放在tests文件夹中。
版本 0.1.14
- 移除了独立的命名图。
- 添加了DataSet作为将名称与图关联的方法。
- 将CachingGraph重命名为ValueFactory,并使其独立。
版本 0.1.13
- 错误:修复了Literal构造函数,以生成安全的字符串字面量形式。
版本 0.1.12
- 修复:修复了cargo fmt错误。
版本 0.1.11
- 添加了公共类型
StatementRef
和StatementList
,而不是在所有API中都明显使用Rc
。
版本 0.1.10
- 已弃用 通过向
Statement
添加上下文(类型ContextNode
)来支持 数据集 和 Quads。
版本 0.1.9
- 在
Statement
中支持 RDF*。 - 向
Statement
添加了额外的构造函数。 - 将资源方法
rdf_type
重命名为instance_of
以与 RDF 架构的使用兼容。 - 向
QName
添加了关联函数is_valid
。
版本 0.1.8
- 通过显式导出覆盖
pub use *
。
版本 0.1.7
- 将
Graph
分割为Graph
和MutableGraph
。 - 将
NamedGraph
分割为NamedGraph
和MutableNamedGraph
。 - 将
get_default_namespace
添加到PrefixMappings
特性中作为辅助函数。 - 修改了
PrefixMappings::compress
和PrefixMappings::expand
以接受引用。
版本 0.1.6
- 显式版本管理。
版本 0.1.5
- 更新了 rdftk_memgraph 构建。
版本 0.1.4
- 将所有本地依赖项仅设为主要/次要值。
版本 0.1.3
- 将所有
IRI
移动到接口上的IRIRef
。 - 将
Graph
和相关类型移动到核心,并弃用了rdftk_graph
。
版本 0.1.2
- 清理更改。
版本 0.1.1
- 添加了
From
以允许从IRI
直接构建SubjectNode
。 - 修复了
QName
中的错误,该错误丢失了非前缀值的 ":"。
版本 0.1.0
- 首次发布。
待办事项
待定
依赖项
~7–10MB
~193K SLoC