[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    Re: KDE/kdepim/akonadi/agents
From:       Sebastian =?iso-8859-1?q?Tr=FCg?= <trueg () kde ! org>
Date:       2009-09-21 18:24:39
Message-ID: 200909212024.39176.trueg () kde ! org
[Download RAW message or body]

very nice. Maybe we could merge this into soprano at some point. :)

On Monday 21 September 2009 17:47:17 Volker Krause wrote:
> 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