oxiland 0.3.0

Safe Redland-shaped RDF models, SPARQL query/update/results, and stream-oriented RDF I/O on Oxigraph
Documentation
# Persistence

`Model::new()` creates an in-memory store. `Model::open(path)` opens an
**experimental** Fjall-backed durable copy plus an Oxigraph working set.

## Stability

- On-disk format compatibility across Oxiland / Oxigraph versions is **not**
  promised in 0.x (see ADR-006, still proposed for 0.4).
- Do not treat 0.x Fjall directories as archival storage.
- A supported storage contract is planned for **0.4**.

## Export before upgrade

Serialize to a standards format before moving stores:

```rust
use oxiland::io::{Serializer, Syntax};
# use oxiland::Model;
# let model = Model::new()?;

let nq = Serializer::for_syntax(Syntax::NQuads).serialize_model_to_string(&model)?;
std::fs::write("backup.nq", nq)?;
# Ok::<(), Box<dyn std::error::Error>>(())
```

Use N-Quads or TriG when you need named graphs.

## Progressive load on disk

`Parser::load_into` syncs each successful insert on Fjall models. A mid-parse
failure can leave durable partial data. Prefer `load_collecting` when that is
unacceptable, or load into memory and export.

## See also

- [FAQ]faq.md
- [Roadmap 0.4]../ROADMAP.md