01: package it.unimi.dsi.mg4j.index.cluster;
02:
03: /*
04: * MG4J: Managing Gigabytes for Java
05: *
06: * Copyright (C) 2006-2007 Sebastiano Vigna
07: *
08: * This library is free software; you can redistribute it and/or modify it
09: * under the terms of the GNU Lesser General Public License as published by the Free
10: * Software Foundation; either version 2.1 of the License, or (at your option)
11: * any later version.
12: *
13: * This library is distributed in the hope that it will be useful, but
14: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
16: * for more details.
17: *
18: * You should have received a copy of the GNU Lesser General Public License
19: * along with this program; if not, write to the Free Software
20: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21: *
22: */
23:
24: /** A way to associate a term with a local index out of a given set.
25: *
26: * <p>A {@link LexicalCluster} needs a way to
27: * retrieve, given a term, the corresponding {@linkplain #localIndex(CharSequence) local index}.
28: *
29: * @see it.unimi.dsi.mg4j.index.cluster.LexicalPartitioningStrategy
30: * @author Alessandro Arrabito
31: * @author Sebastiano Vigna
32: */
33:
34: public interface LexicalClusteringStrategy extends ClusteringStrategy {
35:
36: /** Returns the index to which a given term is be mapped by this strategy.
37: *
38: * @param term a term.
39: * @return the corresponding local index, or -1 if no index contains the term.
40: */
41: int localIndex(CharSequence term);
42:
43: /** Returns the global term number given a local index and a local term number (optional operation).
44: *
45: * <p>This operation is not, in general, necessary for a {@link LexicalCluster}
46: * to work, as no action on a local index returns local numbers. It is defined here
47: * mainly for completeness and for debugging purposes (in case it is implemented).
48: *
49: * @param localIndex the local index.
50: * @param localNumber the local term number.
51: * @return the global term number.
52: */
53: int globalNumber(final int localIndex, final int localNumber);
54: }
|