Soprano
2.7.2
|
A Model is the central class in Soprano. It is a queryable collection of RDF quadruples, i.e statements. More...
#include <Soprano/Model>
Signals | |
void | statementsAdded () |
void | statementsRemoved () |
void | statementAdded (const Soprano::Statement &statement) |
void | statementRemoved (const Soprano::Statement &statement) |
Public Member Functions | |
virtual | ~Model () |
virtual Error::ErrorCode | addStatement (const Statement &statement)=0 |
Error::ErrorCode | addStatement (const Node &subject, const Node &predicate, const Node &object, const Node &context=Node()) |
Error::ErrorCode | addStatements (const QList< Statement > &statements) |
virtual Error::ErrorCode | removeStatement (const Statement &statement)=0 |
Error::ErrorCode | removeStatement (const Node &subject, const Node &predicate, const Node &object, const Node &context=Node()) |
virtual Error::ErrorCode | removeAllStatements (const Statement &statement)=0 |
Error::ErrorCode | removeAllStatements (const Node &subject, const Node &predicate, const Node &object, const Node &context=Node()) |
Error::ErrorCode | removeStatements (const QList< Statement > &statements) |
Error::ErrorCode | removeContext (const Node &) |
Error::ErrorCode | removeAllStatements () |
virtual StatementIterator | listStatements (const Statement &partial) const =0 |
StatementIterator | listStatements (const Node &subject, const Node &predicate, const Node &object, const Node &context=Node()) const |
StatementIterator | listStatements () const |
StatementIterator | listStatementsInContext (const Node &context) const |
virtual NodeIterator | listContexts () const =0 |
virtual QueryResultIterator | executeQuery (const QString &query, Query::QueryLanguage language, const QString &userQueryLanguage=QString()) const =0 |
virtual bool | containsAnyStatement (const Statement &statement) const =0 |
bool | containsAnyStatement (const Node &subject, const Node &predicate, const Node &object, const Node &context=Node()) const |
virtual bool | containsStatement (const Statement &statement) const =0 |
bool | containsStatement (const Node &subject, const Node &predicate, const Node &object, const Node &context=Node()) const |
bool | containsContext (const Node &context) const |
virtual bool | isEmpty () const =0 |
virtual int | statementCount () const =0 |
virtual Error::ErrorCode | write (QTextStream &os) const |
virtual Node | createBlankNode ()=0 |
Protected Member Functions | |
Model () |
A Model is the central class in Soprano. It is a queryable collection of RDF quadruples, i.e statements.
Model itself is just an interface for numerous implementations. (If you are looking for a simple container for statements, see Graph.) There are basically two types of Models in Soprano:
The simplest way to create a memory Model is to use the default Backend:
Model* memModel = Soprano::createModel();
Error handling:
Model is based on Soprano's own error handling system which tries to emulate exceptions to a certain extend. Most methods in Model have a means of reporting if an operation was successful or not. For additional error information Model inherits ErrorCache which provides the method lastError().
Thus, advanced error handling would look as follows:
Soprano::Model* model = Soprano::createModel(); Soprano::Statement invalidStatement; if( model->addStatement( invalidStatement ) != Error::ErrorNone ) { showErrorMessage( model->lastError().message() ); }
For this to work properly Model implementations have to reset the error in each method by either calling clearError() or setError().
Model is thread-safe when used with a thread-safe backend (all "official" Soprano backends are thread-safe). However, it is recommended to create Model instances in the main thread.
virtual Soprano::Model::~Model | ( | ) | [virtual] |
Soprano::Model::Model | ( | ) | [protected] |
virtual Error::ErrorCode Soprano::Model::addStatement | ( | const Statement & | statement | ) | [pure virtual] |
Add the Statement to the Model.
statement | The Statement to add. |
Implemented in Soprano::Client::SparqlModel, Soprano::Util::ReadOnlyModel, Soprano::Index::IndexFilterModel, Soprano::Client::DBusModel, Soprano::Util::MutexModel, Soprano::Inference::InferenceModel, Soprano::FilterModel, and Soprano::Util::DummyModel.
Error::ErrorCode Soprano::Model::addStatement | ( | const Node & | subject, |
const Node & | predicate, | ||
const Node & | object, | ||
const Node & | context = Node() |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Reimplemented in Soprano::FilterModel, and Soprano::Util::DummyModel.
Error::ErrorCode Soprano::Model::addStatements | ( | const QList< Statement > & | statements | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Reimplemented in Soprano::Util::DummyModel.
virtual Error::ErrorCode Soprano::Model::removeStatement | ( | const Statement & | statement | ) | [pure virtual] |
Remove one statement. For removing statements with wildward matching see removeAllStatements().
statement | The statement that should be removed. This has to be a valid statement. |
Implemented in Soprano::Client::SparqlModel, Soprano::Index::IndexFilterModel, Soprano::Util::ReadOnlyModel, Soprano::Client::DBusModel, Soprano::Util::MutexModel, Soprano::FilterModel, Soprano::Inference::InferenceModel, and Soprano::Util::DummyModel.
Error::ErrorCode Soprano::Model::removeStatement | ( | const Node & | subject, |
const Node & | predicate, | ||
const Node & | object, | ||
const Node & | context = Node() |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Reimplemented in Soprano::FilterModel, and Soprano::Util::DummyModel.
virtual Error::ErrorCode Soprano::Model::removeAllStatements | ( | const Statement & | statement | ) | [pure virtual] |
Remove all statements that match the partial statement. For removing one specific statement see removeStatement().
statement | A possible partially defined statement that serves as a filter for all statements that should be removed. |
Implemented in Soprano::NRLModel, Soprano::Client::SparqlModel, Soprano::Index::IndexFilterModel, Soprano::Util::ReadOnlyModel, Soprano::Client::DBusModel, Soprano::FilterModel, Soprano::Inference::InferenceModel, Soprano::Util::MutexModel, Soprano::StorageModel, and Soprano::Util::DummyModel.
Error::ErrorCode Soprano::Model::removeAllStatements | ( | const Node & | subject, |
const Node & | predicate, | ||
const Node & | object, | ||
const Node & | context = Node() |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
subject | The subject node to match. Can be empty as a wildcard. |
predicate | The predicate node to match. Can be empty as a wildcard. |
object | The object node to match. Can be empty as a wildcard. |
context | The context node to match. Can be empty as a wildcard. |
Reimplemented in Soprano::FilterModel.
Error::ErrorCode Soprano::Model::removeStatements | ( | const QList< Statement > & | statements | ) |
Convenience method which removes all statements in statements.
Reimplemented in Soprano::Util::DummyModel.
Error::ErrorCode Soprano::Model::removeContext | ( | const Node & | ) |
Convenience method that removes all statements in the context.
Reimplemented in Soprano::Util::DummyModel.
Error::ErrorCode Soprano::Model::removeAllStatements | ( | ) |
Convenience method that clear the Model of all statements
Reimplemented in Soprano::Util::DummyModel.
virtual StatementIterator Soprano::Model::listStatements | ( | const Statement & | partial | ) | const [pure virtual] |
Return an iterator over Model Statements that "partial" match the input Statement.
partial | The partial Statement to match. |
Implemented in Soprano::Util::AsyncModel, Soprano::Client::SparqlModel, Soprano::FilterModel, Soprano::Client::DBusModel, Soprano::Util::MutexModel, Soprano::Util::DummyModel, and Soprano::Util::ReadOnlyModel.
StatementIterator Soprano::Model::listStatements | ( | const Node & | subject, |
const Node & | predicate, | ||
const Node & | object, | ||
const Node & | context = Node() |
||
) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
subject | The subject node to match. Can be empty as a wildcard. |
predicate | The predicate node to match. Can be empty as a wildcard. |
object | The object node to match. Can be empty as a wildcard. |
context | The context node to match. Can be empty as a wildcard. |
Reimplemented in Soprano::FilterModel, and Soprano::Util::DummyModel.
StatementIterator Soprano::Model::listStatements | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Reimplemented in Soprano::Util::DummyModel.
StatementIterator Soprano::Model::listStatementsInContext | ( | const Node & | context | ) | const |
Convenience method which lists all statements in context.
Reimplemented in Soprano::Util::DummyModel.
virtual NodeIterator Soprano::Model::listContexts | ( | ) | const [pure virtual] |
List all contexts in the model, i.e. all named graphs.
Implemented in Soprano::Util::AsyncModel, Soprano::Client::SparqlModel, Soprano::FilterModel, Soprano::Client::DBusModel, Soprano::Util::MutexModel, Soprano::Util::DummyModel, and Soprano::Util::ReadOnlyModel.
virtual QueryResultIterator Soprano::Model::executeQuery | ( | const QString & | query, |
Query::QueryLanguage | language, | ||
const QString & | userQueryLanguage = QString() |
||
) | const [pure virtual] |
query_api_disabled Execute the given query over the Model.
This is a const read-only method. As such Model implementations should not support SPARQL extensions such as INSERT or UPDATE through this method. A future version of Soprano will provide an additional API for queries that change the Model.
query | The query to evaluate. |
language | The query language used to encode query . |
userQueryLanguage | If language equals Query::QueryLanguageUser userQueryLanguage defines the language to use. |
Implemented in Soprano::Util::AsyncModel, Soprano::Client::SparqlModel, Soprano::NRLModel, Soprano::Index::IndexFilterModel, Soprano::FilterModel, Soprano::Client::DBusModel, Soprano::Util::MutexModel, Soprano::Util::DummyModel, and Soprano::Util::ReadOnlyModel.
virtual bool Soprano::Model::containsAnyStatement | ( | const Statement & | statement | ) | const [pure virtual] |
Check if the model contains certain statements.
statement | A partially defined statement that serves as a pattern. |
Implemented in Soprano::Client::SparqlModel, Soprano::FilterModel, Soprano::Client::DBusModel, Soprano::Util::MutexModel, Soprano::Util::ReadOnlyModel, Soprano::Util::DummyModel, and Soprano::StorageModel.
bool Soprano::Model::containsAnyStatement | ( | const Node & | subject, |
const Node & | predicate, | ||
const Node & | object, | ||
const Node & | context = Node() |
||
) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
subject | The subject node to match. Can be empty as a wildcard. |
predicate | The predicate node to match. Can be empty as a wildcard. |
object | The object node to match. Can be empty as a wildcard. |
context | The context node to match. Can be empty as a wildcard. |
Reimplemented in Soprano::FilterModel, and Soprano::Util::DummyModel.
virtual bool Soprano::Model::containsStatement | ( | const Statement & | statement | ) | const [pure virtual] |
Check if the model contains a statements.
statement | The statement in question. This has to be a valid statement, i.e. subject, predicate, and object need to be defined. If the context node is empty the default graph is searched. |
Implemented in Soprano::Client::SparqlModel, Soprano::FilterModel, Soprano::Client::DBusModel, Soprano::Util::MutexModel, Soprano::Util::DummyModel, Soprano::Util::ReadOnlyModel, and Soprano::StorageModel.
bool Soprano::Model::containsStatement | ( | const Node & | subject, |
const Node & | predicate, | ||
const Node & | object, | ||
const Node & | context = Node() |
||
) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Reimplemented in Soprano::FilterModel, and Soprano::Util::DummyModel.
bool Soprano::Model::containsContext | ( | const Node & | context | ) | const |
Convenience method which is based on containsAnyStatement
Reimplemented in Soprano::Util::DummyModel.
virtual bool Soprano::Model::isEmpty | ( | ) | const [pure virtual] |
virtual int Soprano::Model::statementCount | ( | ) | const [pure virtual] |
The number of statements stored in this Model.
Implemented in Soprano::Client::SparqlModel, Soprano::FilterModel, Soprano::Client::DBusModel, Soprano::Util::MutexModel, Soprano::Util::ReadOnlyModel, and Soprano::Util::DummyModel.
virtual Error::ErrorCode Soprano::Model::write | ( | QTextStream & | os | ) | const [virtual] |
Write all statements in this Model to os.
Default implementation is based on Model::listStatements
Reimplemented in Soprano::FilterModel, and Soprano::Util::DummyModel.
virtual Node Soprano::Model::createBlankNode | ( | ) | [pure virtual] |
Creates a new blank node with a unique identifier.
Implemented in Soprano::Client::SparqlModel, Soprano::FilterModel, Soprano::Util::ReadOnlyModel, Soprano::Client::DBusModel, and Soprano::Util::DummyModel.
void Soprano::Model::statementsAdded | ( | ) | [signal] |
Emitted when new statements have been added to the model.
Implementations of this interface have to emit this signal.
void Soprano::Model::statementsRemoved | ( | ) | [signal] |
Emitted when statements have been removed from the model.
Implementations of this interface have to emit this signal.
void Soprano::Model::statementAdded | ( | const Soprano::Statement & | statement | ) | [signal] |
Notification signal for new statements. Model implementations should emit this signal for each newly added statement.
void Soprano::Model::statementRemoved | ( | const Soprano::Statement & | statement | ) | [signal] |
Notification signal for removed statements. Model implementations should emit this signal for each removed statement.