View Source RDF.Literal.Generic (RDF.ex v2.0.0)

A generic RDF.Literal.Datatype for literals of an unknown datatype.

Summary

Functions

Returns the canonical lexical form of a RDF.Literal of this datatype.

Since generic literals don't support casting, always returns nil.

Checks if the given literal has this datatype.

Checks if two datatype literals are equal in terms of the values of their value space.

Updates the value of a RDF.Literal without changing everything else.

Types

@type t() :: %RDF.Literal.Generic{datatype: String.t(), value: String.t()}

Functions

Link to this function

canonical_lexical(literal)

View Source

Returns the canonical lexical form of a RDF.Literal of this datatype.

Since generic literals don't support casting, always returns nil.

@spec compare(RDF.Literal.t() | any(), RDF.Literal.t() | any()) ::
  RDF.Literal.Datatype.comparison_result() | :indeterminate | nil

Checks if the given literal has this datatype.

Link to this function

equal_value?(left, right)

View Source

Checks if two datatype literals are equal in terms of the values of their value space.

Non-RDF.Literals are tried to be coerced via RDF.Literal.coerce/1 before comparison.

Returns nil when the given arguments are not comparable as literals of this datatype.

Invalid literals are only considered equal in this relation when both have the exact same datatype and the same attributes (lexical form, language etc.).

Implementations can customize this equivalence relation via the RDF.Literal.Datatype.do_equal_value_different_datatypes?/2 and RDF.Literal.Datatype.do_equal_value_different_datatypes?/2 callbacks.

Link to this function

update(literal, fun, opts \\ [])

View Source

Updates the value of a RDF.Literal without changing everything else.