[Nepomuk] Nepomuk2::Resource backward compatibility

Vishesh Handa me at vhanda.in
Sun Jul 1 13:08:56 UTC 2012


Oh yeah. Also, can we get rid of all the pimo stuff from the Resource class?

AFAIK, no one really uses any of the pimo features over there and they
really complicate the code base.

commit 755131d501c687c790c166f8d1ce4d1b56550301
Author: Vishesh Handa <me at vhanda.in>
Date:   Sat Jun 30 11:32:09 2012 +0530

    Loose all the pimo related functions

    No one uses them and they complicate the code base. We want this code
    base to be as simple as possible.

diff --git a/libnepomukcore/resource/resource.cpp
b/libnepomukcore/resource/resource.cpp
index b559f07..c237f44 100644
--- a/libnepomukcore/resource/resource.cpp
+++ b/libnepomukcore/resource/resource.cpp
@@ -25,7 +25,6 @@
 #include "tools.h"
 #include "tag.h"
 #include "pimo.h"
-#include "thing.h"
 #include "file.h"
 #include "property.h"
 #include "nfo.h"
@@ -283,9 +282,9 @@ QString Nepomuk2::Resource::genericLabel() const
     if(!label.isEmpty())
         return label;

-    label = m_data->pimoThing().label();
-    if(!label.isEmpty())
-        return label;
+    //label = m_data->pimoThing().label();
+    //if(!label.isEmpty())
+    //    return label;

     label = property( Nepomuk2::Vocabulary::NFO::fileName() ).toString();
     if(!label.isEmpty())
@@ -357,13 +356,6 @@ QString Nepomuk2::Resource::genericIcon() const
 }


-Nepomuk2::Thing Nepomuk2::Resource::pimoThing()
-{
-    determineFinalResourceData();
-    return m_data->pimoThing();
-}
-
-
 bool Nepomuk2::Resource::operator==( const Resource& other ) const
 {
     if( this == &other )
diff --git a/libnepomukcore/resource/resource.h
b/libnepomukcore/resource/resource.h
index 2edb562..3cc30c2 100644
--- a/libnepomukcore/resource/resource.h
+++ b/libnepomukcore/resource/resource.h
@@ -35,7 +35,6 @@ namespace Nepomuk2 {
     class ResourceData;
     class Variant;
     class Tag;
-    class Thing;
     class File;
     namespace Types {
         class Property;
@@ -344,16 +343,6 @@ namespace Nepomuk2 {
         QString genericIcon() const;

         /**
-         * Get or create the PIMO thing that relates to this resource. If
this resource
-         * itself is a pimo:Thing, a reference to this is returned. If a
pimo:Thing exists
-         * with has as occurrence this resource, the thing is returned.
Otherwise a new thing
-         * is created.
-         *
-         * \since 4.2
-         */
-        Thing pimoThing();
-
-        /**
          * Operator to compare two Resource objects.
          */
         bool operator==( const Resource& ) const;
diff --git a/libnepomukcore/resource/resourcedata.cpp
b/libnepomukcore/resource/resourcedata.cpp
index f908177..e19b4bd 100644
--- a/libnepomukcore/resource/resourcedata.cpp
+++ b/libnepomukcore/resource/resourcedata.cpp
@@ -54,6 +54,8 @@ using namespace Soprano;

 #define MAINMODEL (m_rm->m_manager->mainModel())

+using namespace Soprano::Vocabulary;
+using namespace Nepomuk2::Vocabulary;

 Nepomuk2::ResourceData::ResourceData( const QUrl& uri, const QUrl&
kickOffUri, const QUrl& type, ResourceManagerPrivate* rm )
     : m_uri(uri),
@@ -61,8 +63,6 @@ Nepomuk2::ResourceData::ResourceData( const QUrl& uri,
const QUrl& kickOffUri, c
       m_modificationMutex(QMutex::Recursive),
       m_cacheDirty(false),
       m_addedToWatcher(false),
-      m_pimoThing(0),
-      m_groundingOccurence(0),
       m_rm(rm)
 {
     if( m_mainType.isEmpty() ) {
@@ -197,9 +197,6 @@ void Nepomuk2::ResourceData::resetAll( bool isDelete )
     m_cache.clear();
     m_cacheDirty = false;
     m_types.clear();
-    delete m_pimoThing;
-    m_pimoThing = 0;
-    m_groundingOccurence = 0;

     // when we are being deleted the value of m_mainType is not important
     // anymore. Also since ResourceManager is a global static it might be
@@ -321,13 +318,6 @@ bool Nepomuk2::ResourceData::store()
             m_rm->addToKickOffList( this, m_kickoffUris );
         }

-        // store our grounding occurrence in case we are a thing created
by the pimoThing() method
-        if( m_groundingOccurence ) {
-            if( m_groundingOccurence != this )
-                m_groundingOccurence->store();
-            setProperty(Vocabulary::PIMO::groundingOccurrence(),
Variant(m_groundingOccurence->uri()) );
-        }
-
         foreach( const KUrl& url, m_kickoffUris ) {
             if( url.scheme().isEmpty() )
                 setProperty( Soprano::Vocabulary::NAO::identifier(),
Variant(url.url()) );
@@ -437,23 +427,6 @@ bool Nepomuk2::ResourceData::load()
             }

             m_cacheDirty = false;
-
-            delete m_pimoThing;
-            m_pimoThing = 0;
-            if( hasType( Vocabulary::PIMO::Thing() ) ) {
-                m_pimoThing = new Thing( m_uri );
-            }
-            else {
-                // TODO: somehow handle pimo:referencingOccurrence and
pimo:occurrence
-                QueryResultIterator pimoIt = MAINMODEL->executeQuery(
QString( "select ?r where { ?r <%1> <%2> . }")
-
.arg( Vocabulary::PIMO::groundingOccurrence().toString() )
-
.arg( QString::fromAscii( m_uri.toEncoded() ) ),
-
Soprano::Query::QueryLanguageSparqlNoInference );
-                if( pimoIt.next() ) {
-                    m_pimoThing = new Thing( pimoIt.binding("r").uri() );
-                }
-            }
-
             return true;
         }
         else {
@@ -707,32 +680,6 @@ void Nepomuk2::ResourceData::invalidateCache()
 }


-Nepomuk2::Thing Nepomuk2::ResourceData::pimoThing()
-{
-    load();
-    if( !m_pimoThing ) {
-        //
-        // We only create a new thing if we are a nie:InformationElement.
-        // All other resources will simply be converted into a pimo:Thing
-        //
-        // Files, however, are a special case in every aspect. this
includes pimo things.
-        // Files are their own grounding occurrence. This makes a lot of
things
-        // much simpler.
-        //
-        if( hasType( Vocabulary::PIMO::Thing() ) ||
-                isFile() ||
-                !hasType( Vocabulary::NIE::InformationElement() ) ) {
-            m_pimoThing = new Thing(this);
-        }
-        else {
-            m_pimoThing = new Thing();
-        }
-        m_pimoThing->m_data->m_groundingOccurence = this;
-    }
-    return *m_pimoThing;
-}
-
-
 bool Nepomuk2::ResourceData::operator==( const ResourceData& other ) const
 {
     if( this == &other )
diff --git a/libnepomukcore/resource/resourcedata.h
b/libnepomukcore/resource/resourcedata.h
index c6b267f..3708897 100644
--- a/libnepomukcore/resource/resourcedata.h
+++ b/libnepomukcore/resource/resourcedata.h
@@ -29,7 +29,6 @@
 #include <QtCore/QSet>

 #include "variant.h"
-#include "thing.h"
 #include <kurl.h>

 #include <soprano/statement.h>
@@ -157,8 +156,6 @@ namespace Nepomuk2 {

         void invalidateCache();

-        Thing pimoThing();
-
         /**
          * Compares the properties of two ResourceData objects taking into
account the Deleted flag
          */
@@ -205,12 +202,6 @@ namespace Nepomuk2 {
         bool m_cacheDirty;
         bool m_addedToWatcher;

-        // using a pointer to avoid infinite creation loop
-        Thing* m_pimoThing;
-
-        // only used for delayed storage of the pimo thing relation
-        ResourceData* m_groundingOccurence;
-
         ResourceManagerPrivate* m_rm;
     };
 }



On Sun, Jul 1, 2012 at 4:39 PM, Vishesh Handa <me at vhanda.in> wrote:

> Hey Sebastian
>
> I still have around 3 more weeks during which I'm allowed to break ABI and
> API compatibility. I was thinking of changing -
>
> * Resource::resourceUri() -> Resource::uri()
> * Resource::resourceType() -> Resource::type()
>
> Is that okay?
>
> --
> Vishesh Handa
>
>


-- 
Vishesh Handa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/nepomuk/attachments/20120701/4b65fd98/attachment.html>


More information about the Nepomuk mailing list