[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/akonadi/agents
From: Volker Krause <vkrause () kde ! org>
Date: 2009-09-21 15:47:17
Message-ID: 1253548037.475878.22587.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1026368 by vkrause:
Add a first draft of a SPARQL query builder API, inspired by the SQL
query builder used in the Akonadi server. Makes writing queries in code
a lot more comfortable and less error prone.
M +4 -1 CMakeLists.txt
M +9 -7 nepomuk_email_feeder/nepomukemailfeeder.cpp
A nepomukfeeder/CMakeLists.txt
A nepomukfeeder/selectsparqlbuilder.cpp [License: LGPL (v2+)]
A nepomukfeeder/selectsqarqlbuilder.h [License: LGPL (v2+)]
A nepomukfeeder/sparqlbuilder.cpp [License: LGPL (v2+)]
A nepomukfeeder/sparqlbuilder.h [License: LGPL (v2+)]
A nepomukfeeder/tests (directory)
A nepomukfeeder/tests/CMakeLists.txt
A nepomukfeeder/tests/sparqlbuildertest.cpp [License: LGPL (v2+)]
--- trunk/KDE/kdepim/akonadi/agents/CMakeLists.txt #1026367:1026368
@@ -2,12 +2,15 @@
add_subdirectory( strigifeeder )
if( Nepomuk_FOUND AND SOPRANO_PLUGIN_RAPTORPARSER_FOUND )
- include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/nepomukfeeder )
+ include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/nepomukfeeder \
${CMAKE_CURRENT_BINARY_DIR}/nie_fast ) set( NEPOMUKFEEDER_SHARED_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/nepomukfeeder/nepomukfeederagent.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nepomukfeeder/sparqlbuilder.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nepomukfeeder/selectsparqlbuilder.cpp
)
add_subdirectory( nie_fast )
+ add_subdirectory( nepomukfeeder )
add_subdirectory( nepomuk_email_feeder )
add_subdirectory( nepomuk_contact_feeder )
add_subdirectory( nepomuk_calendar_feeder )
--- trunk/KDE/kdepim/akonadi/agents/nepomuk_email_feeder/nepomukemailfeeder.cpp \
#1026367:1026368 @@ -22,6 +22,7 @@
#include "email.h"
#include "emailaddress.h"
#include "personcontact.h"
+#include "selectsqarqlbuilder.h"
#include <akonadi/changerecorder.h>
#include <akonadi/item.h>
@@ -163,13 +164,14 @@
// are case insensitive. But for the moment we stick to it and hope Nepomuk
// alignment fixes any duplicates
//
- Soprano::QueryResultIterator it =
- Nepomuk::ResourceManager::instance()->mainModel()->executeQuery( QString( \
"select distinct ?r where { ?r <%1> ?a . ?a <%2> \"%3\"^^<%4> . }" )
- .arg( \
NepomukFast::Role::emailAddressUri().toString() )
- .arg( \
NepomukFast::EmailAddress::emailAddressUri().toString() )
- .arg( \
QString::fromAscii( address ) )
- .arg( \
Soprano::Vocabulary::XMLSchema::string().toString() ),
- \
Soprano::Query::QueryLanguageSparql ); + SelectSparqlBuilder::BasicGraphPattern \
graph; + graph.addTriple( "?r", NepomukFast::Role::emailAddressUri(), \
SparqlBuilder::QueryVariable("?a") ); + graph.addTriple( "?a", \
NepomukFast::EmailAddress::emailAddressUri(), QString::fromAscii( address ) ); + \
SelectSparqlBuilder qb; + qb.setGraphPattern( graph );
+ qb.addQueryVariable( "?r" );
+ Soprano::QueryResultIterator it = \
Nepomuk::ResourceManager::instance()->mainModel()->executeQuery( qb.query(), \
Soprano::Query::QueryLanguageSparql ); +
if ( it.next() ) {
*found = true;
const QUrl uri = it.binding( 0 ).uri();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic