Skip to content

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_into with explicit collecting path
  • ADR-008 โ€” closed Syntax and 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 .xml are rejected; callers must use unambiguous media types/extensions or an explicit Syntax (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.