KDE 4.5 PyKDE API Reference
  • KDE's Python API
  • Overview
  • PyKDE Home
  • Sitemap
  • Contact Us
 

PyKDE4.soprano Module


Soprano (aka QRDF) - A modular RDF storage framework

%Soprano is a Qt-based pluggable framework for RDF storage and parsing. It tries to provide a highly usable interface to several Resource Description Framework (RDF) storage solutions.

Overview

%Soprano centers around the Soprano.Model class which represents one storage set. A Soprano.Model is basically a set of RDF quadruples, i.e. Soprano.Statement. The actual storage is done via Soprano.Backend plugins. All query operations return Soprano.Iterator instances. Iterator is an explicitly shared class which is very easy to understand and use.

%Soprano makes the distinction between two types of Models: Soprano.StorageModel and Soprano.FilterModel. The former is intended to be the basic Model which actually stores the data while the latter can be stacked on top of a Soprano.StorageModel to perform certain filter operations. These filter operations can range from very basic things such as disallowing any write operation (Soprano.Util.ReadOnlyModel) to more complex things such as full text indexing of all literal statements (Soprano.Index.IndexFilterModel) or exporting the Model via D-Bus (Soprano.Server.DBusExportModel).

Apart from storage %Soprano provides a system for RDF parser and serializer plugins. For more details on parsing or serializing RDF data see the Soprano.Parser and Soprano.Serializer classes.

%Soprano comes with a built in Soprano.Server Server and Soprano.Client Client implementations allowing remote repositories to be built quickly. Soprano.Client.SparqlModel provides a client to arbitrary SPARQL (SPARQL Protocol and RDF Query Language) Http services.

Quickstart

(Also see the soprano_howto for details on building %Soprano applications)

Create an RDF Model:

 Soprano.Model* model = Soprano.createModel();

Fill it with statements:

 model->addStatement( Soprano.Statement( QUrl( "http://mysite.org/data#A"), Soprano.Vocabulary.RDFS.label(), Soprano.LiteralValue( "A test resource" ) ) );

Read the data back:

 Soprano.StatementIterator it = model->listStatements();
 while( it.next() ) {
    displayStatement( *it );
 }

Query the data:

 Soprano.QueryResultIterator it = model->executeQuery( "select ?r where { ?r ?p ?o . }", Soprano.Query.QueryLanguageSparql );
 while( it.next() ) {
    displayResult( it.binding( "r" ) );
 }

Contents

The following sections contain further information on the usage of %Soprano.

  • \subpage soprano_howto - Learn how to integrate %Soprano into your build system
  • \subpage soprano_storage - Learn how to use RDF storage in %Soprano
  • \subpage soprano_misc - Learn how to parse and serialize RDF data in %Soprano
  • \subpage soprano_error_handling - Learn how %Soprano's error system works
  • \subpage soprano_writing_plugins - Learn how to write your own %Soprano plugins
  • Soprano.Server - Learn how to create a %Soprano server
  • Soprano.Client - Learn how to create a %Soprano client accessing a %Soprano server via DBus or a local socket
  • \subpage soprano_devel_tools - Learn about the nice command line tools %Soprano provides
  • soprano_backends - Learn about the available storage backends and their features and settings
  • Namespaces

      G    S  
    global   Soprano   

    Class Index

      A    G    Q  
    AsyncModel (Soprano.Util)   Graph (Soprano)   QueryResultIterator (Soprano)   
    AsyncQuery (Soprano.Util)     I  QueryResultIteratorBackend (Soprano)   
    AsyncResult (Soprano.Util)   InferenceModel (Soprano.Inference)     R  
      B    L  Rule (Soprano.Inference)   
    Backend (Soprano)   LanguageTag (Soprano)   RuleParser (Soprano.Inference)   
    BackendSetting (Soprano)   LiteralValue (Soprano)   RuleSet (Soprano.Inference)   
    BindingSet (Soprano)   LocalSocketClient (Soprano.Client)     S  
      D  Locator (Soprano.Error)   Serializer (Soprano)   
    DBusClient (Soprano.Client)     M  ServerCore (Soprano.Server)   
    DBusExportIterator (Soprano.Server)   Model (Soprano)   SignalCacheModel (Soprano.Util)   
    DBusExportModel (Soprano.Server)   MutexModel (Soprano.Util)   SimpleNodeIterator (Soprano.Util)   
    DBusModel (Soprano.Client)     N  SimpleStatementIterator (Soprano.Util)   
    DBusNodeIterator (Soprano.Client)   Node (Soprano)   SparqlModel (Soprano.Client)   
    DBusQueryResultIterator (Soprano.Client)   NodeIterator (Soprano)   Statement (Soprano)   
    DBusStatementIterator (Soprano.Client)   NodePattern (Soprano.Inference)   StatementIterator (Soprano)   
    DummyModel (Soprano.Util)   NRLModel (Soprano)   StatementPattern (Soprano.Inference)   
      E    P  StorageModel (Soprano)   
    Error (Soprano.Error)   Parser (Soprano)     T  
    ErrorCache (Soprano.Error)   ParserError (Soprano.Error)   TcpClient (Soprano.Client)   
      F  Plugin (Soprano)   
    FilterModel (Soprano)   PluginManager (Soprano)   
    • Full Index

    Modules

    • akonadi
    • dnssd
    • kdecore
    • kdeui
    • khtml
    • kio
    • knewstuff
    • kparts
    • kutils
    • nepomuk
    • phonon
    • plasma
    • polkitqt
    • solid
    • soprano
    This documentation is maintained by Simon Edwards.
    KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal