triplemodel.ontology_registry

Ontology hints: subclass closure and inverse predicate pairs from TTL or static registration.

class triplemodel.ontology_registry.OntologyRegistry(_graph=None, _parent_to_children=<factory>, _registered_inverse_forward=<factory>, _registered_inverse_reverse=<factory>, _graph_inverse_forward=<factory>, _graph_inverse_reverse=<factory>)[source]

Bases: object

Subclass and owl:inverseOf hints from an ontology graph and/or static registration.

Use subtypes_of() for descendant type IRIs (subclasses). For ancestor types (superclasses of a given class), use subclass_uris() on a graph that contains rdfs:subClassOf axioms.

Parameters:
classmethod from_graph(graph)[source]

Build a registry backed by graph (typically parsed OWL/RDFS Turtle).

Return type:

OntologyRegistry

Parameters:

graph (RdfGraph)

classmethod from_ttl(path, *, format=None, base_iri=None)[source]

Parse a Turtle (or other) ontology file into a new registry.

Return type:

OntologyRegistry

Parameters:
load_graph(graph)[source]

Use graph for subtypes_of() and inverse_of() queries.

Return type:

None

Parameters:

graph (RdfGraph)

register_subclasses(base_type_uri, subtype_uris)[source]

Register direct rdfs:subClassOf links without an ontology file.

Return type:

None

Parameters:
register_inverse(forward_predicate, inverse_predicate)[source]

Register an owl:inverseOf pair (both directions are queryable).

Return type:

None

Parameters:
  • forward_predicate (str)

  • inverse_predicate (str)

subtypes_of(type_uri)[source]

Return type_uri and all registered or inferred subclass IRIs.

Return type:

frozenset[str]

Parameters:

type_uri (str)

inverse_of(predicate_uri)[source]

Return the inverse property IRI for predicate_uri, if known.

Return type:

str | None

Parameters:

predicate_uri (str)

__init__(_graph=None, _parent_to_children=<factory>, _registered_inverse_forward=<factory>, _registered_inverse_reverse=<factory>, _graph_inverse_forward=<factory>, _graph_inverse_reverse=<factory>)
Parameters:
Return type:

None

triplemodel.ontology_registry.apply_hints_to_model(model_cls, registry, *, mutate=False, overwrite=False)[source]

Suggest or apply inverse= metadata from OntologyRegistry.inverse_of().

Returns {field_name: inverse_predicate_uri} for each mapped field that received a hint. When mutate is True, updates json_schema_extra on the class and calls model_rebuild() so inverse_for_field() sees the inverse IRI. Skips fields that already declare an inverse unless overwrite is True.

Return type:

dict[str, str]

Parameters: