Static Literal objects with language tags work correctly in template instances as far as I can see
static_label = Literal('Static Label', language='en')
Triple(subject, predicate, static_label) # -> Produces "Static Label"@en
However, there's no way to produce language-tagged literals for dynamic values from DataFrame columns.
What works:
Static literal in template - produces "Static"@en
Triple(subject, predicate, Literal('Static', language='en'))
What doesn't work:
- Literal objects in DataFrame:
df = pl.DataFrame({'label': [Literal('Dynamic', language='en')]})
Result: MaplibException: Datatype error 'Unknown datatype Binary'
- RDFType.Literal with language parameter:
Parameter(variable=label_var, rdf_type=RDFType.Literal(language='en'))
Result: TypeError: RDFType.Literal() got an unexpected keyword argument 'language'
I might be doing something really stupid? 😭
Environment:
- maplib version: 0.18.13
- Python: 3.13