weka.experiment
Class InstanceQuery

java.lang.Object
  extended byweka.experiment.DatabaseUtils
      extended byweka.experiment.InstanceQuery
All Implemented Interfaces:
OptionHandler, java.io.Serializable

public class InstanceQuery
extends DatabaseUtils
implements OptionHandler

Convert the results of a database query into instances. The jdbc driver and database to be used default to "jdbc.idbDriver" and "jdbc:idb=experiments.prp". These may be changed by creating a java properties file called DatabaseUtils.props in user.home or the current directory. eg:

 jdbcDriver=jdbc.idbDriver
 jdbcURL=jdbc:idb=experiments.prp
 

Command line use just outputs the instances to System.out.

Version:
$Revision: 1.15 $
Author:
Len Trigg (trigg@cs.waikato.ac.nz)
See Also:
Serialized Form

Field Summary
(package private)  boolean m_CreateSparseData
          Determines whether sparse data is created
(package private)  java.lang.String m_Query
          Query to execute
 
Fields inherited from class weka.experiment.DatabaseUtils
BOOL, BYTE, DATE, DOUBLE, DRIVERS, EXP_INDEX_TABLE, EXP_RESULT_COL, EXP_RESULT_PREFIX, EXP_SETUP_COL, EXP_TYPE_COL, FLOAT, INTEGER, LONG, m_checkForUpperCaseNames, m_Connection, m_createIndex, m_DatabaseURL, m_Debug, m_doubleType, m_intType, m_password, m_PreparedStatement, m_setAutoCommit, m_stringType, m_userName, PROPERTIES, PROPERTY_FILE, SHORT, STRING
 
Constructor Summary
InstanceQuery()
          Sets up the database drivers
 
Method Summary
 java.lang.String[] getOptions()
          Gets the current settings of InstanceQuery
 java.lang.String getQuery()
          Get the query to execute against the database
 boolean getSparseData()
          Gets whether data is to be returned as a set of sparse instances
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options
static void main(java.lang.String[] args)
          Test the class from the command line.
 java.lang.String queryTipText()
          Returns the tip text for this property
 Instances retrieveInstances()
          Makes a database query using the query set through the -Q option to convert a table into a set of instances
 Instances retrieveInstances(java.lang.String query)
          Makes a database query to convert a table into a set of instances
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 void setQuery(java.lang.String q)
          Set the query to execute against the database
 void setSparseData(boolean s)
          Sets whether data should be encoded as sparse instances
 java.lang.String sparseDataTipText()
          Returns the tip text for this property
 
Methods inherited from class weka.experiment.DatabaseUtils
arrayToString, attributeCaseFix, connectToDatabase, createExperimentIndex, createExperimentIndexEntry, createResultsTable, databaseURLTipText, disconnectFromDatabase, execute, experimentIndexExists, getDatabaseURL, getPassword, getResultFromTable, getResultSet, getResultsTableName, getUsername, isConnected, isKeyInTable, putResultInTable, setDatabaseURL, setPassword, setUsername, tableExists, translateDBColumnType, typeName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_CreateSparseData

boolean m_CreateSparseData
Determines whether sparse data is created


m_Query

java.lang.String m_Query
Query to execute

Constructor Detail

InstanceQuery

public InstanceQuery()
              throws java.lang.Exception
Sets up the database drivers

Throws:
java.lang.Exception - if an error occurs
Method Detail

listOptions

public java.util.Enumeration listOptions()
Returns an enumeration describing the available options

Specified by:
listOptions in interface OptionHandler
Returns:
an enumeration of all available options.

setOptions

public void setOptions(java.lang.String[] options)
                throws java.lang.Exception
Parses a given list of options. Valid options are:

-S
Return a set of sparse instances rather than normal instances.

Specified by:
setOptions in interface OptionHandler
Parameters:
options - the list of options as an array of strings
Throws:
java.lang.Exception - if an option is not supported

queryTipText

public java.lang.String queryTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

setQuery

public void setQuery(java.lang.String q)
Set the query to execute against the database

Parameters:
q - the query to execute

getQuery

public java.lang.String getQuery()
Get the query to execute against the database

Returns:
the query

sparseDataTipText

public java.lang.String sparseDataTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

setSparseData

public void setSparseData(boolean s)
Sets whether data should be encoded as sparse instances

Parameters:
s - true if data should be encoded as a set of sparse instances

getSparseData

public boolean getSparseData()
Gets whether data is to be returned as a set of sparse instances

Returns:
true if data is to be encoded as sparse instances

getOptions

public java.lang.String[] getOptions()
Gets the current settings of InstanceQuery

Specified by:
getOptions in interface OptionHandler
Returns:
an array of strings suitable for passing to setOptions()

retrieveInstances

public Instances retrieveInstances()
                            throws java.lang.Exception
Makes a database query using the query set through the -Q option to convert a table into a set of instances

Returns:
the instances contained in the result of the query
Throws:
java.lang.Exception - if an error occurs

retrieveInstances

public Instances retrieveInstances(java.lang.String query)
                            throws java.lang.Exception
Makes a database query to convert a table into a set of instances

Parameters:
query - the query to convert to instances
Returns:
the instances contained in the result of the query
Throws:
java.lang.Exception - if an error occurs

main

public static void main(java.lang.String[] args)
Test the class from the command line. The instance query should be specified with -Q sql_query

Parameters:
args - contains options for the instance query