Hi!

The current version is recursive and executes a query for every sub folder.
This version only executes the query once. I haven't done any benchmarking,
but this version should be considerably faster. The second version I've
provided uses a Soprano::BindingSet.

- Vishesh Handa
Index: metadatamover.cpp
===================================================================
--- metadatamover.cpp	(revision 1145224)
+++ metadatamover.cpp	(working copy)
@@ -179,10 +179,14 @@
         Resource res( url );
         if ( res.exists() ) {
             kDebug() << "removing metadata for file" << url << "with resource URI" << res.resourceUri();
-            Query::Query query( Query::ComparisonTerm( Nepomuk::Vocabulary::NIE::isPartOf(), Query::ResourceTerm( res ) ) );
+            Query::Query query( Query::ComparisonTerm( Nepomuk::Vocabulary::NIE::url(),
+                                                       Query::LiteralTerm( url.path( KUrl::AddTrailingSlash ) ) ) );
             Soprano::QueryResultIterator it = m_model->executeQuery( query.toSparqlQuery(), Soprano::Query::QueryLanguageSparql );
             while ( it.next() ) {
-                removeMetadata( it[0].uri() );
+                Resource resource( it[0].uri() );
+                kDebug() << "removing metadata for resource uri : " << resource.resourceUri();
+                //kDebug() << " and file url : " << resource.property( Nepomuk::Vocabulary::NIE::url() ).toString();
+                resource.remove();
             }
             res.remove();
         }
Index: metadatamover.cpp
===================================================================
--- metadatamover.cpp	(revision 1145224)
+++ metadatamover.cpp	(working copy)
@@ -179,10 +179,16 @@
         Resource res( url );
         if ( res.exists() ) {
             kDebug() << "removing metadata for file" << url << "with resource URI" << res.resourceUri();
-            Query::Query query( Query::ComparisonTerm( Nepomuk::Vocabulary::NIE::isPartOf(), Query::ResourceTerm( res ) ) );
+            Query::Query query( Query::ComparisonTerm( Nepomuk::Vocabulary::NIE::url(),
+                                                       Query::LiteralTerm( url.path( KUrl::AddTrailingSlash ) ) ) );
             Soprano::QueryResultIterator it = m_model->executeQuery( query.toSparqlQuery(), Soprano::Query::QueryLanguageSparql );
-            while ( it.next() ) {
-                removeMetadata( it[0].uri() );
+            QList<Soprano::BindingSet> bindingsets = it.allBindings();
+            
+            foreach( const Soprano::BindingSet & bs, bindingsets ) {
+                Resource resource( bs[0].uri() );
+                kDebug() << "removing metadata for resource uri : " << resource.resourceUri();
+                //kDebug() << " and file url : " << resource.property( Nepomuk::Vocabulary::NIE::url() ).toString();
+                resource.remove();
             }
             res.remove();
         }
_______________________________________________
Nepomuk mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/nepomuk

Reply via email to