Oxiland 0.2 compatibility report¶
Status: complete
Milestone: 0.2 โ Redland-shaped RDF input and output
Oxiland version: 0.2.0
Oxigraph version: 0.5.9
Inventory:
compatibility/inventory/redland-1.0.17-oxiland-0.2.json
Claim¶
Oxiland 0.2 provides safe, stream-oriented Parser and Serializer facades
with closed Syntax discovery for Turtle, N-Triples, N-Quads, TriG, and
RDF/XML. Compatibility is scoped to the curated I/O inventory slice and the
evidence linked below. It does not claim full Redland API accounting, C
source/ABI compatibility, or byte-identical serialization.
Decisions¶
- ADR-007 โ progressive
load_intowith explicit collecting path - ADR-008 โ closed
Syntaxand curated alias table - Graph targets, parse/serialize/Io error categories, and serializer prefix
builder lifecycle documented in
docs/design/0.2-io-api.md
Evidence¶
| Gate | Location |
|---|---|
| Integration tests | tests/io.rs |
| Curated syntax conformance | tests/conformance.rs, compatibility/conformance/ |
| Format matrix | compatibility/baseline/format-matrix.json |
| Native oracle smoke | compatibility/harness/oracle_smoke.py |
| Differential smoke | compatibility/harness/differential_smoke.py |
| Public API snapshot | api/oxiland-public-api.txt + scripts/check-public-api-owned.py |
| Inventory validation | scripts/check-inventory.py |
Acceptance matrix summary¶
Advertised syntaxes pass empty/one-triple round-trips, malformed-input categorization, language/datatype preservation, Unicode literals, base/relative IRI resolution (Turtle), named-graph preservation (N-Quads/TriG), early-stop streaming, and large-input iteration without a facade-level full collect. N3 and JSON-LD are unsupported/deferred with explicit errors.
Known deviations¶
- Redland content sniffing (
guess) is unsupported. - Ambiguous aliases such as
text/plain,application/xml,.txt, and.xmlare rejected; callers must use unambiguous media types/extensions or an explicitSyntax(ADR-008). - N3 and JSON-LD are not advertised.
- RDF/XML parse diagnostics may omit line/column when Oxigraph does not provide a location.
- Progressive model load is intentionally non-atomic until 0.4 transactions; Fjall persists each successful progressive insert.
- Serialization is standards-valid, not byte-identical to Raptor.
Non-claims¶
SPARQL result formats, SPARQL Update, transactional import, network fetch, custom factory registration, and C ABI remain out of scope for 0.2.