triplemodel.terms.lang

Language-tagged RDF literals.

triplemodel.terms.lang.normalize_lang_tag(lang)[source]

Normalize an RDF language tag for map keys (case-insensitive per BCP 47).

Return type:

str

Parameters:

lang (str)

class triplemodel.terms.lang.Lang(code, direction=None)[source]

Bases: object

Field metadata: serialize str values with a fixed language tag.

Parameters:
  • code (str)

  • direction (str | None)

code: str
direction: str | None = None
__init__(code, direction=None)
Parameters:
  • code (str)

  • direction (str | None)

Return type:

None

class triplemodel.terms.lang.LangString(value, lang=None, direction=None)[source]

Bases: object

A literal string value with an optional language tag and text direction.

Parameters:
  • value (str)

  • lang (str | None)

  • direction (str | None)

value: str
lang: str | None = None
direction: str | None = None
__init__(value, lang=None, direction=None)
Parameters:
  • value (str)

  • lang (str | None)

  • direction (str | None)

Return type:

None

class triplemodel.terms.lang.MultiLangString(mapping=None, /, **langs)[source]

Bases: object

Multiple language-tagged literals for one predicate, keyed by language code.

Use on a single field when the graph has several @lang objects on the same predicate (for example rdfs:label@en and rdfs:label@fr). Export emits one triple per entry; import collects all language-tagged literals on the field.

Parameters:
by_lang: Mapping[str, LangString]
__init__(mapping=None, /, **langs)[source]
Parameters:
Return type:

None

classmethod from_mapping(mapping)[source]

Build from a language code → value map (None entries are omitted).

Return type:

MultiLangString

Parameters:

mapping (Mapping[str, str | LangString | None])

get(lang, default=None)[source]
Return type:

LangString | None

Parameters:
values()[source]

Language-tagged literals in arbitrary order (for export).

Return type:

list[LangString]