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:
- Backend plugins do the actual RDF data storage
- Parser plugins are used to parser encoded RDF data into Soprano statements
- Serializer plugins are the exact counterpart to parser plugins: they serialize Soprano RDF statements into encoded RDF data
- Query parser plugins provide support for different query languages
- 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. (A third, unfinished backend using 3Store may be removed for the Soprano 2 final release)
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.