or (cl.endswith("Relation") and not instance.endswith("Fn")):
            return "PredicateNode"
        if cl.endswith("Function") or instance.endswith("Fn"):
            return "SchemaNode"
    return "ConceptNode"


def output_instance2atomtype(instance2classes):
    for instance in instance2classes:
        print instance, classes2atomtype(instance, instance2classes[instance])


if __name__ == '__main__':
    # Turn the kif file into a list of s-expressions
    s_exprs = []
    for i in range(1, len(sys.argv)):
        s_exprs.extend(kifparser.parse_kif_file(sys.argv[i]))

    # Associate each instance to its SUMO classes
    instance2classes = gen_instance2classes(s_exprs)

    # Associate each instance to its super-instance. Properties are
    # transfered by subrelation
    subrelations = gen_subrelations(s_exprs)

    # Calculate the instance2classes closure by subrelation
    instance2classes = calculate_i2c_closure(instance2classes, subrelations)

    # Determine the correct atom type given instance2classes
    output_instance2atomtype(instance2classes)
示例#2
0
def load_sumo(i2t, filename):
    expressions = kifparser.parse_kif_file(filename)
    convert_multiple_expressions(i2t, expressions)
    for cl in classes:
        if cl.endswith("Predicate") \
           or (cl.endswith("Relation") and not instance.endswith("Fn")):
            return "PredicateNode"
        if cl.endswith("Function") or instance.endswith("Fn"):
            return "SchemaNode"
    return "ConceptNode"

def output_instance2atomtype(instance2classes):
    for instance in instance2classes:
        print(instance, classes2atomtype(instance, instance2classes[instance]))

if __name__ == '__main__':
    # Turn the kif file into a list of s-expressions
    s_exprs = []
    for i in range(1, len(sys.argv)):
        s_exprs.extend(kifparser.parse_kif_file(sys.argv[i]))

    # Associate each instance to its SUMO classes
    instance2classes = gen_instance2classes(s_exprs)

    # Associate each instance to its super-instance. Properties are
    # transfered by subrelation
    subrelations = gen_subrelations(s_exprs)

    # Calculate the instance2classes closure by subrelation
    instance2classes = calculate_i2c_closure(instance2classes, subrelations)

    # Determine the correct atom type given instance2classes
    output_instance2atomtype(instance2classes)