Mercurial > hg > svcore
diff rdf/SimpleSPARQLQuery.h @ 489:82ab61fa9223
* Reorganise our sparql queries on the basis that Redland must be
available, not only optional. So for anything querying the pool
of data about plugins, we use a single datastore and model which
is initialised at the outset by PluginRDFIndexer and then queried
directly; for anything that "reads from a file" (e.g. loading
annotations) we query directly using Rasqal, going to the
datastore when we need additional plugin-related information.
This may improve performance, but mostly it simplifies the code
and fixes a serious issue with RDF import in the previous versions
(namely that multiple sequential RDF imports would end up sharing
the same RDF data pool!)
author | Chris Cannam |
---|---|
date | Fri, 21 Nov 2008 16:12:29 +0000 |
parents | a82645e788fc |
children | 23945cdd7161 |
line wrap: on
line diff
--- a/rdf/SimpleSPARQLQuery.h Fri Nov 21 14:25:33 2008 +0000 +++ b/rdf/SimpleSPARQLQuery.h Fri Nov 21 16:12:29 2008 +0000 @@ -37,9 +37,16 @@ typedef std::map<QString, Value> KeyValueMap; typedef std::vector<KeyValueMap> ResultList; - SimpleSPARQLQuery(QString fromUri, QString query); + enum QueryType { + QueryFromModel, + QueryFromSingleSource + }; + + SimpleSPARQLQuery(QueryType type, QString query); ~SimpleSPARQLQuery(); + static bool addSourceToModel(QString sourceUri); + void setProgressReporter(ProgressReporter *reporter); bool wasCancelled() const; @@ -50,21 +57,10 @@ // Do a query and return the value for the given binding, from the // first result that has a value for it - static Value singleResultQuery(QString fromUri, + static Value singleResultQuery(QueryType type, QString query, QString binding); - enum BackEndPreference { - AutoSelectBackEnd, // pick based on likely speed of available storage - DirectParserBackEnd, // use rasqal (simpler if seldom used) - DatastoreBackEnd, // use redland (faster if version not too old) - }; - /** - * Select the preferred query back end. This should be called - * before any queries are made. The default is AutoSelectBackEnd. - */ - static void setBackEnd(BackEndPreference); - protected: class Impl; Impl *m_impl;