Soprano::Inference::Rule Class Reference

A rule used by the InferenceModel to generate inferenced statements. More...

#include <Soprano/Inference/Rule>

List of all members.

Public Member Functions

 Rule ()
 Rule (const Rule &other)
 ~Rule ()
Ruleoperator= (const Rule &other)
QList< StatementPatternpreconditions () const
void addPrecondition (const StatementPattern &)
StatementPattern effect () const
void setEffect (const StatementPattern &)
bool match (const Statement &statement) const
void bindToStatement (const Statement &statement)
QString createSparqlQuery (bool bindVariables=false) const
Statement bindEffect (const BindingSet &bindings) const
QList< StatementbindPreconditions (const BindingSet &bindings) const


Detailed Description

A rule used by the InferenceModel to generate inferenced statements.

Rules can be created manually by adding preconditions and the effect via addPrecondition() and setEffect() or from a rules file through the RuleParser.

Author:
Sebastian Trueg <trueg@kde.org>

Definition at line 49 of file inferencerule.h.


Constructor & Destructor Documentation

Soprano::Inference::Rule::Rule (  ) 

Soprano::Inference::Rule::Rule ( const Rule other  ) 

Soprano::Inference::Rule::~Rule (  ) 


Member Function Documentation

Rule& Soprano::Inference::Rule::operator= ( const Rule other  ) 

QList<StatementPattern> Soprano::Inference::Rule::preconditions (  )  const

The list of preconditions for the rule. Each condition is a StatementPattern which can contain variables. These variables are identified by their name and matched accordingly.

void Soprano::Inference::Rule::addPrecondition ( const StatementPattern  ) 

StatementPattern Soprano::Inference::Rule::effect (  )  const

The effect of a rule is a pattern that repeats variables from the preconditions and thus, identifies the statements that are to be infered from the preconditions.

void Soprano::Inference::Rule::setEffect ( const StatementPattern  ) 

bool Soprano::Inference::Rule::match ( const Statement statement  )  const

Check if a statement matches any of the statement patterns in this rule.

Returns:
true if statement matches any of the patterns, false otherwise.

void Soprano::Inference::Rule::bindToStatement ( const Statement statement  ) 

Bind this rule to a specific Statement.

The purpose of this method is to allow retricting the application of a rule to one statement, i.e. a newly added one.

Parameters:
statement The Statement to bind this rule to.
See also:
createSparqlQuery, bindEffect, bindPreconditions

QString Soprano::Inference::Rule::createSparqlQuery ( bool  bindVariables = false  )  const

Create a SPARQL query that retrieves all resources matching this rule.

Parameters:
bindVariables If true and a valid binding statement is set the query will be bound to this statement resulting in a UNION query of all possible bindings.
See also:
bindToStatement

Statement Soprano::Inference::Rule::bindEffect ( const BindingSet bindings  )  const

Bind the rule's effect to a set of bindings as reveived from a query. If the bindings do not contain all variables the bound statement is used as backup.

Parameters:
bindings The bindings to apply to this rule.
Returns:
The statement infered by this rule under the application of bindings.
See also:
bindToStatement, bindPreconditions

QList<Statement> Soprano::Inference::Rule::bindPreconditions ( const BindingSet bindings  )  const

Bind the rule's preconditions to a set of bindings as reveived from a query. If the bindings do not contain all variables the bound statement is used as backup.

Parameters:
bindings The bindings to apply to this rule.
Returns:
The statements that have to be valid in order for this rule to infer the statement returned by bindEffect under the same bindings.
See also:
bindToStatement, bindEffect


The documentation for this class was generated from the following file:

Generated on Tue Jul 22 17:39:36 2008 for Soprano by  doxygen 1.5.6