[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