triplemodel.fields.metadata

Field helpers and predicate metadata for RDF mapping.

class triplemodel.fields.metadata.Predicate(uri)[source]

Bases: object

Marks a model field with its RDF predicate IRI.

Parameters:

uri (str)

uri: str
__init__(uri)
Parameters:

uri (str)

Return type:

None

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

Bases: object

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

Parameters:

uri (str)

uri: str
__init__(uri)
Parameters:

uri (str)

Return type:

None

class triplemodel.fields.metadata.IriId[source]

Bases: object

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

__init__()
Return type:

None

class triplemodel.fields.metadata.Transitive[source]

Bases: object

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

__init__()
Return type:

None

triplemodel.fields.metadata.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.metadata.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.metadata.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.metadata.inverse_from_annotation(annotation)[source]

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

Return type:

str | None

triplemodel.fields.metadata.predicate_from_annotation(annotation)[source]

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

Return type:

str | None

triplemodel.fields.metadata.annotation_has_iri_id(annotation)[source]

True when annotation includes IriId metadata.

Return type:

bool

triplemodel.fields.metadata.lang_from_annotation(annotation)[source]

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

Return type:

str | None

triplemodel.fields.metadata.literal_datatype_for_field(field_info)[source]

XSD datatype IRI or CURIE for literal export (e.g. xsd:gYear).

Return type:

str | None

Parameters:

field_info (FieldInfo)

triplemodel.fields.metadata.lang_for_field(field_info)[source]

Language tag for a field, if configured.

Return type:

str | None

Parameters:

field_info (FieldInfo)

triplemodel.fields.metadata.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.metadata.transitive_for_field(field_info)[source]

True when the field expands objects transitively on import.

Return type:

bool

Parameters:

field_info (FieldInfo)

True when the field is a URI foreign-key link (ref_field), not full embed.

Return type:

bool

Parameters:

field_info (FieldInfo)

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

True when the configured id_field is marked with IriId.

Return type:

bool

Parameters: