About Soprano

Soprano (formerly known as QRDF) is a library which provides a highly usable object-oriented C++/Qt4 framework for RDF data. It uses different RDF storage solutions as backends through a simple plugin system. Soprano is targetted at desktop applications that need a RDF data storage solution. It has been optimized for easy usage and simplicity.

Soprano features:

  • A Model-centric view on RDF data. A Model is one set of RDF statements, optionally is different named graphs (contexts).
  • Highly usable API: fully iterator-based, FilterModel design which allows to easily stack different RDF filters on top of Models.
  • Simple plugin design: Soprano 2 features five different kinds of plugins:
    1. Backend plugins do the actual RDF data storage
    2. Parser plugins are used to parser encoded RDF data into Soprano statements
    3. Serializer plugins are the exact counterpart to parser plugins: they serialize Soprano RDF statements into encoded RDF data
    4. Query parser plugins provide support for different query languages
    5. Query serializer plugins are the exact counterpart to query parser plugins: they serialize a Soprano query object into different query languages.
  • Vocabulary namepaces contain static QUrl objects for most frequently used URIs from RDF, RDFS, or XML Schema
  • Soprano 2 has a rule-based forward-inference engine that is implemented as a filter model and comes with predefined rulsets for RDFS and NRL
  • The CLucene index provides a full text query index for all literal statements including CLucene scoring.
  • Soprano 2 features a server/client architecture which allows to run an RDF storage remotely. Interfaces for communication over TCP, unix sockets, and DBus are provided in an easy-to use API.
  • The Soprano 2 API is fully documented using doxygen. The build target "apidox" creates the documentation as HTML pages.
  • Soprano 2 comes with two full-features backend plugins: redland and Sesame2.

Soprano has been created as a subproject of the Nepomuk project. It is developed by Daniele Galdi without any sponsor and Sebastian Trueg sponsored by Mandriva.