|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object tuffy.mln.MarkovLogicNetwork
public class MarkovLogicNetwork
An MLN. Holds the symbol table.
Field Summary | |
---|---|
private java.util.ArrayList<Predicate> |
clusteringPredicates
|
(package private) java.util.ArrayList<ConjunctiveQuery> |
datalogRules
|
private RDB |
db
The db connection associated with this MLN. |
java.util.HashSet<ConjunctiveQuery> |
dedupalogRules
|
private int |
id
|
private static int |
idGen
|
(package private) java.util.ArrayList<ConjunctiveQuery> |
intermediateRules
|
private java.util.ArrayList<Clause> |
listClauses
List of normalized clauses. |
private java.util.ArrayList<Predicate> |
listPred
List of all predicates appearing in this MLN. |
private java.util.HashMap<java.lang.String,java.lang.Integer> |
mapConstantID
Map from string name to integer constant ID. |
private java.util.Hashtable<java.lang.String,Function> |
nameMapFunc
|
private java.util.Hashtable<java.lang.String,Predicate> |
nameMapPred
Map from string name to Predicate object. |
private java.util.Hashtable<java.lang.String,Type> |
nameMapType
Map from string name to Type object. |
private InputParser |
parser
Parser of input. |
(package private) java.util.ArrayList<ConjunctiveQuery> |
postprocRules
|
java.lang.String |
relAtomPart
|
java.lang.String |
relAtoms
|
java.lang.String |
relClausePart
|
java.lang.String |
relClauses
Database tables storing intermediate data. |
private java.util.HashSet<Clause> |
relevantClauses
List of clauses marked as relevant. |
java.lang.String |
relTrueAtoms
|
private java.util.HashMap<Predicate,java.util.ArrayList<ConjunctiveQuery>> |
scopes
|
private java.util.ArrayList<ConjunctiveQuery> |
scopingRules
|
private java.util.Hashtable<java.lang.String,Clause> |
sigMap
Map from signature of clauses to Clause object. |
private java.util.HashMap<Clause,Clause> |
unnormal2normal
|
java.util.ArrayList<Clause> |
unnormalizedClauses
List of unnormalized clauses. |
Constructor Summary | |
---|---|
MarkovLogicNetwork()
Constructor of MLN. |
Method Summary | |
---|---|
boolean |
applyAllScopes()
Execute all scoping rules |
private void |
applyScopeForPred(Predicate p)
Execute the scoping rules for a predicate |
boolean |
cleanUp()
Clean up temporary data in DB and working dir, including 1) drop schema in PostgreSQL; 2) remove directory. |
java.lang.Object |
clone()
|
void |
closeFiles()
Close all file handles used by each predicate in listPred . |
void |
executeAllDatalogRules()
Execute all Datalog rules |
void |
executeAllIntermediateRules()
|
void |
executeAllPostprocRules()
Execute all Postprocessing rules |
void |
finalizeClauseDefinitions(RDB adb)
Finalize the definitions of all clauses, i.e., prepare the database table used by each clause, including 1) instance table for each clause; 2) SQL needed to ground this clause. |
java.util.ArrayList<ConjunctiveQuery> |
getAllDatalogRules()
|
java.util.ArrayList<Clause> |
getAllNormalizedClauses()
Return all normalized clauses. |
java.util.HashSet<Predicate> |
getAllPred()
Return the set of all predicates. |
java.util.ArrayList<Predicate> |
getAllPredOrderByName()
|
java.util.ArrayList<Clause> |
getAllUnnormalizedClauses()
Return all unnormalized clauses as read from the input file. |
Clause |
getClauseById(int id)
Get the clause object by integer ID. |
RDB |
getDB()
|
Function |
getFunctionByName(java.lang.String name)
Get a function by its name; can be built-in. |
int |
getID()
|
Type |
getOrCreateTypeByName(java.lang.String name)
Return the type of a given name; create if this type does not exist. |
Predicate |
getPredByName(java.lang.String name)
Return the predicate of the given name; null if such predicate does not exist. |
RDB |
getRDB()
Returns the RDB used by this MLN. |
java.util.HashSet<Clause> |
getRelevantClauses()
Returns the set of relevant clauses. |
int |
getSymbolID(java.lang.String symbol,
Type type)
Return assigned ID of a constant symbol. |
boolean |
isScoped(Predicate p)
Test whether a predicate is scoped |
void |
loadEvidences(java.lang.String[] evidFiles)
Parse multiple MLN evidence files. |
void |
loadPrograms(java.lang.String[] progFiles)
Parse multiple MLN program files. |
void |
loadProgramsButNotNormalizeClauses(java.lang.String[] progFiles)
|
void |
loadQueries(java.lang.String[] queryFiles)
Parse multiple MLN query files. |
private void |
materializeAllTypes(RDB adb)
Call materialize() for all types. |
void |
materializeTables()
Stores constants and evidence into database table. |
void |
normalizeClauses()
Normalize all clauses. |
void |
parseQueryCommaList(java.lang.String queryAtoms)
Read in the query atoms provided by the command line. |
void |
prepareDB(RDB adb)
Prepare the database for each predicate and clause. |
void |
registerClause(Clause c)
Registers a new, unnormalized clause. |
void |
registerDatalogRule(ConjunctiveQuery cq)
Add a datalog rule |
void |
registerIntermediateRule(ConjunctiveQuery cq)
|
void |
registerPostprocRule(ConjunctiveQuery cq)
|
void |
registerPred(Predicate p)
Register a new predicate. |
void |
registerScopingRule(ConjunctiveQuery cq)
Add a scoping rule |
void |
setClauseAsRelevant(Clause c)
Marks a clause as relevant. |
void |
setDB(RDB adb)
|
void |
storeAllEvidence()
Store all evidences into the database by flushing the "buffers". |
void |
storeAllQueries()
Ground and store all query atoms. |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static int idGen
private int id
private RDB db
public java.lang.String relClauses
public java.lang.String relAtoms
public java.lang.String relTrueAtoms
public java.lang.String relClausePart
public java.lang.String relAtomPart
private InputParser parser
private java.util.ArrayList<Predicate> listPred
private java.util.Hashtable<java.lang.String,Predicate> nameMapPred
private java.util.Hashtable<java.lang.String,Function> nameMapFunc
private java.util.Hashtable<java.lang.String,Type> nameMapType
private java.util.HashSet<Clause> relevantClauses
private java.util.HashMap<Clause,Clause> unnormal2normal
private java.util.ArrayList<Clause> listClauses
public java.util.ArrayList<Clause> unnormalizedClauses
private java.util.Hashtable<java.lang.String,Clause> sigMap
Clause.normalize()
.
private java.util.HashMap<java.lang.String,java.lang.Integer> mapConstantID
private java.util.HashMap<Predicate,java.util.ArrayList<ConjunctiveQuery>> scopes
private java.util.ArrayList<ConjunctiveQuery> scopingRules
private java.util.ArrayList<Predicate> clusteringPredicates
public java.util.HashSet<ConjunctiveQuery> dedupalogRules
java.util.ArrayList<ConjunctiveQuery> datalogRules
java.util.ArrayList<ConjunctiveQuery> intermediateRules
java.util.ArrayList<ConjunctiveQuery> postprocRules
Constructor Detail |
---|
public MarkovLogicNetwork()
parser
will be
constructed here.
Method Detail |
---|
public RDB getDB()
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
clone
in class java.lang.Object
java.lang.CloneNotSupportedException
public java.util.ArrayList<ConjunctiveQuery> getAllDatalogRules()
public RDB getRDB()
public int getID()
public void setClauseAsRelevant(Clause c)
KBMC.run()
public java.util.HashSet<Clause> getRelevantClauses()
public void registerClause(Clause c)
c
- the clause to be registeredpublic void registerScopingRule(ConjunctiveQuery cq)
cq
- public void registerDatalogRule(ConjunctiveQuery cq)
cq
- public void registerPostprocRule(ConjunctiveQuery cq)
public void registerIntermediateRule(ConjunctiveQuery cq)
public boolean isScoped(Predicate p)
private void applyScopeForPred(Predicate p)
p
- the target predicatepublic void executeAllDatalogRules()
public void executeAllPostprocRules()
public void executeAllIntermediateRules()
public boolean applyAllScopes()
public Clause getClauseById(int id)
id
- ID of wanted clause.public void normalizeClauses()
listClauses
,
then Clause.absorb(Clause)
this new clause. If not
absorbed, this new clause is set an ID sequentially and a name
Clause$id. Predicates in this clause is registered
by Predicate.addRelatedClause(Clause)
.
Clause.normalize()
,
Clause.absorb(Clause)
public void finalizeClauseDefinitions(RDB adb)
public Type getOrCreateTypeByName(java.lang.String name)
private void materializeAllTypes(RDB adb)
Type.storeConstantList(RDB)
public java.util.HashSet<Predicate> getAllPred()
public java.util.ArrayList<Predicate> getAllPredOrderByName()
public void registerPred(Predicate p)
listPred
; 3)
building the map from predicate name to this predicate.
public Predicate getPredByName(java.lang.String name)
public Function getFunctionByName(java.lang.String name)
name
- public java.util.ArrayList<Clause> getAllUnnormalizedClauses()
public java.util.ArrayList<Clause> getAllNormalizedClauses()
public int getSymbolID(java.lang.String symbol, Type type)
public void storeAllQueries()
Predicate.addQuery(Atom)
,
Predicate.groundAndStoreAtom(Atom)
public void storeAllEvidence()
Predicate.getRelName()
in the database.
public void closeFiles()
listPred
.
public void loadPrograms(java.lang.String[] progFiles)
progFiles
- list of MLN program files (in Alchemy format)public void loadProgramsButNotNormalizeClauses(java.lang.String[] progFiles)
public void loadEvidences(java.lang.String[] evidFiles)
GZIPInputStream.GZIPInputStream(InputStream)
).
evidFiles
- list of MLN evidence files (in Alchemy format)public void loadQueries(java.lang.String[] queryFiles)
queryFiles
- list of MLN query files (in Alchemy format)public void parseQueryCommaList(java.lang.String queryAtoms)
public void prepareDB(RDB adb)
Predicate.prepareDB(RDB)
,
finalizeClauseDefinitions(RDB)
public void setDB(RDB adb)
public boolean cleanUp()
public void materializeTables()
materializeAllTypes(RDB)
,
storeAllEvidence()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |