[][src]Module sophia::term

Terms are the building blocks of an RDF graph. There are four types of terms: IRIs, blank nodes (BNode for short), literals and variables.

NB: variable only exist in generalized RDF.

This module defines a generic type Term which can be derived differently depending on your needs.

  • RefTerm<'a> (alias of Term<&'a str>) should be used for very short-lived terms, i.e. terms that live less than 'a, which is the lifetime of their underlying text.

  • BoxTerm (alias of Term<Box<str>>) should be used when the term may outlive the text used to create it.

  • RcTerm (alias of Term<Rc<str>>) should also be used for long-lived terms, especially if they need to be cloned multiple times. The use of Rc prevents the duplication of the underlying text, while ensuring that it is cleaned when appropriate.

  • ArcTerm (alias of Term<Arc<str>>) should be used when, additionally, terms need to be sent to other threads.

  • StaticTerm (alias of Term<&'static str>) is a special case of RefTerm` where the underlying text is a static string. Those terms can live as long as the program runs, and be cloned and sent without any restriction.

Re-exports

pub use self::LiteralKind::*;
pub use self::Term::*;

Modules

factory

A TermFactory can be used to create terms while preventing the proliferation of duplicate string.

index_map

A trait for bidirectional mappings between terms and indexes of a smaller type.

iri_rfc3987

Implementation of IRIs as per [RFC 3987].

matcher

This crate defines generic traits and default implementations for matchers, objects that can be used to match zero, one or several terms.

Structs

BNodeId

Internal representation of a blank node identifier.

IriData

Internal representation of an IRI.

Enums

LiteralKind

There are two kinds of literals: language-tagged, and typed.

Normalization

Noramlization policies are used to ensure that IRIs are represented in a given format.

Term

Generic type for RDF terms.

Traits

TermData

Trait alias for types holding the textual data of terms.

Functions

same_graph_name

Check the equality of two graph names (Option<&Term>) using possibly different TermData.

Type Definitions

ArcTerm

Convenient alias for a specialization of Term<T>.

BoxTerm

Convenient alias for a specialization of Term<T>.

RcTerm

Convenient alias for a specialization of Term<T>.

RefTerm

Convenient alias for a specialization of Term<T>.

StaticTerm

Convenient alias for a specialization of Term<T>.