KDE 4.7 PyKDE API Reference
  • KDE's Python API
  • Overview
  • PyKDE Home
  • Sitemap
  • Contact Us
 

QueryParser Class Reference

from PyKDE4.nepomuk import *

Namespace: Nepomuk.Query

Detailed Description

\class QueryParser queryparser.h Nepomuk/Query/QueryParser

Parser for desktop user queries.

Warning:
This is NOT a SPARQL parser.

The QueryParser can be used to parse user queries, ie. queries that the user would enter in any search interface, and convert them into Query instances.

The syntax is fairly simple: plain strings match to LiteralTerm terms, URIs need to be N3-encoded, when using white space parenthesis need to be put around properties and values, terms can be excluded via '-'.

Examples

%Query everything that contains the term "nepomuk":

 nepomuk

%Query everything that contains both the terms "Hello" and "World":

 Hello World

%Query everything that contains the term "Hello World":

 "Hello World"

%Query everything that has a tag whose label matches "nepomuk" (actually this is where Query.resolveProperties would match "hastag" to nao:hasTag):

 hastag:nepomuk

%Query everything that has a tag labeled "nepomuk" or a tag labeled "scribo:

 hastag:nepomuk OR hastag:scribo

%Query everything that has a tag labeled "nepomuk" but not a tag labeled "scribo":

 +hastag:nepomuk AND -hastag:scribo

The parser can handle one special case of nesting (TODO: implement a "real" parser) which matches all resources that are related to a resource which in turn has a certain property:

 related:(hastag:nepomuk)

Author:
Sebastian Trueg <trueg@kde.org>

Since:
4.4


Enumerations

ParserFlag { NoParserFlags, QueryTermGlobbing, DetectFilenamePattern }

Methods

 __init__ (self)
[Nepomuk.Types.Property] matchProperty (self, QString fieldName)
Nepomuk.Query.Query parse (self, QString query)
Nepomuk.Query.Query parse (self, QString query, Nepomuk.Query.QueryParser.ParserFlags flags)

Static Methods

Nepomuk.Query.Query parseQuery (QString query)
Nepomuk.Query.Query parseQuery (QString query, Nepomuk.Query.QueryParser.ParserFlags flags)

Method Documentation

__init__ (   self )

Create a new query parser.

[Nepomuk.Types.Property] matchProperty (  self,
QString  fieldName
)

Try to match a field name as used in a query string to actual properties.

The matching is cached inside the Query instance for fast subsequent lookups.

Example:

 hastag:nepomuk

Returns:
A list of properties that match fieldName or an empty list in case nothing was matched.

This method is used by parse() to match properties used in user queries.

Nepomuk.Query.Query parse (  self,
QString  query
)

Parse a user query.

Parameters:
query  The query string to parse

Parameters:
flags  a set of flags influencing the parsing process.

Returns:
The parsed query or an invalid Query object in case the parsing failed.

Since:
4.5

Nepomuk.Query.Query parse (  self,
QString  query,
Nepomuk.Query.QueryParser.ParserFlags  flags
)

Parse a user query.

Parameters:
query  The query string to parse

Parameters:
flags  a set of flags influencing the parsing process.

Returns:
The parsed query or an invalid Query object in case the parsing failed.

Since:
4.5


Static Method Documentation

Nepomuk.Query.Query parseQuery ( QString  query
)

Parameters:
query  The query string to parse

Parameters:
flags  a set of flags influencing the parsing process.

Since:
4.6

Nepomuk.Query.Query parseQuery ( QString  query,
Nepomuk.Query.QueryParser.ParserFlags  flags
)

Parameters:
query  The query string to parse

Parameters:
flags  a set of flags influencing the parsing process.

Since:
4.6


Enumeration Documentation

ParserFlag

Flags to change the behaviour of the parser.

Since:
4.5

Enumerator:
NoParserFlags = 0x0
QueryTermGlobbing = 0x1
DetectFilenamePattern = 0x2

  • Full Index

Modules

  • akonadi
  • dnssd
  • kdecore
  • kdeui
  • khtml
  • kio
  • knewstuff
  • kparts
  • kutils
  • nepomuk
  • phonon
  • plasma
  • polkitqt
  • solid
  • soprano
This documentation is maintained by Simon Edwards.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal