RDF query can be used to limit the results of certain d-bus methods such as:
Search.Query Metadata.GetSum Metadata.GetCount Metadata.GetUniqueValues Metadata.GetUniqueValuesWithCount Metadata.GetUniqueValuesWithCountAndSum
1. Query examples
1.1. Greater than example
List of all available images larger than 256x256 (good list for image viewer)
<rdfq:Condition>
<rdfq:and>
<rdfq:greaterThan>
<rdfq:Property name="Image:Width" />
<rdf:Integer>256</rdf:Integer>
</rdfq:greaterThan>
<rdfq:greaterThan>
<rdfq:Property name="Image:Height" />
<rdf:Integer>256</rdf:Integer>
</rdfq:greaterThan>
</rdfq:and>
</rdfq:Condition>
1.2. List all music from the 80s
<rdfq:Condition>
<rdfq:and>
<rdfq:greaterThan>
<rdfq:Property name="Audio:ReleaseDate" />
<rdf:Integer>1979</rdf:Integer>
</rdfq:greaterThan>
<rdfq:lessThan>
<rdfq:Property name="Audio:ReleaseDate" />
<rdf:Integer>1990</rdf:Integer>
</rdfq:lessThan>
</rdfq:and>
</rdfq:Condition>
2. In Set example
2.1. Get all office document files
<rdfq:Condition>
<rdfq:inSet>
<rdfq:Property name="File:Mime" />
<rdf:String>application/msword,application/pdf,application/vnd.ms-excel,application/vnd.oasis.opendocument.text,application/vnd.sun.xml.writer</rdf:String>
</rdfq:inSet>
</rdfq:Condition>
3. Containing string example
3.1. Get available video files.
<rdfq:Condition>
<rdfq:contains>
<rdfq:Property name="File:Mime" />
<rdf:String>video/</rdf:String>
</rdfq:contains>
</rdfq:Condition>It is better to use the category based list though, but this is an example on how to do it on RDF-query.
3.2. Get available mp2 music files.
We need access to the complete list of ogg music files.
RDF query:
<rdfq:Condition>
<rdfq:contains>
<rdfq:Property name="File:Mime" />
<rdf:String>audio/ogg</rdf:String>
</rdfq:contains>
</rdfq:Condition>