sord(3) | Sord | sord(3) |
sord - Sord
A lightweight RDF model library.
Sord stores RDF (subject object predicate context) quads, where the context may be omitted (to represent triples in the default graph).
typedef struct SordWorldImpl SordWorld
typedef struct SordModelImpl SordModel
typedef struct SordInserterImpl SordInserter
typedef struct SordIterImpl SordIter
typedef struct SordNodeImpl SordNode
typedef const SordNode * SordQuad[4]
enum SordQuadIndex { SORD_SUBJECT = 0,
SORD_PREDICATE = 1, SORD_OBJECT = 2, SORD_GRAPH = 3 }
enum SordNodeType { SORD_URI = 1, SORD_BLANK = 2,
SORD_LITERAL = 3 }
enum SordIndexOption { SORD_SPO = 1, SORD_SOP = 1
<< 1, SORD_OPS = 1 << 2, SORD_OSP = 1 << 3,
SORD_PSO = 1 << 4, SORD_POS = 1 << 5 }
SordWorld * sord_world_new (void)
void sord_world_free (SordWorld *world)
void sord_world_set_error_sink (SordWorld *world, SerdErrorSink
error_sink, void *handle)
SordNode * sord_new_uri (SordWorld *world,
const uint8_t *uri)
SordNode * sord_new_relative_uri (SordWorld *world, const
uint8_t *str, const uint8_t *base_uri)
SordNode * sord_new_blank (SordWorld *world, const
uint8_t *str)
SordNode * sord_new_literal (SordWorld *world,
SordNode *datatype, const uint8_t *str, const char *lang)
SordNode * sord_node_copy (const SordNode *node)
void sord_node_free (SordWorld *world, SordNode *node)
SordNodeType sord_node_get_type (const SordNode *node)
const uint8_t * sord_node_get_string (const SordNode *node)
const uint8_t * sord_node_get_string_counted (const SordNode
*node, size_t *bytes)
const uint8_t * sord_node_get_string_measured (const SordNode
*node, size_t *bytes, size_t *chars)
const char * sord_node_get_language (const SordNode *node)
SordNode * sord_node_get_datatype (const SordNode *node)
SerdNodeFlags sord_node_get_flags (const SordNode *node)
bool sord_node_is_inline_object (const SordNode *node)
bool sord_node_equals (const SordNode *a, const SordNode
*b)
const SerdNode * sord_node_to_serd_node (const SordNode *node)
SordNode * sord_node_from_serd_node (SordWorld *world,
SerdEnv *env, const SerdNode *node, const SerdNode *datatype, const SerdNode
*lang)
SordModel * sord_new (SordWorld *world,
unsigned indices, bool graphs)
void sord_free (SordModel *model)
SordWorld * sord_get_world (SordModel *model)
size_t sord_num_nodes (const SordWorld *world)
size_t sord_num_quads (const SordModel *model)
SordIter * sord_begin (const SordModel *model)
SordIter * sord_find (SordModel *model, const
SordQuad pat)
SordIter * sord_search (SordModel *model, const
SordNode *s, const SordNode *p, const SordNode *o,
const SordNode *g)
SordNode * sord_get (SordModel *model, const
SordNode *s, const SordNode *p, const SordNode *o,
const SordNode *g)
bool sord_ask (SordModel *model, const SordNode *s, const
SordNode *p, const SordNode *o, const SordNode *g)
uint64_t sord_count (SordModel *model, const SordNode *s,
const SordNode *p, const SordNode *o, const SordNode
*g)
bool sord_contains (SordModel *model, const SordQuad pat)
bool sord_add (SordModel *model, const SordQuad quad)
void sord_remove (SordModel *model, const SordQuad quad)
SerdStatus sord_erase (SordModel *model, SordIter *iter)
SordInserter * sord_inserter_new (SordModel
*model, SerdEnv *env)
void sord_inserter_free (SordInserter *inserter)
SerdStatus sord_inserter_set_base_uri (SordInserter *inserter,
const SerdNode *uri)
SerdStatus sord_inserter_set_prefix (SordInserter *inserter,
const SerdNode *name, const SerdNode *uri)
SerdStatus sord_inserter_write_statement (SordInserter
*inserter, SerdStatementFlags flags, const SerdNode *graph, const SerdNode
*subject, const SerdNode *predicate, const SerdNode *object, const SerdNode
*object_datatype, const SerdNode *object_lang)
void sord_iter_get (const SordIter *iter,
SordQuad quad)
const SordNode * sord_iter_get_node (const SordIter
*iter, SordQuadIndex index)
const SordModel * sord_iter_get_model (SordIter *iter)
bool sord_iter_next (SordIter *iter)
bool sord_iter_end (const SordIter *iter)
void sord_iter_free (SordIter *iter)
bool sord_quad_match (const SordQuad x, const
SordQuad y)
SerdReader * sord_new_reader (SordModel *model,
SerdEnv *env, SerdSyntax syntax, SordNode *graph)
bool sord_write (SordModel *model, SerdWriter *writer,
SordNode *graph)
bool sord_write_iter (SordIter *iter, SerdWriter *writer)
Sord World. The World represents all library state, including interned strings.
Sord Model. A model is an indexed set of Quads (i.e. it can contain several RDF graphs). It may be searched using various patterns depending on which indices are enabled.
Model Inserter. An inserter is used for writing statements to a model using the Serd sink interface. This makes it simple to write to a model directly using a SerdReader, or any other code that writes statements to a SerdStatementSink.
Model Iterator.
RDF Node. A Node is a component of a Quad. Nodes may be URIs, blank nodes, or (in the case of quad objects only) string literals. Literal nodes may have an associate language or datatype (but not both).
Quad of nodes (a statement), or a quad pattern. Nodes are ordered (S P O G). The ID of the default graph is 0.
Index into a SordQuad.
Enumerator
Type of a node.
Enumerator
Indexing option.
Enumerator
Create a new Sord World. It is safe to use multiple worlds in one process, though no data (e.g. nodes) can be shared between worlds, and this should be avoided if possible for performance reasons.
Free world.
Set a function to be called when errors occur. The error_sink will be called with handle as its first argument. If no error function is set, errors are printed to stderr.
Get a URI node from a string. Note this function measures str, which is a common bottleneck. Use sord_node_from_serd_node() instead if str is already measured.
Get a URI node from a relative URI string.
Get a blank node from a string. Note this function measures str, which is a common bottleneck. Use sord_node_from_serd_node() instead if str is already measured.
Get a literal node from a string. Note this function measures str, which is a common bottleneck. Use sord_node_from_serd_node() instead if str is already measured.
Copy a node (obtain a reference). Node that since nodes are interned and reference counted, this does not actually create a deep copy of node.
Free a node (drop a reference).
Return the type of a node (SORD_URI, SORD_BLANK, or SORD_LITERAL).
Return the string value of a node.
Return the string value of a node, and set bytes to its length in bytes.
Return the string value of a node, and set bytes to its length in bytes, and count to its length in characters.
Return the language of a literal node (or NULL).
Return the datatype URI of a literal node (or NULL).
Return the flags (string attributes) of a node.
Return true iff node can be serialised as an inline object. More specifically, this returns true iff the node is the object field of exactly one statement, and therefore can be inlined since it needn't be referred to by name.
Return true iff a is equal to b. Note this is much faster than comparing the node's strings.
Return a SordNode as a SerdNode. The returned node is shared and must not be freed or modified.
Create a new SordNode from a SerdNode. The returned node must be freed using sord_node_free().
Create a new model.
Parameters:
Close and free model.
Get the world associated with model.
Return the number of nodes stored in world. Nodes are included in this count iff they are a part of a quad in world.
Return the number of quads stored in model.
Return an iterator to the start of model.
Search for statements by a quad pattern.
Returns:
Search for statements by nodes.
Returns:
Search for a single node that matches a pattern. Exactly one of s, p, o must be NULL. This function is mainly useful for predicates that only have one value. The returned node must be freed using sord_node_free().
Returns:
Return true iff a statement exists.
Return the number of matching statements.
Check if model contains a triple pattern.
Returns:
Add a quad to a model. Calling this function invalidates all iterators on model.
Returns:
Remove a quad from a model. Calling this function invalidates all iterators on model. To remove quads while iterating, use sord_erase() instead.
Remove a quad from a model via an iterator. Calling this function invalidates all iterators on model except iter.
Parameters:
Create an inserter for writing statements to a model.
Free an inserter.
Set the current base URI for writing to the model. Note this function can be safely casted to SerdBaseSink.
Set a namespace prefix for writing to the model. Note this function can be safely casted to SerdPrefixSink.
Write a statement to the model. Note this function can be safely casted to SerdStatementSink.
Set quad to the quad pointed to by iter.
Return a field of the quad pointed to by iter. Returns NULL if iter is NULL or is at the end.
Return the store pointed to by iter.
Increment iter to point to the next statement.
Return true iff iter is at the end of its range.
Free iter.
Match two quads (using ID comparison only). This function is a straightforward and fast equivalence match with wildcard support (ID 0 is a wildcard). It does not actually read node data.
Returns:
Return a reader that will read into model.
Write a model to a writer.
Write a range to a writer. This increments iter to its end, then frees it.
Generated automatically by Doxygen for Sord from the source code.
Thu Sep 22 2016 | Version 0.16.0 |