org.ilrt.inkling.query
Class Squish2SQL

java.lang.Object
  |
  +--org.ilrt.inkling.query.Squish2SQL

public class Squish2SQL
extends java.lang.Object

Converts a Squish query to an SQL query, using a two-table model,
triples (subject,predicate,object) [as ints] and
resources(keyhash,value) [int,varchar]

This code is based on work by Matt Biddulph: http://www.hackdiary.com/


Constructor Summary
Squish2SQL()
           
 
Method Summary
static java.lang.String convert(java.lang.String query)
          basically the main method: takes a parsed query and returns a converted SQL query as a string
static java.lang.String convert(java.lang.String query, boolean prov)
          basically the main method: takes a parsed query and returns a converted SQL query as a string.
static java.lang.String convert(java.util.Vector triples, java.util.Vector variables, java.util.Vector variablesWeWant, java.util.Vector constraints, boolean prov)
          internal conversion method
 java.util.Vector processQueryVariables(java.util.Vector r)
           
static int sha1(java.lang.String sha1)
           
static java.lang.String textFromFile(java.lang.String fn)
           
 java.lang.String triple_sql(java.util.Vector allQueryVariables, java.util.Vector variablesWeWant, java.util.Vector clauses, java.util.Vector constraints, boolean prov)
          This method produces a string SQL query from a minimum of a (full) list of variables (i.e.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Squish2SQL

public Squish2SQL()
Method Detail

triple_sql

public java.lang.String triple_sql(java.util.Vector allQueryVariables,
                                   java.util.Vector variablesWeWant,
                                   java.util.Vector clauses,
                                   java.util.Vector constraints,
                                   boolean prov)
This method produces a string SQL query from a minimum of a (full) list of variables (i.e. not just the ones you want returned (actually this could be a problem)); the variables you actually want a vector of arrays of clauses: each array: (pred, sub, obj). a vector of arrays of constraints (as pseudo triples at the moment (e.g. array is (~ ?y bla)).

processQueryVariables

public java.util.Vector processQueryVariables(java.util.Vector r)

convert

public static java.lang.String convert(java.lang.String query)
basically the main method: takes a parsed query and returns a converted SQL query as a string

convert

public static java.lang.String convert(java.lang.String query,
                                       boolean prov)
basically the main method: takes a parsed query and returns a converted SQL query as a string. prov is a boolean represnting whether provenance is retrieved or not: if so makes it slower and creates duplicate rows so defaults to false

convert

public static java.lang.String convert(java.util.Vector triples,
                                       java.util.Vector variables,
                                       java.util.Vector variablesWeWant,
                                       java.util.Vector constraints,
                                       boolean prov)
internal conversion method

sha1

public static int sha1(java.lang.String sha1)
                throws java.lang.Exception

textFromFile

public static java.lang.String textFromFile(java.lang.String fn)
                                     throws java.lang.Exception