Soprano  2.7.6
Signals | Public Member Functions | Protected Member Functions
Soprano::Model Class Reference

A Model is the central class in Soprano. It is a queryable collection of RDF quadruples, i.e statements. More...

#include <Soprano/Model>

+ Inheritance diagram for Soprano::Model:

List of all members.

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
- Public Member Functions inherited from QObject
 QObject (QObject *parent=0)
 blockSignals (bool block)
 childEvent (QChildEvent *event)
 children ()
 connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type=Qt::AutoCompatConnection)
 connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type=Qt::AutoCompatConnection)
 connectNotify (const char *signal)
 customEvent (QEvent *event)
 deleteLater ()
 destroyed (QObject *obj=0)
 disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 disconnect (const char *signal=0, const QObject *receiver=0, const char *method=0)
 disconnect (const QObject *receiver, const char *method=0)
 disconnectNotify (const char *signal)
 dumpObjectInfo ()
 dumpObjectTree ()
 dynamicPropertyNames ()
 event (QEvent *e)
 eventFilter (QObject *watched, QEvent *event)
 findChild (const QString &name=QString()
 findChildren (const QString &name=QString()
 findChildren (const QRegExp &regExp)
 inherits (const char *className)
 installEventFilter (QObject *filterObj)
 isWidgetType ()
 killTimer (int id)
 metaObject ()
 moveToThread (QThread *targetThread)
 parent ()
 property (const char *name)
 receivers (const char *signal)
 removeEventFilter (QObject *obj)
 sender ()
 setParent (QObject *parent)
 setProperty (const char *name, const QVariant &value)
 signalsBlocked ()
 startTimer (int interval)
 thread ()
 timerEvent (QTimerEvent *event)
 tr (const char *sourceText, const char *comment=0, int n=-1)
 trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 staticMetaObject
 QObject (QObject *parent, const char *name)
 checkConnectArgs (const char *signal, const QObject *object, const char *method)
 child (const char *objName, const char *inheritsClass=0, bool recursiveSearch=true)
 className ()
 insertChild (QObject *object)
 isA (const char *className)
 name ()
 name (const char *defaultName)
 normalizeSignalSlot (const char *signalSlot)
 removeChild (QObject *object)
 setName (const char *name)
- Public Member Functions inherited from Soprano::Error::ErrorCache
virtual ~ErrorCache ()
virtual Error lastError () const

Protected Member Functions

 Model ()
- Protected Member Functions inherited from Soprano::Error::ErrorCache
 ErrorCache ()
void clearError () const
void setError (const Error &) const
void setError (const QString &errorMessage, int code=ErrorUnknown) const

Detailed Description

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::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().

See also:
Error handling in Soprano

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.

Author:
Daniele Galdi danie.nosp@m.le.g.nosp@m.aldi@.nosp@m.gmai.nosp@m.l.com
Sebastian Trueg trueg.nosp@m.@kde.nosp@m..org

Definition at line 94 of file model.h.


Constructor & Destructor Documentation

virtual Soprano::Model::~Model ( )
virtual
Soprano::Model::Model ( )
protected

Member Function Documentation

virtual Error::ErrorCode Soprano::Model::addStatement ( const Statement statement)
pure virtual
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().

Parameters:
statementThe statement that should be removed. This has to be a valid statement.
Returns:
Error::ErrorNone on success and an error code if statement was invalid or an error occured.

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().

Parameters:
statementA 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.

Parameters:
subjectThe subject node to match. Can be empty as a wildcard.
predicateThe predicate node to match. Can be empty as a wildcard.
objectThe object node to match. Can be empty as a wildcard.
contextThe 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.

Parameters:
partialThe partial Statement to match.
Returns:
An iterator for all the matched Statements, on error an invalid iterator is returned.

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.

Parameters:
subjectThe subject node to match. Can be empty as a wildcard.
predicateThe predicate node to match. Can be empty as a wildcard.
objectThe object node to match. Can be empty as a wildcard.
contextThe context node to match. Can be empty as a wildcard.
Returns:
An iterator for all the matched Statements, on error an invalid iterator is returned.

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.

Returns:
An iterator for all statements in the model, on error an invalid iterator is returned.

Reimplemented in Soprano::Util::DummyModel.

StatementIterator Soprano::Model::listStatementsInContext ( const Node context) const

Convenience method which lists all statements in context.

Returns:
An iterator for all the matched Statements, on error an invalid iterator is returned.

Reimplemented in Soprano::Util::DummyModel.

virtual NodeIterator Soprano::Model::listContexts ( ) const
pure virtual

List all contexts in the model, i.e. all named graphs.

Returns:
An iterator over context Nodes, on error an invalid iterator is returned.

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.

Parameters:
queryThe query to evaluate.
languageThe query language used to encode query.
userQueryLanguageIf language equals Query::QueryLanguageUser userQueryLanguage defines the language to use.
Returns:
An iterator over all results matching the query, on error an invalid iterator is returned.

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.

Parameters:
statementA partially defined statement that serves as a pattern.
Returns:
true if the Model contains a Statement matching the given statement 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.

Parameters:
subjectThe subject node to match. Can be empty as a wildcard.
predicateThe predicate node to match. Can be empty as a wildcard.
objectThe object node to match. Can be empty as a wildcard.
contextThe 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.

Parameters:
statementThe 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.
Returns:
true if the Model contains the Statement, false otherwise or is statement is invalid.

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.

Returns:
The size of the Model, or -1 on error.

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.

Returns:
A blank node that can be used to create new statements.

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.

Warning:
Backends may choose not to emit this signal for each removed statement but only for a statement pattern (i.e. an invalid statement as used in removeAllStatements()) to prevent massive performance loss.

The documentation for this class was generated from the following file: