[Nepomuk] Help to understand how to build a query

Vishesh Handa handa.vish at gmail.com
Thu Sep 22 12:24:07 UTC 2011


On Thu, Sep 22, 2011 at 5:42 PM, Sebastian Trüg <trueg at kde.org> wrote:

> Hi Francois,
>
> Here is the C++ code which would do it:
>
> OrTerm mimeTypeTerm;
> foreach(QString mimeType, mimeTypes)
>   mimeTypeTerm.addSubTerm(ComparisonTerm(NIE::mimeType(), mimeType,
>         ComparisonTerm::Equal);
>
> FileQuery query(AndTerm(mimeTypeTerm, ResourceTypeTerm(NFO::Video());
> foreach(QString folder, myFolders)
>  query.addIncludeFolder(folder);
>

You could also do a -

FileQuery query( mimeTypeTerm && ResourceTypeTerm(NFO::Video()) );


>
> That's it. If you want you can remove the ResourceTypeTerm just for
> testing.
> If this query does not work maybe your file indexer is disabled?
>
> Cheers,
> Sebastian
>
> On 09/22/2011 11:13 AM, François K. wrote:
> > Hi !
> >
> > I'm trying to understand how to build a simple query, using the query
> API.
> > My goal is pretty simple : I want to list all video files stored in some
> given directories that Phonon can play.
> >
> > I tried several "things" without success which leads me to the asumption
> that I might have misunderstood something, hence my call for help :)
> >
> > This is what I did in my last try :
> >
> > STEP 1 :
> > * Create a new Nepomuk.Query.FileQuery
> > * Ask to look for files only via
> setFileMode(Nepomuk.Query.FileQuery.QueryFiles)
> > * Loop through my 'sources' and add them as sources via
> addIncludeFolder(source, True)
> >
> > STEP 2 :
> > * Create a ResourceTypeTerm to get only Video files (NFO::Video())
> >
> > STEP 3 :
> > * Get the list of video mimetypes that Phonon can play.
> > * Loop through this list, and build a ComparisonTerm for each playable
> mimetype :
> >     - The ComparisonTerm is made of the mimetype Property
> (NIE::mimeType()) and a LiteralTerm containing the current mimetype.
> > * Add all these ComparisonTerms in a OrTerm.
> >
> > STEP 4 :
> > * Build a new AndTerm.
> > * Add the ResourceTypeTerm built in STEP 2 to it.
> > * Add the OrTerm built in STEP 3 to it.
> >
> > STEP 5 :
> > * Add the AndTerm built in STEP 4 to my Query.
> > * Run the query : zero result :( (and there are some).
> >
> >
> > I can provide (Python) code if you want.
> >
> > What am I missing/doing wrong ? I really need to understand the logic
> behind the query system since I'm looking forward to use Nepomuk almost
> everywhere in my app.
> > So my question isn't really about that precise case, but rather "how do
> you guys build your query ?"
> >
> >
> > Oh, also, my strigi didn't index those files yet because of crashes (but
> nepomuk is running). Does it matter ?
> >
> >
> > Thanks a lot,
> >
> _______________________________________________
> Nepomuk mailing list
> Nepomuk at kde.org
> https://mail.kde.org/mailman/listinfo/nepomuk
>



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


More information about the Nepomuk mailing list