01: /******************************************************************
02: * File: Finder.java
03: * Created by: Dave Reynolds
04: * Created on: 18-Jan-03
05: *
06: * (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
07: * [See end of file]
08: * $Id: Finder.java,v 1.10 2008/01/02 12:07:00 andy_seaborne Exp $
09: *****************************************************************/package com.hp.hpl.jena.reasoner;
10:
11: import com.hp.hpl.jena.util.iterator.ExtendedIterator;
12:
13: /**
14: * Minimal interface for preforming simple pattern find operations.
15: * Should be implemented by reasoners, caches and related datastructures.
16: *
17: * @author <a href="mailto:der@hplb.hpl.hp.com">Dave Reynolds</a>
18: * @version $Revision: 1.10 $ on $Date: 2008/01/02 12:07:00 $
19: */
20: public interface Finder {
21:
22: /**
23: * Basic pattern lookup interface.
24: * @param pattern a TriplePattern to be matched against the data
25: * @return a ClosableIterator over all Triples in the data set
26: * that match the pattern
27: */
28: public ExtendedIterator find(TriplePattern pattern);
29:
30: /**
31: * Extended find interface used in situations where the implementator
32: * may or may not be able to answer the complete query. It will
33: * attempt to answer the pattern but if its answers are not known
34: * to be complete then it will also pass the request on to the nested
35: * Finder to append more results.
36: * @param pattern a TriplePattern to be matched against the data
37: * @param continuation either a Finder or a normal Graph which
38: * will be asked for additional match results if the implementor
39: * may not have completely satisfied the query.
40: */
41: public ExtendedIterator findWithContinuation(TriplePattern pattern,
42: Finder continuation);
43:
44: /**
45: * Return true if the given pattern occurs somewhere in the find sequence.
46: */
47: public boolean contains(TriplePattern pattern);
48:
49: }
50:
51: /*
52: (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
53: All rights reserved.
54:
55: Redistribution and use in source and binary forms, with or without
56: modification, are permitted provided that the following conditions
57: are met:
58:
59: 1. Redistributions of source code must retain the above copyright
60: notice, this list of conditions and the following disclaimer.
61:
62: 2. Redistributions in binary form must reproduce the above copyright
63: notice, this list of conditions and the following disclaimer in the
64: documentation and/or other materials provided with the distribution.
65:
66: 3. The name of the author may not be used to endorse or promote products
67: derived from this software without specific prior written permission.
68:
69: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
70: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
71: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
72: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
73: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
74: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
75: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
76: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
77: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
78: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
79: */
|