RDF.Sigils (RDF.ex v2.1.0)

View Source

Sigils for the most common types of RDF nodes.

Summary

Functions

Handles the sigil ~B for blank nodes.

Handles the sigil ~b for blank nodes.

Handles the sigil ~I for IRIs.

Handles the sigil ~i for IRIs.

Handles the sigil ~L for plain Literals.

Handles the sigil ~l for blank nodes.

Functions

sigil_B(arg, list)

(macro)

Handles the sigil ~B for blank nodes.

It returns an RDF.BlankNode from the given string without interpolations and without escape characters, except for the escaping of the closing sigil character itself.

Examples

iex> import RDF.Sigils
iex> ~B<foo>
RDF.bnode("foo")

sigil_b(arg, list)

(macro)

Handles the sigil ~b for blank nodes.

It returns an RDF.BlankNode from the given string as if it was a double-quoted string, unescaping characters and replacing interpolations.

Examples

iex> import RDF.Sigils
iex> ~b<foo#{String.downcase("Bar")}>
RDF.bnode("foobar")

sigil_I(arg, list)

(macro)

Handles the sigil ~I for IRIs.

It returns an RDF.IRI from the given string without interpolations and without escape characters, except for the escaping of the closing sigil character itself.

Examples

iex> import RDF.Sigils
iex> ~I<http://example.com>
RDF.iri("http://example.com")

sigil_i(arg, list)

(macro)

Handles the sigil ~i for IRIs.

It returns an RDF.IRI from the given string as if it was a double-quoted string, replacing interpolations.

Note: Since IRIs don't allow escaped characters that need escaping in Elixir strings (such as control characters), the only practical difference from ~I is the support for interpolation.

Examples

iex> import RDF.Sigils
iex> ~i<http://example.com/#{String.downcase("Foo")}>
RDF.iri("http://example.com/foo")

sigil_L(value, language)

(macro)

Handles the sigil ~L for plain Literals.

It returns an RDF.Literal from the given string without interpolations and without escape characters, except for the escaping of the closing sigil character itself.

The sigil modifier can be used to specify a language tag.

Note: Languages with subtags are not supported.

Examples

iex> import RDF.Sigils
iex> ~L"foo"
RDF.literal("foo")
iex> ~L"foo"en
RDF.literal("foo", language: "en")

sigil_l(value, language)

(macro)

Handles the sigil ~l for blank nodes.

It returns an RDF.Literal from the given string as if it was a double-quoted string, unescaping characters and replacing interpolations.

Examples

iex> import RDF.Sigils
iex> ~l"foo #{String.downcase("Bar")}"
RDF.literal("foo bar")
iex> ~l"foo #{String.downcase("Bar")}"en
RDF.literal("foo bar", language: "en")