tuffy.ground
Class KBMC

java.lang.Object
  extended by tuffy.ground.KBMC

public class KBMC
extends java.lang.Object

"Syntactic" Knowledge Base Model Constructor. Analyze the query and the MLN rules to identify relevant atoms that need to be grounded to answer the query. Here KBMC only materialize relevant portion of predicate tables, while further refinement of active set of predicates and grounding of clauses are left to class Grounding.


Nested Class Summary
private static class KBMC.AtomCutSet
          AtomCutSet is set of atoms with the same predicate.
 
Field Summary
 java.util.HashSet<Clause> allowedClauses
           
private  MarkovLogicNetwork mln
          MLN used in this KBMC.
 
Constructor Summary
KBMC(MarkovLogicNetwork mln)
          Constructor of KBMC.
 
Method Summary
 void run()
          Run KBMC to identify and materialize relevant groundings of predicates.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mln

private MarkovLogicNetwork mln
MLN used in this KBMC.


allowedClauses

public java.util.HashSet<Clause> allowedClauses
Constructor Detail

KBMC

public KBMC(MarkovLogicNetwork mln)
Constructor of KBMC.

Parameters:
mln - MLN used in this KBMC.
Method Detail

run

public void run()
Run KBMC to identify and materialize relevant groundings of predicates. Here the relevant atoms needed to be grounded is determined as follows. One atom may be potentially relevant if it is in a clause $c$ that contains a literal $a$ that has the same predicate as another potentially relevant tuple $b$. If $a$ and this predicate $b$ has MGU $m$, substituting this atom with $m$ will obtain tuple that is potentially relevant. Recursively do this until no potentially relevant tuples are generated according current set of potentially relevant tuples. Here $m$'s role is providing restrictions on possible groundings. Only ground a set of tuples, s.t., 1) $\forall$ tuple $a$, $b$ in this set, $a$ does not subsume $b$; and 2) $\forall$ tuple $c$ that is potentially relevant, there exists tuple $a$ in this set, that $a$ subsumes $c$. Note that, grounding both $a$ and $b$ when $a$ subsumes $b$ is not necessary, because the grounding results of $a$ will include $b$.