Amir,

I went to merge this and noticed the merge request was still closed.
Rather than continuing to use the same old merge request, can you
submit a new one based on current master?

Thanks,
Matt

On Tue, Dec 28, 2010 at 11:37 PM, Matt Rogers <ma...@kde.org> wrote:
> Thanks Amir,
> I will merge this by the end of the week.
> Matt
>
> On Sun, Dec 19, 2010 at 10:34 PM, Amir Pakdel <pak...@gmail.com> wrote:
>>
>> Hi everybody,
>>
>> Since I have been using my version of Basket with Nepomuk Integration
>> for some times now without any problem, I have submitted a merge
>> request (merge request #9).
>>
>>
>>
>> Dear Sebastian,
>>
>> Do you have any plan to include my patch into the KRunner?
>>
>>
>> Thanks,
>> Amir
>>
>> On Tue, Nov 16, 2010 at 10:21 AM, Amir Pakdel <pak...@gmail.com> wrote:
>> > Hi everybody,
>> >
>> > Would you please kindly give it a try before I submit the merge request?
>> > I would be grateful if anyone could review my code too.
>> >
>> > Thanks,
>> > Amir
>> >
>> >
>> > ---------- Forwarded message ----------
>> > From: Amir Pakdel <pak...@gmail.com>
>> > Date: Thu, Nov 11, 2010 at 6:38 PM
>> > Subject: Re: [Basket-devel] Loading Baskets from the command line
>> > To: Sebastian Trüg <tr...@kde.org>
>> > Cc: basket-devel <basket-devel@lists.sourceforge.net>, ma...@kde.org,
>> > nepo...@kde.org
>> >
>> >
>> > Hi Sebastian,
>> >
>> > I hope that I have done it right this time :D
>> > Would you please take a look:
>> >
>> > http://gitorious.org/~pakdel/basket/pakdels-basket/blobs/master/src/nepomukintegration.cpp
>> >
>> > Moreover, I have changed NepomukSearchRunner a little bit, so I could
>> > search for contents of notes using KRunner. I have attached the patch
>> > for that too.
>> >
>> > Thanks again for your help
>> >
>> >
>> >
>> >
>> > Dear developers,
>> > It would be great if anybody could test it.
>> >
>> >
>> > Thanks everybody,
>> > Amir
>> >
>> > On Mon, Nov 1, 2010 at 2:16 PM, Sebastian Trüg <tr...@kde.org> wrote:
>> >> On 11/01/2010 10:53 AM, Amir Pakdel wrote:
>> >>> Hi Sebastian,
>> >>>
>> >>> Thanks for your reply.
>> >>>
>> >>> On Mon, Nov 1, 2010 at 12:43 PM, Sebastian Trüg <tr...@kde.org> wrote:
>> >>>> Hi Amir,
>> >>>>
>> >>>> funnily enough you do exactly what was explained in "You are doing it
>> >>>> wrong"[1]: you are trying to move the thread to itself. This,
>> >>>> however,
>> >>>> it not possible since the thread you want to move it to is not
>> >>>> running
>> >>>> yet (and for another reason that I forgot).
>> >>>>
>> >>>> Also the run method is called in the new thread. There is no need to
>> >>>> start anything async in there. Just do the work, ie. what doUpdate()
>> >>>> does now.
>> >>>
>> >>> I did it async because I wanted to queue up save requests and save
>> >>> only once when a duplicate save request is encountered in the queue. I
>> >>> will correct this issue and commit a new version.
>> >>>
>> >>>>
>> >>>> "basketRes.setProperty( Soprano::Vocabulary::RDF::type(),
>> >>>> Soprano::Vocabulary::PIMO::Note() );"
>> >>>> this will overwrite all other types. You can just remove that line.
>> >>>
>> >>> Shouldn't I use "noteRes.addProperty"?
>> >>
>> >> nope, you are doing addType in the line before. That is enough. :)
>> >>
>> >>>>
>> >>>> "basketRes.setProperty( Soprano::Vocabulary::NIE::url(), basketUri
>> >>>> );"
>> >>>> No need. This is done internally anyway.
>> >>>>
>> >>>> "basketTag.setProperty( Soprano::Vocabulary::NAO::prefLabel(),
>> >>>> tagName );"
>> >>>> just use setLabel()
>> >>>>
>> >>>>
>> >>>> Are you using nie:isPartOf to group subnotes? If so better use
>> >>>> pimo:isPartOf.
>> >>> Do you mean pimo:partOf ? [1]
>> >>
>> >> yes.
>> >>
>> >> Cheers,
>> >> Sebastian
>> >>
>> >>> Thanks again,
>> >>> Amir
>> >>>
>> >>> [1]
>> >>> http://www.semanticdesktop.org/ontologies/2007/11/01/pimo/#partOf
>> >>>>
>> >>>> Cheers,
>> >>>> Sebastian
>> >>>>
>> >>>> [1]
>> >>>>
>> >>>> http://labs.trolltech.com/blogs/2010/06/17/youre-doing-it-wrong/#more-1608
>> >>>>
>> >>>> On 10/29/2010 09:25 PM, Amir Pakdel wrote:
>> >>>>> Hi everybody,
>> >>>>>
>> >>>>> Dear Matt,
>> >>>>> I have made some improvements (new features and bug fixes) to the
>> >>>>> Nepomuk Integration and revised and resubmitted the merge request.
>> >>>>>
>> >>>>>
>> >>>>> Dear Sebastian,
>> >>>>> I have implemented "Indexing Contents of the Actual Notes" as
>> >>>>> following:
>> >>>>> 1. Requesting nepomukstrigiservice (via DBus) to index the basket
>> >>>>> folder (using indexFolder method).
>> >>>>> 2. Connecting to indexingStopped signal.
>> >>>>> 3. Cleaning up the mime-type when received indexingStopped signal.
>> >>>>> This way, it even works on my older KDE 4.4.3 at work :)
>> >>>>> would you please take a look at the source code on the following
>> >>>>> URL:
>> >>>>>
>> >>>>> http://gitorious.org/~pakdel/basket/pakdels-basket/blobs/master/src/nepomukintegration.cpp
>> >>>>>
>> >>>>>
>> >>>>> Dear developers,
>> >>>>> I have used threading in the Nepomuk Integration and I will be
>> >>>>> grateful if you could check my code :)
>> >>>>>
>> >>>>> http://gitorious.org/~pakdel/basket/pakdels-basket/blobs/master/src/nepomukintegration.cpp
>> >>>>>
>> >>>>>
>> >>>>> Thanks,
>> >>>>> Amir
>> >>>>>
>> >>>>> On Sat, Oct 23, 2010 at 12:36 PM, Amir Pakdel <pak...@gmail.com>
>> >>>>> wrote:
>> >>>>>> Hi Sebastian,
>> >>>>>>
>> >>>>>> On Fri, Oct 22, 2010 at 5:18 PM, Sebastian Trüg <tr...@kde.org>
>> >>>>>> wrote:
>> >>>>>>> Hi Amir,
>> >>>>>>>
>> >>>>>>> On 10/19/2010 01:51 PM, Amir Pakdel wrote:
>> >>>>>>>> Two more ideas came into my mind:
>> >>>>>>>> 1. Something could be added to anthologies that indicates the
>> >>>>>>>> priority
>> >>>>>>>> of mime-types, like the "priority" property of "magic" XML
>> >>>>>>>> element
>> >>>>>>>> that is used in the XML files that define mime-types. This way,
>> >>>>>>>> multiple mime-types of a resource can be prioritized.
>> >>>>>>>
>> >>>>>>> I think this is a problem with the way mime types are represented
>> >>>>>>> today:
>> >>>>>>> as strings. Do you think a hierarchy of mime types would solve
>> >>>>>>> that
>> >>>>>>> problem, too?
>> >>>>>>>
>> >>>>>> I do think so, because we can have things like the priority of the
>> >>>>>> mime type, preferred application that handles a mime type and the
>> >>>>>> application that added this mime type into the properties of the
>> >>>>>> resource (the application that indexed the resource as a specific
>> >>>>>> mime
>> >>>>>> type).
>> >>>>>>
>> >>>>>>>> 2. Nepomuk::Indexer could have a method to set a flag in
>> >>>>>>>> resources
>> >>>>>>>> that prevents "automatic indexing" or at least prevents resources
>> >>>>>>>> from
>> >>>>>>>> being indexed using strigi, or some thing like a "lock" or a "do
>> >>>>>>>> not
>> >>>>>>>> change" hint or so. This way, a specific application would take
>> >>>>>>>> full
>> >>>>>>>> responsibility for the resource. Moreover, indexFile,
>> >>>>>>>> indexResource
>> >>>>>>>> and other method could have another parameter "force" that
>> >>>>>>>> defaults to
>> >>>>>>>> false and the application that is responsible for the resource
>> >>>>>>>> could
>> >>>>>>>> call these methods with force=true
>> >>>>>>>
>> >>>>>>> this is an interesting idea. How could we put that in RDF? Maybe a
>> >>>>>>> simple property on the indexing graph which states the application
>> >>>>>>> handling this specific file?
>> >>>>>>>
>> >>>>>> That is a good idea; the simpler the better :D
>> >>>>>> This way, Nepomuk should check the application that is invoking the
>> >>>>>> indexFile or indexResouce methods. Is it easy to implement?
>> >>>>>> Therefore, when invoking application does not match the application
>> >>>>>> name stored in RDF, it has to force the index.
>> >>>>>>
>> >>>>>> Cheers,
>> >>>>>> Amir
>> >>>>>>
>> >>>>>>> Cheers,
>> >>>>>>> Sebastian
>> >>>>>>>
>> >>>>>>>>
>> >>>>>>>> I hope I explained my ideas intelligibly  :D
>> >>>>>>>>
>> >>>>>>>> Cheers,
>> >>>>>>>> Amir
>> >>>>>>>>
>> >>>>>>>> On Mon, Oct 18, 2010 at 5:06 PM, Sebastian Trüg <tr...@kde.org>
>> >>>>>>>> wrote:
>> >>>>>>>>> Sounds like a good idea. However, I will still find a more
>> >>>>>>>>> generic way
>> >>>>>>>>> in addition to that.
>> >>>>>>>>> Stay tuned for more info.
>> >>>>>>>>> Cheers,
>> >>>>>>>>> Sebastian
>> >>>>>>>>>
>> >>>>>>>>> On 10/15/2010 07:38 PM, Amir Pakdel wrote:
>> >>>>>>>>>> Hi Sebastian,
>> >>>>>>>>>>
>> >>>>>>>>>> On Fri, Oct 8, 2010 at 12:00 PM, Sebastian Trüg <tr...@kde.org>
>> >>>>>>>>>> wrote:
>> >>>>>>>>>>> Hi guys,
>> >>>>>>>>>>>
>> >>>>>>>>>>> On 10/07/2010 09:25 PM, Amir Pakdel wrote:
>> >>>>>>>>>>>> Hi everybody,
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> On Wed, Oct 6, 2010 at 8:47 PM, Stephen Kelly
>> >>>>>>>>>>>> <steve...@gmail.com> wrote:
>> >>>>>>>>>>>>> Matt Rogers wrote:
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>>>> The second solution is more appealing, but I would rather
>> >>>>>>>>>>>>>>> get a
>> >>>>>>>>>>>>>>> working version with what we have got now. Therefore, I
>> >>>>>>>>>>>>>>> will go with
>> >>>>>>>>>>>>>>> the first suggestion.
>> >>>>>>>>>>>>>>>
>> >>>>>>>>>>>>>>
>> >>>>>>>>>>>>>> We actually have thought about interfacing with Akonadi for
>> >>>>>>>>>>>>>> data
>> >>>>>>>>>>>>>> storage/caching. If we do that, would we get Nepomuk
>> >>>>>>>>>>>>>> integration for
>> >>>>>>>>>>>>>> "free" as well?
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> Just an FYI about this:
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> I changed how kjots stores data so that it can use Akonadi
>> >>>>>>>>>>>>> for access to the
>> >>>>>>>>>>>>> notes.
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> Although I have read all I could find about Nepomuk and
>> >>>>>>>>>>>> Akonadi, I
>> >>>>>>>>>>>> still don't know what Akonadi does exactly and how it
>> >>>>>>>>>>>> interacts with
>> >>>>>>>>>>>> Nepomuk!
>> >>>>>>>>>>>> Could anyone please help me with that?
>> >>>>>>>>>>>
>> >>>>>>>>>>> AFAIK Akonadi stores blobs of data and provides a few APIs to
>> >>>>>>>>>>> convert
>> >>>>>>>>>>> these blobs into something useful. One prominent example is
>> >>>>>>>>>>> mime data.
>> >>>>>>>>>>> Nepomuk is a graph of information and thus, completely
>> >>>>>>>>>>> different.
>> >>>>>>>>>>> Akonadi more or less duplicates all its information in Nepomuk
>> >>>>>>>>>>> so one
>> >>>>>>>>>>> can perform searches on the data and create relations. This is
>> >>>>>>>>>>> a weird
>> >>>>>>>>>>> situation as the info is stored twice but we cannot change
>> >>>>>>>>>>> that at the
>> >>>>>>>>>>> moment. Maybe in the future we can merge both projects - who
>> >>>>>>>>>>> knows.
>> >>>>>>>>>>>
>> >>>>>>>>>>> So to me it does not make much sense to store notes in Akonadi
>> >>>>>>>>>>> as you
>> >>>>>>>>>>> need to copy them to Nepomuk anyway. Thus, you would need to
>> >>>>>>>>>>> implement
>> >>>>>>>>>>> the data handling twice: once the Akonadi blob and once the
>> >>>>>>>>>>> Nepomuk
>> >>>>>>>>>>> resource data.
>> >>>>>>>>>>>
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> http://dot.kde.org/2010/02/17/kjots-takes-advantage-innovations-kde-
>> >>>>>>>>>>>>> development-platform
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> KJots accesses the notes as Mime documents (KMime::Message
>> >>>>>>>>>>>>> objects) from
>> >>>>>>>>>>>>> Akonadi. Akonadi stores the notes in mime format in maildir
>> >>>>>>>>>>>>> containers (one
>> >>>>>>>>>>>>> note per file). The mime format could also be used to store
>> >>>>>>>>>>>>> the images in
>> >>>>>>>>>>>>> the note directly in the note, but I haven't got around to
>> >>>>>>>>>>>>> doing that
>> >>>>>>>>>>>>> (though there is API for it I think).
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> http://www.faqs.org/rfcs/rfc2387.html
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> The way Akonadi stores the notes is irrelevant to the
>> >>>>>>>>>>>>> application. They
>> >>>>>>>>>>>>> could just as easily be in mbox format (one single file for
>> >>>>>>>>>>>>> a group of
>> >>>>>>>>>>>>> notes). The application just uses the KMime::Message objects
>> >>>>>>>>>>>>> that Akonadi
>> >>>>>>>>>>>>> returns.
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> Even if you don't make basket use Akonadi yet it could make
>> >>>>>>>>>>>>> sense to store
>> >>>>>>>>>>>>> the notes as mime messages and use KMime to (de)serialize
>> >>>>>>>>>>>>> them.
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> All the best,
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> Steve.
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> I hope I found a solution for opening note files with Basket:
>> >>>>>>>>>>>> Suppose there is a basket in
>> >>>>>>>>>>>> ~/.kde/share/apps/basket/baskets/basket106 which has a note
>> >>>>>>>>>>>> in a file
>> >>>>>>>>>>>> called note1.html and the metadata in Nepomuk is as
>> >>>>>>>>>>>> following:
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> $ nepomukcmd query "select ?r where { ?r nie:url
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> <file:///~/.kde/share/apps/basket/baskets/basket106/note1.html> 
>> >>>>>>>>>>>> . }"
>> >>>>>>>>>>>> <nepomuk:/res/00473b7a-4ac9-4223-b8d3-dee3d24631c1>
>> >>>>>>>>>>>> Total results: 1
>> >>>>>>>>>>>> Execution time: 00:00:00.3
>> >>>>>>>>>>>
>> >>>>>>>>>>> Where did that URL come from? Normally Nepomuk should only
>> >>>>>>>>>>> contain
>> >>>>>>>>>>> absolute URLs.
>> >>>>>>>>>>>
>> >>>>>>>>>>>> $ nepomukcmd query "select ?a where {
>> >>>>>>>>>>>> <nepomuk:/res/00473b7a-4ac9-4223-b8d3-dee3d24631c1>
>> >>>>>>>>>>>> nie:mimeType ?a .
>> >>>>>>>>>>>> }"
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> "application/x-basket-item"^^<http://www.w3.org/2001/XMLSchema#string>
>> >>>>>>>>>>>> Total results: 1
>> >>>>>>>>>>>> Execution time: 00:00:00.1
>> >>>>>>>>>>>>
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> Now in Nepomuk::SearchRunner::run, we could get the service
>> >>>>>>>>>>>> that
>> >>>>>>>>>>>> should run this resource and then tell the KRun to use it,
>> >>>>>>>>>>>> like the
>> >>>>>>>>>>>> following:
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> QString mimetype =
>> >>>>>>>>>>>> res.property(Nepomuk::Vocabulary::NIE::mimeType).toString();
>> >>>>>>>>>>>> KService::Ptr preferredService =
>> >>>>>>>>>>>> KMimeTypeTrader::self()->preferredService( mimetype );
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> KRun *newApp = new KRun(url, 0);
>> >>>>>>>>>>>> newApp->setPreferredService(
>> >>>>>>>>>>>> preferredService->desktopEntryName() );
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> I hope it works without changing anything else.
>> >>>>>>>>>>>> Sebastian, would you please take a look?
>> >>>>>>>>>>>
>> >>>>>>>>>>> This is a good idea for a quick intermediate solution. :)
>> >>>>>>>>>>> Very nice. All you would have to do is set the mimetype on the
>> >>>>>>>>>>> notes
>> >>>>>>>>>>> manually. The only problem left is that strigi would add the
>> >>>>>>>>>>> html
>> >>>>>>>>>>> mimetype, too. But we can handle that by indexing the baskets
>> >>>>>>>>>>> manually.
>> >>>>>>>>>>>
>> >>>>>>>>>>> For the latter I need to make some API public which I need to
>> >>>>>>>>>>> do anyway.
>> >>>>>>>>>>> Can we meet on IRC? I am in #nepomuk-kde on freenode
>> >>>>>>>>>>>
>> >>>>>>>>>>> Cheers,
>> >>>>>>>>>>> Sebastian
>> >>>>>>>>>>>
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> Cheers,
>> >>>>>>>>>>>> Amir
>> >>>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>> Sorry for being late. Since I could not find you on IRC (Friday
>> >>>>>>>>>> 15 Oct
>> >>>>>>>>>> 17:30 GMT) I am writing this.
>> >>>>>>>>>>
>> >>>>>>>>>> IMHO the following scenario would work fine:
>> >>>>>>>>>> 0. ~/.kde/share/apps/basket should not be indexed
>> >>>>>>>>>> automatically.
>> >>>>>>>>>>
>> >>>>>>>>>> 1. We keep the current code that adds the metadata of the
>> >>>>>>>>>> basket and
>> >>>>>>>>>> its notes into the Nepomuk and sets notes as parts of the
>> >>>>>>>>>> basket.
>> >>>>>>>>>> 2. Ask the Nepomuk::Indexer to index notes using
>> >>>>>>>>>> Indexer::indexFile method
>> >>>>>>>>>> 3. Develop a slot (for example resetMimetype) that clears
>> >>>>>>>>>> mimetype of
>> >>>>>>>>>> the notes and sets it back to application/x-basket
>> >>>>>>>>>> 4. connect Nepomuk::indexingDone to the newly developed slot in
>> >>>>>>>>>> basket
>> >>>>>>>>>> (resetMimetype)
>> >>>>>>>>>>
>> >>>>>>>>>> This way, the only thing that would be changed in the Nepomuk
>> >>>>>>>>>> it that
>> >>>>>>>>>> the indexingDone signal is implemented and it is supposed to be
>> >>>>>>>>>> emitted.
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>> Please let me know your opinion.
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>> Cheers,
>> >>>>>>>>>> Amir
>> >>>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>
>> >>
>> >
>>
>>
>> ------------------------------------------------------------------------------
>> Lotusphere 2011
>> Register now for Lotusphere 2011 and learn how
>> to connect the dots, take your collaborative environment
>> to the next level, and enter the era of Social Business.
>> http://p.sf.net/sfu/lotusphere-d2d
>> _______________________________________________
>> Basket-devel mailing list
>> Basket-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/basket-devel
>
>

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Basket-devel mailing list
Basket-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/basket-devel

Reply via email to