Ejemplo n.º 1
0
def format_literal(term: Literal) -> str:
    """Convert a rdflib Literal into the format used by SaGe.

    Argument: The rdflib Literal to convert.

    Returns: The RDF Literal in Sage text format.
    """
    lang = term.language
    dtype = term.datatype
    lit = str(term)
    if lang is not None or dtype is not None:
        return term.n3()
    if re.fullmatch(r_integer, lit):
        dtype = XSD.integer
    elif re.fullmatch(r_decimal, lit):
        dtype = XSD.decimal
    elif re.fullmatch(r_double, lit):
        dtype = XSD.double
    elif re.fullmatch(r_boolean, lit):
        dtype = XSD.boolean
    return Literal(lit, lang, dtype).n3()