[Nepomuk] Nepomuk2::Resource backward compatibility

Sebastian Trüg trueg at kde.org
Mon Jul 2 18:45:44 UTC 2012


I don't think the pimo code being very complicated. And it is very 
separate from the rest.
I would not remove it but if you really want to it would be fine with me.

On 07/01/2012 03:08 PM, Vishesh Handa wrote:
> 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 <mailto: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
> <mailto: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
>


More information about the Nepomuk mailing list