[Nepomuk] Help to understand how to build a query

Sebastian Trüg trueg at kde.org
Thu Sep 22 12:28:03 UTC 2011


On 09/22/2011 02:24 PM, Vishesh Handa wrote:
> 
> 
> On Thu, Sep 22, 2011 at 5:42 PM, Sebastian Trüg <trueg at kde.org
> <mailto: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()) );

Not in Python. :)

> 
> 
>     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 <mailto:Nepomuk at kde.org>
>     https://mail.kde.org/mailman/listinfo/nepomuk
> 
> 
> 
> 
> -- 
> Vishesh Handa


More information about the Nepomuk mailing list