<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>Soprano: Soprano::Inference::Rule Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.1 --> <script type="text/javascript"> function hasClass(ele,cls) { return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)')); } function addClass(ele,cls) { if (!this.hasClass(ele,cls)) ele.className += " "+cls; } function removeClass(ele,cls) { if (hasClass(ele,cls)) { var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)'); ele.className=ele.className.replace(reg,' '); } } function toggleVisibility(linkObj) { var base = linkObj.getAttribute('id'); var summary = document.getElementById(base + '-summary'); var content = document.getElementById(base + '-content'); var trigger = document.getElementById(base + '-trigger'); if ( hasClass(linkObj,'closed') ) { summary.style.display = 'none'; content.style.display = 'block'; trigger.src = 'open.png'; removeClass(linkObj,'closed'); addClass(linkObj,'opened'); } else if ( hasClass(linkObj,'opened') ) { summary.style.display = 'block'; content.style.display = 'none'; trigger.src = 'closed.png'; removeClass(linkObj,'opened'); addClass(linkObj,'closed'); } return false; } </script> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"> <ul> <li><a class="el" href="namespaceSoprano.html">Soprano</a> </li> <li><a class="el" href="namespaceSoprano_1_1Inference.html">Inference</a> </li> <li><a class="el" href="classSoprano_1_1Inference_1_1Rule.html">Soprano::Inference::Rule</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> </div> <div class="headertitle"> <h1>Soprano::Inference::Rule Class Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="Soprano::Inference::Rule" --> <p>A rule used by the <a class="el" href="classSoprano_1_1Inference_1_1InferenceModel.html" title="The Soprano Inference Model provides a simple forward chaining inference engine which uses the underl...">InferenceModel</a> to generate inferenced statements. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="inferencerule_8h_source.html">Soprano/Inference/Rule</a>></code></p> <p><a href="classSoprano_1_1Inference_1_1Rule-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a9d32c7243885210d9534aff43faeb13a">Rule</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a84a1296e53f642f8e3f5664c8fcf8c9a">Rule</a> (const <a class="el" href="classSoprano_1_1Inference_1_1Rule.html">Rule</a> &other)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a1db7dd416cec4cd25ccd83a7f7cda516">~Rule</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html">Rule</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a4881b7c412a5d57675710b53bc42777b">operator=</a> (const <a class="el" href="classSoprano_1_1Inference_1_1Rule.html">Rule</a> &other)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="qlist.html">QList</a>< <a class="el" href="classSoprano_1_1Inference_1_1StatementPattern.html">StatementPattern</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a6347b71049a709d56f01ba352d2057ff">preconditions</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a43a8ac7fb4b7835b6c945d9bfa4d2b14">addPrecondition</a> (const <a class="el" href="classSoprano_1_1Inference_1_1StatementPattern.html">StatementPattern</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSoprano_1_1Inference_1_1StatementPattern.html">StatementPattern</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a14f2ba47a9574118454d4d9000cd52b0">effect</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a33a08e91fb74ebb4c2db664ca345e9c5">setEffect</a> (const <a class="el" href="classSoprano_1_1Inference_1_1StatementPattern.html">StatementPattern</a> &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a5fc256f672c6bbf5efc928959a67876a">match</a> (const <a class="el" href="classSoprano_1_1Statement.html">Statement</a> &statement) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a8a91a5b1f4b0d202df5cf55a02da4b5c">bindToStatement</a> (const <a class="el" href="classSoprano_1_1Statement.html">Statement</a> &statement)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSoprano_1_1Statement.html">Statement</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#ad517cea149e68e6251c5db0bd42bfbdb">boundToStatement</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="qstring.html">QString</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a8bcc07da86c1237afa5f7034e9ca1bd0">createSparqlQuery</a> (bool bindVariables=false) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSoprano_1_1Statement.html">Statement</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#aa259f605255e1cd9f620f57e297773ae">bindEffect</a> (const <a class="el" href="classSoprano_1_1BindingSet.html">BindingSet</a> &bindings) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="qlist.html">QList</a>< <a class="el" href="classSoprano_1_1Statement.html">Statement</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#af6b1169ece899e05418e180849da2f15">bindPreconditions</a> (const <a class="el" href="classSoprano_1_1BindingSet.html">BindingSet</a> &bindings) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a1c213f10ac6fc1ca18f308f4140f89f4">isValid</a> () const </td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>A rule used by the <a class="el" href="classSoprano_1_1Inference_1_1InferenceModel.html" title="The Soprano Inference Model provides a simple forward chaining inference engine which uses the underl...">InferenceModel</a> to generate inferenced statements. </p> <p>Rules can be created manually by adding preconditions and the effect via <a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a43a8ac7fb4b7835b6c945d9bfa4d2b14">addPrecondition()</a> and <a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a33a08e91fb74ebb4c2db664ca345e9c5">setEffect()</a> or from a rules file through the <a class="el" href="classSoprano_1_1Inference_1_1RuleParser.html" title="The RuleParser can be used to parse Soprano rule files.">RuleParser</a>.</p> <dl class="author"><dt><b>Author:</b></dt><dd>Sebastian Trueg <<a href="mailto:trueg@kde.org">trueg@kde.org</a>> </dd></dl> <p>Definition at line <a class="el" href="inferencerule_8h_source.html#l00045">45</a> of file <a class="el" href="inferencerule_8h_source.html">inferencerule.h</a>.</p> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a9d32c7243885210d9534aff43faeb13a"></a><!-- doxytag: member="Soprano::Inference::Rule::Rule" ref="a9d32c7243885210d9534aff43faeb13a" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Soprano::Inference::Rule::Rule </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Constructs an invalid rule </p> </div> </div> <a class="anchor" id="a84a1296e53f642f8e3f5664c8fcf8c9a"></a><!-- doxytag: member="Soprano::Inference::Rule::Rule" ref="a84a1296e53f642f8e3f5664c8fcf8c9a" args="(const Rule &other)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Soprano::Inference::Rule::Rule </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSoprano_1_1Inference_1_1Rule.html">Rule</a> & </td> <td class="paramname"> <em>other</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Copy constructor. Creates a shallow copy of <code>other</code>. </p> </div> </div> <a class="anchor" id="a1db7dd416cec4cd25ccd83a7f7cda516"></a><!-- doxytag: member="Soprano::Inference::Rule::~Rule" ref="a1db7dd416cec4cd25ccd83a7f7cda516" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Soprano::Inference::Rule::~Rule </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Destructor </p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a4881b7c412a5d57675710b53bc42777b"></a><!-- doxytag: member="Soprano::Inference::Rule::operator=" ref="a4881b7c412a5d57675710b53bc42777b" args="(const Rule &other)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSoprano_1_1Inference_1_1Rule.html">Rule</a>& Soprano::Inference::Rule::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSoprano_1_1Inference_1_1Rule.html">Rule</a> & </td> <td class="paramname"> <em>other</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Assignment operator. Creates a shallow copy of <code>other</code>. </p> </div> </div> <a class="anchor" id="a6347b71049a709d56f01ba352d2057ff"></a><!-- doxytag: member="Soprano::Inference::Rule::preconditions" ref="a6347b71049a709d56f01ba352d2057ff" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="elRef" href="qlist.html">QList</a><<a class="el" href="classSoprano_1_1Inference_1_1StatementPattern.html">StatementPattern</a>> Soprano::Inference::Rule::preconditions </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>The list of preconditions for the rule. Each condition is a <a class="el" href="classSoprano_1_1Inference_1_1StatementPattern.html" title="Building block of an inference Rule.">StatementPattern</a> which can contain variables. These variables are identified by their name and matched accordingly. </p> </div> </div> <a class="anchor" id="a43a8ac7fb4b7835b6c945d9bfa4d2b14"></a><!-- doxytag: member="Soprano::Inference::Rule::addPrecondition" ref="a43a8ac7fb4b7835b6c945d9bfa4d2b14" args="(const StatementPattern &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Soprano::Inference::Rule::addPrecondition </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSoprano_1_1Inference_1_1StatementPattern.html">StatementPattern</a> & </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a precondition </p> </div> </div> <a class="anchor" id="a14f2ba47a9574118454d4d9000cd52b0"></a><!-- doxytag: member="Soprano::Inference::Rule::effect" ref="a14f2ba47a9574118454d4d9000cd52b0" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSoprano_1_1Inference_1_1StatementPattern.html">StatementPattern</a> Soprano::Inference::Rule::effect </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>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. </p> </div> </div> <a class="anchor" id="a33a08e91fb74ebb4c2db664ca345e9c5"></a><!-- doxytag: member="Soprano::Inference::Rule::setEffect" ref="a33a08e91fb74ebb4c2db664ca345e9c5" args="(const StatementPattern &)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Soprano::Inference::Rule::setEffect </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSoprano_1_1Inference_1_1StatementPattern.html">StatementPattern</a> & </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the effect of the rule. </p> </div> </div> <a class="anchor" id="a5fc256f672c6bbf5efc928959a67876a"></a><!-- doxytag: member="Soprano::Inference::Rule::match" ref="a5fc256f672c6bbf5efc928959a67876a" args="(const Statement &statement) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Soprano::Inference::Rule::match </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSoprano_1_1Statement.html">Statement</a> & </td> <td class="paramname"> <em>statement</em></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Check if a statement matches any of the statement patterns in this rule.</p> <dl class="return"><dt><b>Returns:</b></dt><dd>true if statement matches any of the patterns, false otherwise. Be aware that <a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a8bcc07da86c1237afa5f7034e9ca1bd0">createSparqlQuery()</a> might still return an empty string since it does perform some aditional optimization checks based on the bound statement. </dd></dl> </div> </div> <a class="anchor" id="a8a91a5b1f4b0d202df5cf55a02da4b5c"></a><!-- doxytag: member="Soprano::Inference::Rule::bindToStatement" ref="a8a91a5b1f4b0d202df5cf55a02da4b5c" args="(const Statement &statement)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Soprano::Inference::Rule::bindToStatement </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSoprano_1_1Statement.html">Statement</a> & </td> <td class="paramname"> <em>statement</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Bind this rule to a specific <a class="el" href="classSoprano_1_1Statement.html" title="A Statement instance represents one RDF quadruple.">Statement</a>.</p> <p>The purpose of this method is to allow retricting the application of a rule to one statement, i.e. a newly added one.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>statement</em> </td><td>The <a class="el" href="classSoprano_1_1Statement.html" title="A Statement instance represents one RDF quadruple.">Statement</a> to bind this rule to.</td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a8bcc07da86c1237afa5f7034e9ca1bd0">createSparqlQuery</a>, <a class="el" href="classSoprano_1_1Inference_1_1Rule.html#aa259f605255e1cd9f620f57e297773ae">bindEffect</a>, <a class="el" href="classSoprano_1_1Inference_1_1Rule.html#af6b1169ece899e05418e180849da2f15">bindPreconditions</a> </dd></dl> </div> </div> <a class="anchor" id="ad517cea149e68e6251c5db0bd42bfbdb"></a><!-- doxytag: member="Soprano::Inference::Rule::boundToStatement" ref="ad517cea149e68e6251c5db0bd42bfbdb" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSoprano_1_1Statement.html">Statement</a> Soprano::Inference::Rule::boundToStatement </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>The statement set ia <a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a8a91a5b1f4b0d202df5cf55a02da4b5c">bindToStatement()</a> or an invalid one if none was set. </dd></dl> </div> </div> <a class="anchor" id="a8bcc07da86c1237afa5f7034e9ca1bd0"></a><!-- doxytag: member="Soprano::Inference::Rule::createSparqlQuery" ref="a8bcc07da86c1237afa5f7034e9ca1bd0" args="(bool bindVariables=false) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="elRef" href="qstring.html">QString</a> Soprano::Inference::Rule::createSparqlQuery </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>bindVariables</em> = <code>false</code></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Create a SPARQL query that retrieves all resources matching this rule.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>bindVariables</em> </td><td>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.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>A full SPARQL query or an empty string if this rule does not apply to the statement set via bindToStatement.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a8a91a5b1f4b0d202df5cf55a02da4b5c">bindToStatement</a> </dd></dl> </div> </div> <a class="anchor" id="aa259f605255e1cd9f620f57e297773ae"></a><!-- doxytag: member="Soprano::Inference::Rule::bindEffect" ref="aa259f605255e1cd9f620f57e297773ae" args="(const BindingSet &bindings) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSoprano_1_1Statement.html">Statement</a> Soprano::Inference::Rule::bindEffect </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSoprano_1_1BindingSet.html">BindingSet</a> & </td> <td class="paramname"> <em>bindings</em></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>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.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>bindings</em> </td><td>The bindings to apply to this rule.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The statement infered by this rule under the application of bindings.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a8a91a5b1f4b0d202df5cf55a02da4b5c">bindToStatement</a>, <a class="el" href="classSoprano_1_1Inference_1_1Rule.html#af6b1169ece899e05418e180849da2f15">bindPreconditions</a> </dd></dl> </div> </div> <a class="anchor" id="af6b1169ece899e05418e180849da2f15"></a><!-- doxytag: member="Soprano::Inference::Rule::bindPreconditions" ref="af6b1169ece899e05418e180849da2f15" args="(const BindingSet &bindings) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="elRef" href="qlist.html">QList</a><<a class="el" href="classSoprano_1_1Statement.html">Statement</a>> Soprano::Inference::Rule::bindPreconditions </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSoprano_1_1BindingSet.html">BindingSet</a> & </td> <td class="paramname"> <em>bindings</em></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>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.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>bindings</em> </td><td>The bindings to apply to this rule.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The statements that have to be valid in order for this rule to infer the statement returned by bindEffect under the same bindings.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classSoprano_1_1Inference_1_1Rule.html#a8a91a5b1f4b0d202df5cf55a02da4b5c">bindToStatement</a>, <a class="el" href="classSoprano_1_1Inference_1_1Rule.html#aa259f605255e1cd9f620f57e297773ae">bindEffect</a> </dd></dl> </div> </div> <a class="anchor" id="a1c213f10ac6fc1ca18f308f4140f89f4"></a><!-- doxytag: member="Soprano::Inference::Rule::isValid" ref="a1c213f10ac6fc1ca18f308f4140f89f4" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Soprano::Inference::Rule::isValid </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Check if a rule is valid.</p> <dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if the rule is valid and can be used with the <a class="el" href="classSoprano_1_1Inference_1_1InferenceModel.html" title="The Soprano Inference Model provides a simple forward chaining inference engine which uses the underl...">InferenceModel</a>, <code>false</code> otherwise.</dd></dl> <dl class="since"><dt><b>Since:</b></dt><dd>2.3 </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>/builddir/build/BUILD/soprano-2.5.2/soprano/inference/<a class="el" href="inferencerule_8h_source.html">inferencerule.h</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated on Thu Oct 21 2010 for Soprano by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address> </body> </html>