01: /******************************************************************
02: * File: RuleInstance.java
03: * Created by: Dave Reynolds
04: * Created on: 03-May-2003
05: *
06: * (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
07: * [See end of file]
08: * $Id: RuleInstance.java,v 1.7 2008/01/02 12:09:44 andy_seaborne Exp $
09: *****************************************************************/package com.hp.hpl.jena.reasoner.rulesys.impl.oldCode;
10:
11: import com.hp.hpl.jena.reasoner.*;
12: import com.hp.hpl.jena.reasoner.rulesys.*;
13:
14: /**
15: * Part of the backward chaining rule interpreter. A RuleInstance
16: * links an instance of a rule to the GoalResults object for which it is
17: * generating results. It is a simple data structure which is shared amongst
18: * a set of RuleSets to reduce the store turn over needed for RuleState creation.
19: * <p>
20: * Encapuslation warning: this object is used in the tight inner loop of the engine so we access its
21: * field pointers directly rather than through accessor methods.
22: * </p>
23: *
24: * @author <a href="mailto:der@hplb.hpl.hp.com">Dave Reynolds</a>
25: * @version $Revision: 1.7 $ on $Date: 2008/01/02 12:09:44 $
26: */
27: public class RuleInstance {
28:
29: /** The rule being processed */
30: protected Rule rule;
31:
32: /** The parent goal table entry which contains this continuation point */
33: protected GoalResults generator;
34:
35: /** The enclosing rule engine */
36: protected BRuleEngine engine;
37:
38: /** The head clause whose bindings are being sought */
39: protected TriplePattern head;
40:
41: /** Set to true if the first two body clauses were reordered for performance */
42: protected boolean clausesReordered = false;
43:
44: /** If the clauses are reordered this contains the index of the second clause */
45: protected int secondClause = -1;
46:
47: /**
48: * Constructor. Create a new continuation point for a rule in
49: * the context of a specific goal represented by the table entry.
50: */
51: RuleInstance(GoalResults results, Rule rule, TriplePattern head) {
52: this .generator = results;
53: this .rule = rule;
54: this .engine = results.getEngine();
55: this .head = head;
56: }
57:
58: }
59:
60: /*
61: (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
62: All rights reserved.
63:
64: Redistribution and use in source and binary forms, with or without
65: modification, are permitted provided that the following conditions
66: are met:
67:
68: 1. Redistributions of source code must retain the above copyright
69: notice, this list of conditions and the following disclaimer.
70:
71: 2. Redistributions in binary form must reproduce the above copyright
72: notice, this list of conditions and the following disclaimer in the
73: documentation and/or other materials provided with the distribution.
74:
75: 3. The name of the author may not be used to endorse or promote products
76: derived from this software without specific prior written permission.
77:
78: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
79: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
80: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
81: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
82: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
83: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
84: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
85: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
86: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
87: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
88: */
|