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