public class ClauseBody
extends java.lang.Object
implements java.io.Serializable, java.util.Comparator
Modifier and Type | Class and Description |
---|---|
static class |
ClauseBody.StringObj
A Utility class, designed to hold a string value and behave like a String;
the one difference being that 2 StringObjs with the same String value
are equivalent, but not equal.
|
Modifier and Type | Field and Description |
---|---|
static java.util.ArrayList<java.lang.Object> |
arg0Females |
static java.lang.String[] |
arg0Gals |
static java.lang.String[] |
arg0Guys |
static java.util.ArrayList<java.lang.Object> |
arg0Males |
java.util.ArrayList<java.lang.Object> |
body
body is an ArrayList<Object>> of literals that make up the Right Hand Side of a Horn Clause. |
static int |
distanceLimit |
java.util.ArrayList<java.lang.Object> |
duplications
body is an ArrayList<Object>> of literals that make up the Right Hand Side of a Horn Clause. |
static int |
dups |
static int |
dupTotal |
static java.util.ArrayList<java.lang.Object> |
exemptPreds |
static java.lang.String[] |
exempts |
java.util.ArrayList<java.lang.Object> |
expansionPath
body is an ArrayList<Object>> of literals that make up the Right Hand Side of a Horn Clause. |
java.util.ArrayList<java.lang.Object> |
flags
Contains all flags (strings within square brackets) found in the clauseBody during parsing.
|
KinTermDef |
ktd
ktd points to the enclosing KinTerm Definition.
|
static java.lang.String |
priorPred |
boolean |
recursive
During Example-Generation, this becomes true if recursion is encountered while
interpreting this clause.
|
static int |
seq |
static int |
seqTotal |
static java.lang.String[] |
yan |
static java.util.ArrayList<java.lang.Object> |
yang |
static java.lang.String[] |
yin |
static java.util.ArrayList<java.lang.Object> |
ying |
Modifier and Type | Method and Description |
---|---|
void |
absorbPCStringsOf(ClauseBody cb2) |
void |
addIfNotPresent(Literal newLit,
java.util.ArrayList<java.lang.Object> newBody,
java.util.TreeMap knownGenders,
java.util.TreeMap knownGenderAddns) |
void |
addLiteral(Literal lit)
Add this Literal to the body of this ClauseBody.
|
boolean |
allArgsBound(Literal model,
java.util.ArrayList<java.lang.Object> boundVars) |
boolean |
almostUnifies(java.util.ArrayList<java.lang.Object> aBody,
java.util.ArrayList<java.lang.Object> bBody,
java.util.ArrayList<java.lang.Object> boundVars,
java.util.ArrayList<java.lang.Object> oldNames,
java.util.ArrayList<java.lang.Object> newNames,
java.util.ArrayList<java.lang.Object> misMatches,
Counter maxMisses,
ClauseBody other) |
boolean |
argsFound(java.util.ArrayList<java.lang.Object> argList,
java.util.ArrayList<java.lang.Object> boundVars,
Literal model,
boolean fullMatchRequired) |
java.util.ArrayList<java.lang.Object> |
argsIn(java.util.ArrayList<java.lang.Object> pcString) |
void |
assignArgNames(Context ctxt) |
java.lang.String[] |
bindFamily(java.lang.String candiStr) |
ClauseBody |
canonicalizePreds(ClauseBody cb) |
void |
checkValidity(Literal lit) |
void |
clearPriorValues() |
void |
clearPriorValues(Literal lit) |
java.lang.String |
combineSibPred(java.util.ArrayList<java.lang.Object> candidates,
java.util.ArrayList<java.lang.Object> pcString) |
int |
compare(java.lang.Object o1,
java.lang.Object o2) |
ClauseBody.StringObj |
confirmCouple(java.lang.String par1,
java.lang.String par2,
java.util.ArrayList<java.lang.Object> searchSet) |
ClauseBody.StringObj |
confirmKid(java.lang.String par1,
java.lang.String par2,
java.lang.String kid,
java.util.ArrayList<java.lang.Object> searchSet) |
boolean |
containsConstraints(java.util.ArrayList<java.lang.Object> lits) |
boolean |
containsInt(int[] defNmbrs,
int cbSeqNmbr) |
boolean |
containsUDPs() |
boolean |
containsUDPs(java.util.ArrayList<java.lang.Object> body) |
ClauseBody |
copy()
Make a shallow copy of this ClauseBody.
|
ClauseBody |
deepCopy()
Make a deep copy of this ClauseBody.
|
void |
eliminateReflections(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> preds) |
boolean |
equals(java.lang.Object obj) |
void |
expand(Context hypo,
java.util.ArrayList<java.lang.Object> expandedDefs,
java.lang.String kinTerm,
int index)
Expand this ClauseBody into one or more ClauseBodies that contain only predicates that
are members of (@link PrimitiveCategory), and place them in
expandedDefs . |
int |
famPred(ClauseBody.StringObj strObj) |
int |
famPred(java.lang.String candiStr) |
void |
fillInNames(Individual ego,
java.lang.String kinTerm)
Do a depth-first walk of any portion of the family tree for Ego (found in Context
hypo )
that satisfies the definition in this ClauseBody. |
void |
findAuxPreds(java.util.ArrayList<java.lang.Object> auxPreds) |
Literal |
findComplement(Literal aLit,
java.util.ArrayList<java.lang.Object> aBody,
java.util.ArrayList<java.lang.Object> bBody,
java.util.ArrayList<java.lang.Object> boundVars,
java.util.ArrayList<java.lang.Object> oldNames,
java.util.ArrayList<java.lang.Object> newNames) |
java.lang.String |
findGapFiller(java.lang.String solo,
java.util.ArrayList<java.lang.Object> original,
java.util.ArrayList<java.lang.Object> singles,
java.util.ArrayList<java.lang.Object> allArgs) |
ClauseBody.StringObj |
findKid2(java.lang.String par1,
java.lang.String par2,
java.lang.String kid1,
java.util.ArrayList<java.lang.Object> searchSet) |
java.lang.String |
findKidOf2Pars(java.lang.String par1,
java.lang.String par2,
java.util.ArrayList<java.lang.Object> searchSet,
java.util.ArrayList<java.lang.Object> foundSet) |
ClauseBody.StringObj |
findOtherParent(java.lang.String par1,
java.lang.String kid1,
java.util.ArrayList<java.lang.Object> searchSet) |
java.lang.String[] |
findParents(java.lang.String ego,
java.util.ArrayList<java.lang.Object> pcString) |
ClauseBody.StringObj |
findSpouse3(java.lang.String par1,
java.lang.String par2,
java.util.ArrayList<java.lang.Object> searchSet) |
ClauseBody.StringObj |
findSpouse4(java.lang.String par1,
java.lang.String par2,
java.util.ArrayList<java.lang.Object> searchSet) |
java.lang.String |
findStepPar(java.lang.String ego,
java.util.ArrayList<java.lang.Object> pcString) |
void |
genderize(Literal lit,
java.lang.String arg0Sex,
boolean swap) |
void |
generateExamples(Context hypo,
java.util.ArrayList<java.lang.Object> egoBag,
Dyad dyad,
Oracle orca)
Generate hypothetical people who have the relationship described in this ClauseBody.
|
static java.lang.String |
generify(java.util.ArrayList<java.lang.String> symbols)
Convert a list of gender-specific predicates to a gender-neutral ones.
|
static java.lang.String |
generify(java.lang.String symb)
Convert a gender-specific predicate to a gender-neutral one.
|
java.util.TreeMap |
getExpCBs() |
void |
getGenderInfo(java.util.TreeMap knownGenders,
java.util.TreeMap personToVarMap,
java.util.TreeMap unequals,
java.util.TreeMap oppoSex) |
void |
globalReplace(java.util.ArrayList<java.lang.Object> eqLst,
java.util.ArrayList<java.lang.Object> target) |
boolean |
illegalString(java.lang.String pcString) |
boolean |
inferGendersFromVarVals(ClauseBody cb,
java.util.ArrayList<java.lang.Object> newBody,
java.util.TreeMap knownGenders,
java.util.TreeMap genderVarVals,
java.util.TreeMap personToVarMap,
java.util.TreeMap unequals) |
boolean |
inferOppoSexParents(java.util.ArrayList<java.lang.Object> newBody,
java.util.TreeMap oppoSex,
java.util.TreeMap knownGenders,
java.util.TreeMap personToVarMap,
java.util.TreeMap genderVarVals) |
boolean |
inferVarValsFromGenders(ClauseBody cb,
java.util.ArrayList<java.lang.Object> newBody,
java.util.TreeMap knownGenders,
java.util.TreeMap genderVarVals,
java.util.TreeMap personToVarMap,
java.util.TreeMap unequals,
java.util.TreeMap oppoSex) |
boolean |
invalid() |
boolean |
isEquivalent(ClauseBody other) |
boolean |
isExpansionOf(ClauseBody original) |
java.lang.String |
kid2pred(java.lang.String candiStr,
int typ) |
boolean |
knownNeuter() |
int |
lateralCount()
Return an integer equal to the distance (in generations) between the highest-level
linking kinsman and the lower of (Ego, Alter).
|
java.lang.String |
lineBreaker(java.util.ArrayList<java.lang.Object> runOn)
Return a string with line-breaks every 80 - 100 characters.
|
boolean |
linkerHasOtherRoles(java.lang.String linker,
java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> candidates) |
static java.util.ArrayList<java.lang.Object> |
loadExempt() |
static java.util.ArrayList<java.lang.Object> |
loadFemales() |
static java.util.ArrayList<java.lang.Object> |
loadMales() |
static java.util.ArrayList<java.lang.Object> |
loadYang() |
static java.util.ArrayList<java.lang.Object> |
loadYing() |
boolean |
logicalChain(java.lang.String ego,
java.lang.String alter,
java.util.ArrayList<java.lang.Object> pcString,
java.util.ArrayList<java.lang.Object> original) |
ClauseBody |
makeGenderTwin() |
void |
makeNormalPrimitive() |
java.lang.String |
makePCString(Individual ego,
Individual alter) |
void |
makeSuperPrimitive(ClauseBody newCB,
java.util.ArrayList<java.lang.Object> newBody,
java.util.TreeMap knownGenders,
java.util.TreeMap personToVarMap,
java.util.TreeMap unequals,
java.util.TreeMap oppoSex) |
int |
maxLevel(java.util.TreeMap bindings) |
java.util.ArrayList<java.lang.Object> |
pcStringReduction(java.util.ArrayList<java.lang.Object> pcStr,
java.lang.String ego,
java.lang.String alter,
boolean ignoreError) |
Literal |
pop(java.util.ArrayList<java.lang.Object> bodyCopy,
java.util.ArrayList<java.lang.Object> starStuff,
java.util.TreeMap bindings,
java.lang.String kinTerm)
Return the next logical literal in
bodyCopy ; used in Example-Generation. |
void |
postBinding(java.util.TreeMap bindings,
ClauseBody.StringObj lit) |
void |
postToBaseSigString() |
void |
reassignArgNames_NewFront(Context ctxt) |
void |
reassignArgNames(Context ctxt) |
void |
reduceBroSisEtc(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> sibPreds,
java.util.ArrayList<java.lang.Object> pcString,
java.lang.String ego) |
void |
reduceFullSiblings(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> famPreds,
java.lang.String ego) |
void |
reduceHalfSiblings1(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> famPreds,
java.lang.String ego) |
void |
reduceHalfSiblings2(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> famPreds,
java.lang.String ego) |
void |
reduceIndirectRefs(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> preds) |
void |
reduceStepChildren(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> famPreds,
java.lang.String egoNum) |
void |
reduceStepChildren2(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> famPreds,
java.lang.String egoNum) |
void |
reduceStepParents(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> famPreds,
java.lang.String ego) |
void |
reduceStepSiblings(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> famPreds,
java.lang.String ego) |
void |
reduceStepSiblings2(java.util.ArrayList<java.lang.Object> pcStrCopy,
java.util.ArrayList<java.lang.Object> famPreds,
java.lang.String ego) |
void |
reFormLit(Literal lit,
java.util.ArrayList<java.lang.Object> newBody,
java.util.TreeMap knownGenders,
java.util.ArrayList<java.lang.Object> boundVars,
java.util.ArrayList<java.lang.Object> gendersUsed) |
boolean |
repairGap(java.lang.String ego,
java.lang.String alter,
java.util.ArrayList<java.lang.Object> singles,
java.util.ArrayList<java.lang.Object> pcString,
java.util.ArrayList<java.lang.Object> original) |
void |
resetCounters() |
void |
resetNodes(Individual ego,
boolean adr) |
boolean |
rightOrder(java.util.ArrayList<java.lang.Object> argList,
Argument arg,
int which,
java.lang.String predNam) |
void |
setLevel(Literal lit,
java.util.TreeMap bindings) |
void |
sortSigString() |
java.lang.String |
stepPred(java.lang.String candiStr) |
java.lang.String |
strArg0(java.lang.String candiStr) |
java.lang.String |
strArg0(java.lang.String candiStr,
boolean special) |
java.lang.String |
strArg1(java.lang.String candiStr) |
static java.lang.String |
structStr(java.lang.String pcStr) |
void |
subArgNames(java.lang.String newNam,
java.lang.String oldNam,
java.util.ArrayList<java.lang.Object> body1,
java.util.ArrayList<java.lang.Object> body2,
java.util.ArrayList<java.lang.Object> oldNames,
java.util.ArrayList<java.lang.Object> newNames) |
static java.lang.String |
sumStr(java.util.ArrayList<java.lang.Object> pcStr) |
void |
swapArgs(Literal lit) |
java.lang.String |
toString()
Create a string representing this Horn Clause, in loose Prolog syntax.
|
java.lang.String |
toThyString()
Create a string representing this Horn Clause, in strict Prolog syntax.
|
boolean |
unifiesWith(ClauseBody other,
java.util.ArrayList<java.lang.Object> boundVars,
java.util.ArrayList<java.lang.Object> oldNames,
java.util.ArrayList<java.lang.Object> newNames) |
void |
unifyVariables()
If this ClauseBody's literals contain multiple references to a single
variable X, make sure that all references to X point to the same
Variable object. |
Literal |
uniPop(java.util.ArrayList<java.lang.Object> bodyCopy,
java.util.ArrayList<java.lang.Object> boundVars,
Literal model) |
void |
valRemover(java.util.ArrayList<java.lang.Object> literals,
java.util.ArrayList<java.lang.Object> argBag) |
void |
withdrawGenderPreds(java.util.ArrayList<java.lang.Object> newBody,
java.util.TreeMap personToVarMap,
java.util.TreeMap knownGenders) |
void |
withdrawInequalPred(java.lang.String genderVar,
java.lang.String oppVar,
java.util.ArrayList<java.lang.Object> newBody) |
public static int seq
public static int seqTotal
public static int dups
public static int dupTotal
public static java.lang.String priorPred
public static int distanceLimit
public static java.lang.String[] arg0Guys
public static java.lang.String[] arg0Gals
public static java.lang.String[] exempts
public static java.lang.String[] yin
public static java.lang.String[] yan
public static java.util.ArrayList<java.lang.Object> arg0Males
public static java.util.ArrayList<java.lang.Object> arg0Females
public static java.util.ArrayList<java.lang.Object> exemptPreds
public static java.util.ArrayList<java.lang.Object> ying
public static java.util.ArrayList<java.lang.Object> yang
public java.util.ArrayList<java.lang.Object> body
body
is an ArrayList<Object>> of literals that make up the Right Hand Side of a Horn Clause.
expansionPath
is an ArrayList<Object> of strings that document the sequence of cultural
kinTerms that were expanded into their all-Primitive meanings in the course of expanding THIS
ClauseBody into its all-Primitive form.public java.util.ArrayList<java.lang.Object> expansionPath
body
is an ArrayList<Object>> of literals that make up the Right Hand Side of a Horn Clause.
expansionPath
is an ArrayList<Object> of strings that document the sequence of cultural
kinTerms that were expanded into their all-Primitive meanings in the course of expanding THIS
ClauseBody into its all-Primitive form.public java.util.ArrayList<java.lang.Object> duplications
body
is an ArrayList<Object>> of literals that make up the Right Hand Side of a Horn Clause.
expansionPath
is an ArrayList<Object> of strings that document the sequence of cultural
kinTerms that were expanded into their all-Primitive meanings in the course of expanding THIS
ClauseBody into its all-Primitive form.public KinTermDef ktd
public boolean recursive
public java.util.ArrayList<java.lang.Object> flags
public static java.util.ArrayList<java.lang.Object> loadMales()
public static java.util.ArrayList<java.lang.Object> loadFemales()
public static java.util.ArrayList<java.lang.Object> loadExempt()
public static java.util.ArrayList<java.lang.Object> loadYing()
public static java.util.ArrayList<java.lang.Object> loadYang()
public ClauseBody copy()
public ClauseBody deepCopy()
public void clearPriorValues()
public void clearPriorValues(Literal lit)
public void addLiteral(Literal lit)
lit
- the Literal to be added to the body.public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toThyString() throws KSInternalErrorException
KSInternalErrorException
public void expand(Context hypo, java.util.ArrayList<java.lang.Object> expandedDefs, java.lang.String kinTerm, int index) throws KSBadHornClauseException, KSInternalErrorException
expandedDefs
.
For example, assume the current domain theory contains the following definition:
| daughter(Alter,Ego).fee(Alter,Ego) :- son(Alter,Ego).
that is: Alter is my 'fee' if he is either my 'son' or my 'daughter'. If this ClauseBody
contains the literal fee(X,Y)
then it will be expanded into 2 ClauseBodies;
one will contain the "son" definition and one will contain the "daughter" definition.
Both of them (after all literals have been expanded) will be stored in the expandedDefs
for the current KinTermDef.
hypo
- the current context.expandedDefs
- the location where completed expansions will be stored.kinTerm
- the cultural kinship term which this ClauseBody helps define.index
- the clause number of the base clause that we're expandingKSBadHornClauseException
KSInternalErrorException
public boolean isExpansionOf(ClauseBody original)
public void findAuxPreds(java.util.ArrayList<java.lang.Object> auxPreds) throws KSParsingErrorException, KSConstraintInconsistency, KSInternalErrorException
public void postToBaseSigString() throws KSInternalErrorException
KSInternalErrorException
public void sortSigString() throws KSInternalErrorException
KSInternalErrorException
public void assignArgNames(Context ctxt) throws KSConstraintInconsistency
KSConstraintInconsistency
public void reassignArgNames(Context ctxt) throws KSConstraintInconsistency, KSInternalErrorException
public void reassignArgNames_NewFront(Context ctxt) throws KSConstraintInconsistency, KSInternalErrorException
public void unifyVariables() throws KSConstraintInconsistency
Variable
object.
Then implement all 'equal' predicates by doing global replacements in this ClauseBody.KSConstraintInconsistency
public void checkValidity(Literal lit) throws KSConstraintInconsistency
KSConstraintInconsistency
public void globalReplace(java.util.ArrayList<java.lang.Object> eqLst, java.util.ArrayList<java.lang.Object> target)
public void generateExamples(Context hypo, java.util.ArrayList<java.lang.Object> egoBag, Dyad dyad, Oracle orca) throws KSInternalErrorException
kinTerm
that this ClauseBody helps define.
This method is called only on a ClauseBody in the extendedDefs
of a KinTermDef
.
Therefore, there are only Primitive predicates in the body.
When NOT doing simulatedDataGeneration, try to re-use an Ego from the egoBag, with all attributes assigned by prior clauses. If none of them work, try 1 male and 1 female 'fresh' Ego (no pre-existing attributes) & add them to the shared bag. If those don't work, give up. CLEAN UP THIS DOC'N -- EXPLAIN OTHER ARGS
hypo
- the current context.egoBag
- collection of hypothetical persons (M & F) who can be 'ego.'KSBadHornClauseException
- if this clause contains literals that are syntactically correct, but have logical flaws.KSConstraintInconsistency
- if the constraints specified or implied in this clause are contradictory.KSInternalErrorException
- if KS system has processed a literal improperly: send Bug Report!java.lang.ClassNotFoundException
- if an invalid type name is found in a user-defined propertypublic java.lang.String lineBreaker(java.util.ArrayList<java.lang.Object> runOn)
runOn
- an ArrayListpublic java.lang.String makePCString(Individual ego, Individual alter) throws KSInternalErrorException
KSInternalErrorException
public void resetNodes(Individual ego, boolean adr)
public boolean knownNeuter()
public boolean illegalString(java.lang.String pcString)
public java.util.ArrayList<java.lang.Object> pcStringReduction(java.util.ArrayList<java.lang.Object> pcStr, java.lang.String ego, java.lang.String alter, boolean ignoreError) throws KSInternalErrorException
KSInternalErrorException
public int famPred(ClauseBody.StringObj strObj) throws KSInternalErrorException
KSInternalErrorException
public int famPred(java.lang.String candiStr) throws KSInternalErrorException
KSInternalErrorException
public void reduceFullSiblings(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> famPreds, java.lang.String ego) throws KSInternalErrorException
KSInternalErrorException
public void postBinding(java.util.TreeMap bindings, ClauseBody.StringObj lit)
public ClauseBody.StringObj findOtherParent(java.lang.String par1, java.lang.String kid1, java.util.ArrayList<java.lang.Object> searchSet) throws KSInternalErrorException
KSInternalErrorException
public java.lang.String findKidOf2Pars(java.lang.String par1, java.lang.String par2, java.util.ArrayList<java.lang.Object> searchSet, java.util.ArrayList<java.lang.Object> foundSet) throws KSInternalErrorException
KSInternalErrorException
public ClauseBody.StringObj findKid2(java.lang.String par1, java.lang.String par2, java.lang.String kid1, java.util.ArrayList<java.lang.Object> searchSet) throws KSInternalErrorException
KSInternalErrorException
public ClauseBody.StringObj findSpouse3(java.lang.String par1, java.lang.String par2, java.util.ArrayList<java.lang.Object> searchSet) throws KSInternalErrorException
KSInternalErrorException
public ClauseBody.StringObj findSpouse4(java.lang.String par1, java.lang.String par2, java.util.ArrayList<java.lang.Object> searchSet) throws KSInternalErrorException
KSInternalErrorException
public ClauseBody.StringObj confirmKid(java.lang.String par1, java.lang.String par2, java.lang.String kid, java.util.ArrayList<java.lang.Object> searchSet) throws KSInternalErrorException
KSInternalErrorException
public ClauseBody.StringObj confirmCouple(java.lang.String par1, java.lang.String par2, java.util.ArrayList<java.lang.Object> searchSet) throws KSInternalErrorException
KSInternalErrorException
public java.lang.String kid2pred(java.lang.String candiStr, int typ) throws KSInternalErrorException
KSInternalErrorException
public java.lang.String stepPred(java.lang.String candiStr)
public java.lang.String[] bindFamily(java.lang.String candiStr) throws KSInternalErrorException
KSInternalErrorException
public java.lang.String strArg0(java.lang.String candiStr, boolean special)
public java.lang.String strArg0(java.lang.String candiStr)
public java.lang.String strArg1(java.lang.String candiStr)
public boolean logicalChain(java.lang.String ego, java.lang.String alter, java.util.ArrayList<java.lang.Object> pcString, java.util.ArrayList<java.lang.Object> original)
public boolean repairGap(java.lang.String ego, java.lang.String alter, java.util.ArrayList<java.lang.Object> singles, java.util.ArrayList<java.lang.Object> pcString, java.util.ArrayList<java.lang.Object> original)
public java.lang.String findGapFiller(java.lang.String solo, java.util.ArrayList<java.lang.Object> original, java.util.ArrayList<java.lang.Object> singles, java.util.ArrayList<java.lang.Object> allArgs)
public java.util.ArrayList<java.lang.Object> argsIn(java.util.ArrayList<java.lang.Object> pcString)
public void reduceStepSiblings(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> famPreds, java.lang.String ego) throws KSInternalErrorException
KSInternalErrorException
public void reduceStepSiblings2(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> famPreds, java.lang.String ego) throws KSInternalErrorException
KSInternalErrorException
public void reduceStepParents(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> famPreds, java.lang.String ego) throws KSInternalErrorException
KSInternalErrorException
public void reduceStepChildren(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> famPreds, java.lang.String egoNum) throws KSInternalErrorException
KSInternalErrorException
public void reduceStepChildren2(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> famPreds, java.lang.String egoNum) throws KSInternalErrorException
KSInternalErrorException
public void reduceHalfSiblings1(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> famPreds, java.lang.String ego) throws KSInternalErrorException
KSInternalErrorException
public void reduceHalfSiblings2(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> famPreds, java.lang.String ego) throws KSInternalErrorException
KSInternalErrorException
public void eliminateReflections(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> preds) throws KSInternalErrorException
KSInternalErrorException
public void reduceBroSisEtc(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> sibPreds, java.util.ArrayList<java.lang.Object> pcString, java.lang.String ego) throws KSInternalErrorException
KSInternalErrorException
public void reduceIndirectRefs(java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> preds) throws KSInternalErrorException
KSInternalErrorException
public boolean linkerHasOtherRoles(java.lang.String linker, java.util.ArrayList<java.lang.Object> pcStrCopy, java.util.ArrayList<java.lang.Object> candidates) throws KSInternalErrorException
KSInternalErrorException
public java.lang.String combineSibPred(java.util.ArrayList<java.lang.Object> candidates, java.util.ArrayList<java.lang.Object> pcString) throws KSInternalErrorException
KSInternalErrorException
public java.lang.String[] findParents(java.lang.String ego, java.util.ArrayList<java.lang.Object> pcString) throws KSInternalErrorException
KSInternalErrorException
public java.lang.String findStepPar(java.lang.String ego, java.util.ArrayList<java.lang.Object> pcString) throws KSInternalErrorException
KSInternalErrorException
public static java.lang.String sumStr(java.util.ArrayList<java.lang.Object> pcStr)
public static java.lang.String structStr(java.lang.String pcStr) throws KSInternalErrorException
KSInternalErrorException
public static java.lang.String generify(java.util.ArrayList<java.lang.String> symbols) throws KSInternalErrorException
symbols
- list of specific terms, like 'Fa'KSInternalErrorException
public static java.lang.String generify(java.lang.String symb) throws KSInternalErrorException
symb
- a specific term, like 'Fa'KSInternalErrorException
public Literal pop(java.util.ArrayList<java.lang.Object> bodyCopy, java.util.ArrayList<java.lang.Object> starStuff, java.util.TreeMap bindings, java.lang.String kinTerm) throws KSNoChainOfRelations2Alter
bodyCopy
; used in Example-Generation.
When called repeatedly on a list of literals, pop searches out the logical chain from Ego to Alter.
That NORMALLY means taking the literals from left to right -- but not always. Constraints do not
define a path between objects; they are filtered out. Star-props CAN define a path between
2 variables, but only if there is no genetic path (non-genetic paths are a last resort).
NOTE: Pop will attempt to process all the literals in bodyCopy & starStuff, even if they're not all needed to reach Alter. If we can't process them all, but we DID reach Alter, fine. However, a superfluous literal with unsatisfiable conditions can still cause an activity condition -- even though a path to Alter was found BEFORE the activity occurred.
bodyCopy
- an ArrayListstarStuff
- an ArrayListbindings
- a TreeMap recording all the bindings of Individuals to Variables.kinTerm
- the kinship term we're trying to illustrate.KSNoChainOfRelations2Alter
- if there is not a path from Ego to Alter defined in the literals.public int lateralCount() throws KSInternalErrorException
This method should only be called on an Expanded Definition, which contains only primitive predicates.
KSInternalErrorException
- if a non-primitive is encountered.public void setLevel(Literal lit, java.util.TreeMap bindings)
public int maxLevel(java.util.TreeMap bindings)
public void valRemover(java.util.ArrayList<java.lang.Object> literals, java.util.ArrayList<java.lang.Object> argBag)
public void fillInNames(Individual ego, java.lang.String kinTerm) throws KSBadHornClauseException, KSInternalErrorException, KSConstraintInconsistency, java.lang.ClassNotFoundException
hypo
)
that satisfies the definition in this ClauseBody. Label the person at that leaf with kinTerm
.ego
- the person "in focus" -- the starting point for each definition.kinTerm
- the kinship term that is defined by this ClauseBody.KSBadHornClauseException
KSInternalErrorException
KSConstraintInconsistency
java.lang.ClassNotFoundException
public void resetCounters()
public int compare(java.lang.Object o1, java.lang.Object o2)
compare
in interface java.util.Comparator
public boolean equals(java.lang.Object obj)
equals
in interface java.util.Comparator
equals
in class java.lang.Object
public boolean containsUDPs(java.util.ArrayList<java.lang.Object> body)
public boolean containsUDPs()
public ClauseBody makeGenderTwin() throws KSInternalErrorException
KSInternalErrorException
public boolean isEquivalent(ClauseBody other) throws KSBadHornClauseException, KSNoChainOfRelations2Alter, KSInternalErrorException, KSConstraintInconsistency, KSParsingErrorException, JavaSystemException, java.lang.ClassNotFoundException
KSBadHornClauseException
KSNoChainOfRelations2Alter
KSInternalErrorException
KSConstraintInconsistency
KSParsingErrorException
JavaSystemException
java.lang.ClassNotFoundException
public java.util.TreeMap getExpCBs() throws KSInternalErrorException, KSParsingErrorException, JavaSystemException, KSConstraintInconsistency, KSBadHornClauseException
public boolean containsInt(int[] defNmbrs, int cbSeqNmbr)
public void absorbPCStringsOf(ClauseBody cb2) throws KSInternalErrorException
KSInternalErrorException
public boolean unifiesWith(ClauseBody other, java.util.ArrayList<java.lang.Object> boundVars, java.util.ArrayList<java.lang.Object> oldNames, java.util.ArrayList<java.lang.Object> newNames)
public boolean almostUnifies(java.util.ArrayList<java.lang.Object> aBody, java.util.ArrayList<java.lang.Object> bBody, java.util.ArrayList<java.lang.Object> boundVars, java.util.ArrayList<java.lang.Object> oldNames, java.util.ArrayList<java.lang.Object> newNames, java.util.ArrayList<java.lang.Object> misMatches, Counter maxMisses, ClauseBody other)
public Literal findComplement(Literal aLit, java.util.ArrayList<java.lang.Object> aBody, java.util.ArrayList<java.lang.Object> bBody, java.util.ArrayList<java.lang.Object> boundVars, java.util.ArrayList<java.lang.Object> oldNames, java.util.ArrayList<java.lang.Object> newNames)
public boolean containsConstraints(java.util.ArrayList<java.lang.Object> lits)
public Literal uniPop(java.util.ArrayList<java.lang.Object> bodyCopy, java.util.ArrayList<java.lang.Object> boundVars, Literal model) throws KSInternalErrorException
KSInternalErrorException
public boolean allArgsBound(Literal model, java.util.ArrayList<java.lang.Object> boundVars)
public boolean rightOrder(java.util.ArrayList<java.lang.Object> argList, Argument arg, int which, java.lang.String predNam)
public boolean argsFound(java.util.ArrayList<java.lang.Object> argList, java.util.ArrayList<java.lang.Object> boundVars, Literal model, boolean fullMatchRequired)
public ClauseBody canonicalizePreds(ClauseBody cb) throws KSInternalErrorException
KSInternalErrorException
public void swapArgs(Literal lit)
public void makeSuperPrimitive(ClauseBody newCB, java.util.ArrayList<java.lang.Object> newBody, java.util.TreeMap knownGenders, java.util.TreeMap personToVarMap, java.util.TreeMap unequals, java.util.TreeMap oppoSex)
public void makeNormalPrimitive() throws KSInternalErrorException
KSInternalErrorException
public boolean inferOppoSexParents(java.util.ArrayList<java.lang.Object> newBody, java.util.TreeMap oppoSex, java.util.TreeMap knownGenders, java.util.TreeMap personToVarMap, java.util.TreeMap genderVarVals)
public boolean inferVarValsFromGenders(ClauseBody cb, java.util.ArrayList<java.lang.Object> newBody, java.util.TreeMap knownGenders, java.util.TreeMap genderVarVals, java.util.TreeMap personToVarMap, java.util.TreeMap unequals, java.util.TreeMap oppoSex) throws KSInternalErrorException
KSInternalErrorException
public boolean inferGendersFromVarVals(ClauseBody cb, java.util.ArrayList<java.lang.Object> newBody, java.util.TreeMap knownGenders, java.util.TreeMap genderVarVals, java.util.TreeMap personToVarMap, java.util.TreeMap unequals) throws KSInternalErrorException
KSInternalErrorException
public void subArgNames(java.lang.String newNam, java.lang.String oldNam, java.util.ArrayList<java.lang.Object> body1, java.util.ArrayList<java.lang.Object> body2, java.util.ArrayList<java.lang.Object> oldNames, java.util.ArrayList<java.lang.Object> newNames)
public void addIfNotPresent(Literal newLit, java.util.ArrayList<java.lang.Object> newBody, java.util.TreeMap knownGenders, java.util.TreeMap knownGenderAddns)
public void withdrawGenderPreds(java.util.ArrayList<java.lang.Object> newBody, java.util.TreeMap personToVarMap, java.util.TreeMap knownGenders)
public void withdrawInequalPred(java.lang.String genderVar, java.lang.String oppVar, java.util.ArrayList<java.lang.Object> newBody)
public void getGenderInfo(java.util.TreeMap knownGenders, java.util.TreeMap personToVarMap, java.util.TreeMap unequals, java.util.TreeMap oppoSex)
public void reFormLit(Literal lit, java.util.ArrayList<java.lang.Object> newBody, java.util.TreeMap knownGenders, java.util.ArrayList<java.lang.Object> boundVars, java.util.ArrayList<java.lang.Object> gendersUsed) throws KSInternalErrorException
KSInternalErrorException
public void genderize(Literal lit, java.lang.String arg0Sex, boolean swap) throws KSInternalErrorException
KSInternalErrorException
public boolean invalid()