def findAndAssertDefinitionsFOPC(object, names):
    print(Ylw + "Checking features to define" + st, names)
    direct = languageTools.extractDirectObject(object)
    if direct:
        print(Ylw + "Found defining feature" + st, direct)
        if kb.Category(direct.lemma_):
            for name in names:
                kb.assertFromStatement(["inst", name, direct.lemma_])
                statements.append(["inst", name, direct.lemma_])
def findAndAssertDefinitionsFOPC(object,names):
    print(Ylw+"Checking features to define"+st, names)
    direct = languageTools.extractDirectObject(object)
    if direct:
        print(Ylw+"Found defining feature"+st,direct)
        if kb.Category(direct.lemma_):
            for name in names:
                kb.assertFromStatement(["inst", name, direct.lemma_])
                statements.append(["inst", name, direct.lemma_])
def findAndAssertFeaturesFOPC(object, names):
    print(Ylw + "Checking features to modify" + st, names)
    features = languageTools.extractFeatures(object)
    for feature in features:
        print(Ylw + "Found" + st, feature)
        feature_type = kb.whatAmI(feature.lemma_)
        for name in names:
            kb.assertFromStatement([feature_type, name, feature.lemma_])
            statements.append([feature_type, name, feature.lemma_])
def findAndAssertFeaturesFOPC(object,names):
    print(Ylw+"Checking features to modify"+st, names)
    features = languageTools.extractFeatures(object)
    for feature in features:
        print(Ylw+"Found"+st,feature)
        feature_type = kb.whatAmI(feature.lemma_)
        for name in names:
            kb.assertFromStatement([feature_type, name, feature.lemma_])
            statements.append([feature_type, name, feature.lemma_])
def findAndAttachPrepObjectsFOPC(source,object,names):
    print(Ylw+"Checking pObjs of"+st,source.lemma_,Ylw+"to modify"+st, object.lemma_)

    preps = languageTools.extractPreps(source)
    prep_pairs = [a for a in map(lambda x: [x, languageTools.extractPrepObject(x)], preps)]

    for f in prep_pairs:
        print(Ylw+"  vPrep:"+st, f[0], Ylw+"Feature:"+st, f[1])
        prepObject = resolveObjectFOPC(f[1])[0]
        print(f[1],"resolved to",prepObject)
        for name in names:
            statements.append([f[0].lemma_,name,prepObject])
            kb.assertFromStatement([f[0].lemma_,name,prepObject])

    print(Ylw+"Done with prepositions for:"+st,object.lemma_)
def findAndAttachPrepObjectsFOPC(source,object,names):
    print(Ylw+"Checking pObjs of"+st,source.lemma_,Ylw+"to modify"+st, object.lemma_)

    preps = languageTools.extractPreps(source)
    prep_pairs = [a for a in map(lambda x: [x, languageTools.extractPrepObject(x)], preps)]

    for f in prep_pairs:
        print(Ylw+"  vPrep:"+st, f[0], Ylw+"Feature:"+st, f[1])
        prepObject = resolveObjectFOPC(f[1])[0]
        print(f[1],"resolved to",prepObject)
        for name in names:
            statements.append([f[0].lemma_,name,prepObject])
            kb.assertFromStatement([f[0].lemma_,name,prepObject])

    print(Ylw+"Done with prepositions for:"+st,object.lemma_)
def buildAndAssertObjectStatementFOPC(object, names):

    if kb.Category(object.lemma_):
        for name in names:
            kb.assertFromStatement(["inst", name, object.lemma_])
            statements.append(["inst", name, object.lemma_])
def buildAndAssertObjectStatementFOPC(object, names):

    if kb.Category(object.lemma_):
        for name in names:
            kb.assertFromStatement(["inst", name, object.lemma_])
            statements.append(["inst", name, object.lemma_])