2个版本
0.0.2 | 2023年6月8日 |
---|---|
0.0.1 | 2023年5月28日 |
#1308 in 数据库接口
1.5MB
865 行
pschema-rs
pschema-rs
是一个Rust库,它提供了一个基于Pregel的schema验证算法,用于从Wikidata生成数据子集。它设计得既高效又可扩展,易于使用,适用于处理大量来自Wikidata数据的各种应用。
特性
-
基于Pregel的schema验证:
pschema-rs
使用Pregel模型,一种基于图的计算模型,对Wikidata实体进行schema验证。这允许对大型数据集进行高效且可扩展的处理。 -
Rust实现:
pschema-rs
是用Rust语言实现的,Rust是一种以性能、内存安全性和并发特性而闻名的系统编程语言。这确保了该库运行速度快、可靠且安全。 -
生成Wikidata子集:
pschema-rs
提供了根据schema验证规则从Wikidata生成数据子集的功能。这使得用户可以根据他们的特定要求从Wikidata中过滤和提取相关数据。 -
可定制验证规则:
pschema-rs
允许用户使用简单灵活的语法定义自己的验证规则。这使得根据特定应用的需求定制schema验证过程变得容易。 -
易于使用的API:
pschema-rs
提供了一个用户友好的API,使得将其集成到任何Rust项目中变得简单。该API提供了执行schema验证和生成Wikidata子集的高级接口,具有全面的文档和示例,以帮助用户快速入门。
安装
要在Rust项目中使用pschema-rs
,您可以在Cargo.toml
文件中将它添加为依赖项
[dependencies]
pschema = "0.0.2"
用法
以下是一个示例,展示如何使用pschema-rs
进行schema验证并从Wikidata生成数据子集
use pregel_rs::graph_frame::GraphFrame;
use pschema_rs::backends::duckdb::DuckDB;
use pschema_rs::backends::Backend;
use pschema_rs::pschema::PSchema;
use pschema_rs::shape::shex::Shape;
use pschema_rs::shape::shex::TripleConstraint;
use wikidata_rs::id::Id;
fn main() -> Result<(), String> {
// Define validation rules
let start = Shape::TripleConstraint(TripleConstraint::new(
1,
Id::from("P31").into(),
Id::from("Q515").into(),
));
// Load Wikidata entities
let edges = DuckDB::import("./examples/from_duckdb/3000lines.duckdb")?;
// Perform schema validation
match GraphFrame::from_edges(edges) {
Ok(graph) => match PSchema::new(start).validate(graph) {
Ok(result) => {
println!("Schema validation result:");
println!("{:?}", result);
Ok(())
}
Err(error) => Err(error.to_string()),
},
Err(error) => Err(format!("Cannot create a GraphFrame: {}", error)),
}
}
有关如何定义验证规则、从Wikidata加载实体以及处理数据子集的更多信息,请参阅文档。
相关项目
许可证
版权所有 © 2023 Ángel Iglesias Préstamo ([email protected])
本程序是免费软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它,许可证版本为 3 或(根据您的选择)任何更高版本。
本程序的分发是希望它将是有用的,但没有任何保证;甚至没有关于适销性或特定用途适用性的暗示性保证。有关更多信息,请参阅 GNU 通用公共许可证。
您应该已经收到了 GNU 通用公共许可证的副本。如果没有,请参阅 https://www.gnu.org/licenses/。
通过为这个项目做出贡献,您同意在相同的许可证下发布您的贡献。
依赖关系
~61MB
~1M SLoC