dstruct
Class FelixQuery

java.lang.Object
  extended by dstruct.FelixQuery

public class FelixQuery
extends java.lang.Object

An object of FelixQuery consists of program, query and evidence from inputs.

Author:
Ce Zhang

Field Summary
(package private)  java.util.ArrayList<FelixClause> clauses
          All input clauses.
(package private)  java.util.ArrayList<mln.ConjunctiveQuery> datalogRules
          All input datalog rules
private  java.util.HashMap<java.lang.String,java.lang.Integer> mapConstantID
          Map from constant to constant ID.
private  java.util.Hashtable<java.lang.String,mln.Function> nameMapFunc
          Map from function's name to function.
(package private)  java.util.HashMap<java.lang.String,FelixPredicate> nameMapPred
          Map from predicate's name to predicate.
private  java.util.Hashtable<java.lang.String,mln.Type> nameMapType
          Map from type's name to type.
(package private)  FelixInputParser parser
          The parser used to parse the input.
(package private)  java.util.ArrayList<FelixPredicate> predicates
          All input predicates.
(package private)  java.util.ArrayList<mln.ConjunctiveQuery> scopingRules
          All input scoping rules
 
Constructor Summary
FelixQuery()
           
 
Method Summary
 int addConstant(java.lang.String symbol)
          Add a constant to FelixQuery.
 void addDatalogRule(mln.ConjunctiveQuery dr)
          Add a Datalog rule to FelixQuery.
 void addFelixClause(FelixClause fc)
          Add a clause to FelixQuery.
 void addFelixPredicate(FelixPredicate fp)
          Add a predicate to FelixQuery.
 void addScopingRule(mln.ConjunctiveQuery sr)
          Add a scoping rule to FelixQuery.
 void closeFiles()
          Close all predicate's loadingFile.
 void executeAllDatalogRules(db.RDB db)
          Execute add Datalog rules.
 java.util.HashSet<FelixClause> getAllClause()
          Get all clauses in this FelixQuery.
 java.util.HashSet<FelixPredicate> getAllOpenPred()
          Get all predicates which are open in this FelixQuery.
 java.util.HashSet<FelixPredicate> getAllPred()
          Get all predicates in this FelixQuery.
 mln.Function getFunctionByName(java.lang.String name)
          Get function by name.
 mln.Type getOrCreateTypeByName(java.lang.String name)
          Get or create type by name.
 FelixPredicate getPredByName(java.lang.String name)
          Get predicate by name.
 java.util.ArrayList<mln.ConjunctiveQuery> getScopingRules()
          Get all scoping rules.
 int getSymbolID(java.lang.String symbol, mln.Type type)
          Get or add (if not exists) a symbol to a type's constant table.
 void loadEvidences(java.lang.String[] evidFiles)
          Load MLN evidences.
 void loadPrograms(java.lang.String[] progFiles)
          Load MLN programs.
 void loadQueries(java.lang.String[] queryFiles)
          Load MLN queries.
 void materializeTables(db.RDB db)
          Materialize database tables.
 void parseQueryCommaList(java.lang.String queryAtoms)
          Load MLN queries specified by command lines.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

clauses

java.util.ArrayList<FelixClause> clauses
All input clauses.


predicates

java.util.ArrayList<FelixPredicate> predicates
All input predicates.


scopingRules

java.util.ArrayList<mln.ConjunctiveQuery> scopingRules
All input scoping rules


datalogRules

java.util.ArrayList<mln.ConjunctiveQuery> datalogRules
All input datalog rules


nameMapPred

java.util.HashMap<java.lang.String,FelixPredicate> nameMapPred
Map from predicate's name to predicate.


nameMapType

private java.util.Hashtable<java.lang.String,mln.Type> nameMapType
Map from type's name to type.


nameMapFunc

private java.util.Hashtable<java.lang.String,mln.Function> nameMapFunc
Map from function's name to function.


mapConstantID

private java.util.HashMap<java.lang.String,java.lang.Integer> mapConstantID
Map from constant to constant ID.


parser

FelixInputParser parser
The parser used to parse the input.

Constructor Detail

FelixQuery

public FelixQuery()
Method Detail

addFelixClause

public void addFelixClause(FelixClause fc)
Add a clause to FelixQuery.

Parameters:
fc -

addFelixPredicate

public void addFelixPredicate(FelixPredicate fp)
Add a predicate to FelixQuery.

Parameters:
fp -

getScopingRules

public java.util.ArrayList<mln.ConjunctiveQuery> getScopingRules()
Get all scoping rules.

Returns:

addScopingRule

public void addScopingRule(mln.ConjunctiveQuery sr)
Add a scoping rule to FelixQuery.

Parameters:
sr -

addDatalogRule

public void addDatalogRule(mln.ConjunctiveQuery dr)
Add a Datalog rule to FelixQuery.

Parameters:
dr -

getPredByName

public FelixPredicate getPredByName(java.lang.String name)
Get predicate by name.

Parameters:
name -
Returns:

getOrCreateTypeByName

public mln.Type getOrCreateTypeByName(java.lang.String name)
Get or create type by name.

Parameters:
name -
Returns:

getFunctionByName

public mln.Function getFunctionByName(java.lang.String name)
Get function by name.

Parameters:
name -
Returns:

addConstant

public int addConstant(java.lang.String symbol)
Add a constant to FelixQuery.

Parameters:
symbol -
Returns:

getSymbolID

public int getSymbolID(java.lang.String symbol,
                       mln.Type type)
Get or add (if not exists) a symbol to a type's constant table.

Parameters:
symbol -
type -
Returns:

loadPrograms

public void loadPrograms(java.lang.String[] progFiles)
Load MLN programs.

Parameters:
progFiles -

loadQueries

public void loadQueries(java.lang.String[] queryFiles)
Load MLN queries.

Parameters:
queryFiles -

parseQueryCommaList

public void parseQueryCommaList(java.lang.String queryAtoms)
Load MLN queries specified by command lines.

Parameters:
queryAtoms -

closeFiles

public void closeFiles()
Close all predicate's loadingFile.


getAllPred

public java.util.HashSet<FelixPredicate> getAllPred()
Get all predicates in this FelixQuery.

Returns:

getAllOpenPred

public java.util.HashSet<FelixPredicate> getAllOpenPred()
Get all predicates which are open in this FelixQuery.

Returns:

getAllClause

public java.util.HashSet<FelixClause> getAllClause()
Get all clauses in this FelixQuery.

Returns:

loadEvidences

public void loadEvidences(java.lang.String[] evidFiles)
Load MLN evidences.

Parameters:
evidFiles -

materializeTables

public void materializeTables(db.RDB db)
Materialize database tables.

Parameters:
db -

executeAllDatalogRules

public void executeAllDatalogRules(db.RDB db)
Execute add Datalog rules.

Parameters:
db -