1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//! CSV on the Web (CSVW) parser and RDF converter.
//!
//! Implements a subset of the W3C CSVW Recommendation:
//! <https://www.w3.org/TR/tabular-data-primer/>
//!
//! # Overview
//!
//! A CSVW document pairs a tabular CSV file with a JSON-LD metadata file that
//! annotates the columns with datatypes, predicate IRIs and URI templates.
//! This module provides:
//!
//! - **[`schema`]** — typed deserialization of the JSON metadata.
//! - **[`reader`]** — a pure-Rust RFC 4180 CSV reader (no external `csv` crate).
//! - **[`converter`]** — maps parsed CSV rows to [`RdfStatement`] triples.
//!
//! # Quick example
//!
//! ```rust
//! use oxirs_ttl::csvw::{parse_csv, CsvwMetadata, CsvwConverter, CsvwConverterConfig};
//!
//! let csv = "id,name\n1,Alice\n2,Bob\n";
//! let meta_json = r#"{"tableSchema":{"columns":[{"name":"id"},{"name":"name"}]}}"#;
//!
//! let (headers, records) = parse_csv(csv)?;
//! let meta = CsvwMetadata::from_json(meta_json)?;
//! let converter = CsvwConverter::new(CsvwConverterConfig::default());
//! let stmts = converter.convert(&headers, &records, &meta)?;
//! println!("Generated {} RDF statements", stmts.len());
//! # Ok::<(), oxirs_ttl::csvw::CsvwError>(())
//! ```
pub use ;
pub use ;
pub use ;
// ────────────────────────────────────────────────────────────────────────────
// Module-level error type
// ────────────────────────────────────────────────────────────────────────────
/// All errors that can be produced by the CSVW parser and converter.