[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