triplemodel.fields

RDF field metadata and predicate resolution.

class triplemodel.fields.BackPopulates(field, model)[source]

Bases: object

Link a field to the inverse-side field on another model (SparqlModel back_populates).

Parameters:
__init__(field, model)
Parameters:
Return type:

None

field: str
model: type[BaseModel] | str
class triplemodel.fields.FieldPredicateResolver[source]

Bases: object

Default PredicateResolver implementation.

owned_predicates(model_cls, config=None)[source]
Return type:

frozenset[str]

Parameters:
resolve_field_predicate(field_info, prefixes)[source]
Return type:

str | None

Parameters:
class triplemodel.fields.IriId[source]

Bases: object

Mark id_field as a full IRI string (not appended to namespace).

__init__()
Return type:

None

class triplemodel.fields.InverseOf(uri)[source]

Bases: object

Inverse predicate IRI used on import when the forward predicate is absent.

Parameters:

uri (str)

__init__(uri)
Parameters:

uri (str)

Return type:

None

uri: str
class triplemodel.fields.Predicate(uri)[source]

Bases: object

Marks a model field with its RDF predicate IRI.

Parameters:

uri (str)

__init__(uri)
Parameters:

uri (str)

Return type:

None

uri: str
class triplemodel.fields.Transitive[source]

Bases: object

On import, follow predicate transitively for multi-valued fields.

__init__()
Return type:

None

triplemodel.fields.back_populates_for_field(field_info, *, owner=None)[source]

Return paired-field metadata for field_info, if configured.

Return type:

BackPopulates | None

Parameters:
triplemodel.fields.inverse_pair(model, field)[source]

Shorthand for BackPopulates.

Pass a class or a string name (inverse_pair("Organization", "employees")) when the peer model is declared later in the same module.

Return type:

BackPopulates

Parameters:
triplemodel.fields.inverse_for_field(field_info)[source]

Resolve inverse predicate URI for a field, if configured.

Return type:

str | None

Parameters:

field_info (FieldInfo)

triplemodel.fields.models_via_back_populates(instance, field_name, graph)[source]

Load peer TripleModel instances for inverse-linked subjects.

Return type:

list[BaseModel]

Parameters:
triplemodel.fields.subjects_via_back_populates(instance, field_name, graph)[source]

Return subject IRIs linked via the inverse predicate of field_name (read-only).

Return type:

list[str]

Parameters:
triplemodel.fields.transitive_for_field(field_info)[source]

True when the field expands objects transitively on import.

Return type:

bool

Parameters:

field_info (FieldInfo)

triplemodel.fields.annotation_has_iri_id(annotation)[source]

True when annotation includes IriId metadata.

Return type:

bool

triplemodel.fields.id_field_is_iri_id(model_cls, id_field)[source]

True when the configured id_field is marked with IriId.

Return type:

bool

Parameters:
triplemodel.fields.owned_predicates(model_cls, config=None, *, resolver=None)[source]

Predicates owned by model_cls (mapped fields and rdf:type).

Return type:

frozenset[str]

Parameters:
triplemodel.fields.predicate_for_field(field_info)[source]

Resolve the RDF predicate URI for a Pydantic field, if any.

Return type:

str | None

Parameters:

field_info (FieldInfo)

triplemodel.fields.predicate_from_annotation(annotation)[source]

Read Predicate from Annotated[..., Predicate(...)].

Return type:

str | None

triplemodel.fields.rdf_field(predicate, *, inverse=None, back_populates=None, literal_datatype=None, transitive=False, default=Ellipsis, **field_kwargs)[source]

Create a Pydantic field bound to an RDF predicate.

Return type:

TypeVar(_T)

Parameters:
  • predicate (str)

  • inverse (str | None)

  • back_populates (Any | None)

  • literal_datatype (str | None)

  • transitive (bool)

  • default (_T | EllipsisType)

  • field_kwargs (Unpack[RdfFieldKwargs])

triplemodel.fields.ref_field(predicate, *, model, inverse=None, default=Ellipsis, **field_kwargs)[source]

Foreign-key field: import hydrates model from the object URI in the graph.

Return type:

TypeVar(_T)

Parameters:
  • predicate (str)

  • model (type[BaseModel])

  • inverse (str | None)

  • default (_T | EllipsisType)

  • field_kwargs (Unpack[RdfFieldKwargs])

triplemodel.fields.resolve_field_predicate(field_info, prefixes, *, resolver=None)[source]

Resolved full predicate IRI for a field.

Return type:

str | None

Parameters: