#解析器 #rdf #turtle

bin+lib chelone

一个 RDF 1.1 Turtle 解析器

3个版本

使用旧的Rust 2015

0.1.3 2019年3月4日
0.1.2 2018年2月22日
0.1.1 2018年2月19日

#2150解析器实现

MIT/Apache

40KB
1K SLoC

Rust 889 SLoC // 0.0% comments Pest 118 SLoC

Chelone:一个RDF Turtle解析器

Chelone是一个 rdf turtle 解析器。

chelone = "0.1"
extern crate chelone;

use chelone::Graph;

const TURTLE: &str = r##"
@base <http://example.org/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rel: <http://www.perceive.net/schemas/relationship/> .

<#Mozilla>
    a foaf:Organization ;
    foaf:name "Mozilla" .

<#Rust>
    rel:childOf <#Mozilla> ;
    a foaf:Project ;
    foaf:name "Rust" .
"##;

fn main() {
    let graph = Graph::new(TURTLE).unwrap_or_else(|e| panic!("{}", e));
    let triples = graph.parse();

    println!("{}", triples);
}

lib.rs:

Chelone:一个Turtle-RDF解析库。

extern crate chelone;

use chelone::Graph;

const TURTLE: &str = r##"
@base <http://example.org/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rel: <http://www.perceive.net/schemas/relationship/> .

<#Mozilla>
    a foaf:Organization ;
    foaf:name "Mozilla" .

<#Rust>
    rel:childOf <#Mozilla> ;
    a foaf:Project ;
    foaf:name "Rust" .
"##;

fn main() {
    let graph = Graph::new(TURTLE).unwrap_or_else(|e| panic!("{}", e));
    let triples = graph.parse();

    println!("{}", triples);
}

依赖关系

~6MB
~148K SLoC