01: /*
02: * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2007.
03: *
04: * Licensed under the Aduna BSD-style license.
05: */
06: package org.openrdf.sail.inferencer;
07:
08: import org.openrdf.model.Resource;
09: import org.openrdf.model.URI;
10: import org.openrdf.model.Value;
11: import org.openrdf.sail.SailConnection;
12: import org.openrdf.sail.SailConnectionListener;
13: import org.openrdf.sail.SailException;
14:
15: /**
16: * An extension of the {@link SailConnection} interface offering methods that
17: * can be used by inferencers to store and remove inferred statements.
18: */
19: public interface InferencerConnection extends SailConnection {
20:
21: /**
22: * Adds an inferred statement to a specific context.
23: *
24: * @param subj
25: * The subject of the statement to add.
26: * @param pred
27: * The predicate of the statement to add.
28: * @param obj
29: * The object of the statement to add.
30: * @param context
31: * A resource identifying the named context to add the statement to,
32: * or <tt>null</tt> to add the statement to the null context.
33: * @throws SailException
34: * If the statement could not be added.
35: */
36: // FIXME: remove boolean result value to enable batch-wise processing
37: public boolean addInferredStatement(Resource subj, URI pred,
38: Value obj, Resource... contexts) throws SailException;
39:
40: /**
41: * Removes an inferred statement from a specific context.
42: *
43: * @param subj
44: * The subject of the statement that should be removed.
45: * @param pred
46: * The predicate of the statement that should be removed.
47: * @param obj
48: * The object of the statement that should be removed.
49: * @param context
50: * A resource identifying the named context to remove the statement
51: * from, or <tt>null</tt> to remove the statement from the null
52: * context.
53: * @throws SailException
54: * If the statement could not be removed.
55: */
56: // FIXME: remove boolean result value to enable batch-wise processing
57: public boolean removeInferredStatement(Resource subj, URI pred,
58: Value obj, Resource... contexts) throws SailException;
59:
60: /**
61: * Removes all inferred statements from the specified/all contexts. If no
62: * contexts are specified the method operates on the entire repository.
63: *
64: * @param contexts
65: * The context(s) from which to remove the statements. Note that this
66: * parameter is a vararg and as such is optional. If no contexts are
67: * supplied the method operates on the entire repository.
68: * @throws SailException
69: * If the statements could not be removed.
70: */
71: public void clearInferred(Resource... contexts)
72: throws SailException;
73:
74: /**
75: * Flushes any pending updates to be processed and the resulting changes to
76: * be reported to registered {@link SailConnectionListener}s.
77: *
78: * @throws SailException
79: * If the updates could not be processed.
80: */
81: public void flushUpdates() throws SailException;
82: }
|