01: /******************************************************************
02: * File: RDFSBRuleReasoner.java
03: * Created by: Dave Reynolds
04: * Created on: 12-May-2003
05: *
06: * (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
07: * [See end of file]
08: * $Id: RDFSFBRuleReasoner.java,v 1.10 2008/01/02 12:07:47 andy_seaborne Exp $
09: *****************************************************************/package com.hp.hpl.jena.reasoner.rulesys;
10:
11: import java.util.*;
12:
13: import com.hp.hpl.jena.graph.Capabilities;
14: import com.hp.hpl.jena.reasoner.BaseInfGraph;
15: import com.hp.hpl.jena.reasoner.ReasonerFactory;
16:
17: /**
18: * A backward chaining implementation of the RDFS closure rules
19: * based upon the basic backward rule interpreter.
20: *
21: * @author <a href="mailto:der@hplb.hpl.hp.com">Dave Reynolds</a>
22: * @version $Revision: 1.10 $ on $Date: 2008/01/02 12:07:47 $
23: */
24: public class RDFSFBRuleReasoner extends FBRuleReasoner {
25:
26: /** The location of the OWL rule definitions on the class path */
27: public static final String RULE_FILE = "etc/rdfs-fb.rules";
28:
29: /** The parsed rules */
30: protected static List ruleSet;
31:
32: /**
33: * Constructor
34: */
35: public RDFSFBRuleReasoner(ReasonerFactory parent) {
36: super (loadRules(), parent);
37: }
38:
39: /**
40: * Return the RDFS rule set, loading it in if necessary
41: */
42: public static List loadRules() {
43: if (ruleSet == null)
44: ruleSet = loadRules(RULE_FILE);
45: return ruleSet;
46: }
47:
48: /**
49: * Return the Jena Graph Capabilties that the inference graphs generated
50: * by this reasoner are expected to conform to.
51: */
52: public Capabilities getGraphCapabilities() {
53: if (capabilities == null) {
54: capabilities = new BaseInfGraph.InfFindSafeCapabilities();
55: }
56: return capabilities;
57: }
58:
59: }
60:
61: /*
62: (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
63: All rights reserved.
64:
65: Redistribution and use in source and binary forms, with or without
66: modification, are permitted provided that the following conditions
67: are met:
68:
69: 1. Redistributions of source code must retain the above copyright
70: notice, this list of conditions and the following disclaimer.
71:
72: 2. Redistributions in binary form must reproduce the above copyright
73: notice, this list of conditions and the following disclaimer in the
74: documentation and/or other materials provided with the distribution.
75:
76: 3. The name of the author may not be used to endorse or promote products
77: derived from this software without specific prior written permission.
78:
79: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
80: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
81: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
82: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
83: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
84: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
85: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
86: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
87: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
88: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
89: */
|