Migrating to TripleModel 0.10.0 (pyoxigraph)
0.10.0 replaces rdflib with pyoxigraph as the sole runtime RDF engine. Mapping APIs (TripleModel, rdf_field, to_graph, from_graph, load_models, …) are unchanged; graph container types and a few rdflib-specific hooks are not.
Dependency
pip install 'triplemodel>=0.10,<2'
Core install no longer pulls in rdflib. (SHACL was removed entirely in 0.11.0 — see MIGRATION_0.11.md.)
Replace rdflib.Graph with triplemodel.Store
Import the graph type from TripleModel (alias over RdfGraph, backed by pyoxigraph.Store):
from triplemodel import Store
graph = Store() # in-memory
person.to_graph(graph)
Person.from_graph(graph, uri)
Method names to_graph / from_graph are kept for compatibility; they operate on Store instances.
On-disk persistence:
from triplemodel.io.stores import open_graph
graph = open_graph("disk", "/path/to/store")
Removed APIs
Removed |
Replacement |
|---|---|
|
pyoxigraph built-in parsers; no plugin registry |
|
Load remote data into a local |
|
|
Formats: |
Turtle, TriG, N-Triples, N-Quads, RDF/XML, N3, JSON-LD |
SparqlModel
Adopt triplemodel>=0.10,<2 when SparqlModel releases a matching pin (SM-7). Do not pass rdflib Graph objects from TripleModel helpers into older SparqlModel versions.
Literal typing
pyoxigraph requires lexical string forms for typed literals; TripleModel handles this on export. Custom LiteralRegistry converters should return pyoxigraph.Literal values.