Exemple #1
0
    seen_antecedent_predicates = set()
    seen_consequent_predicates = set()
    for dc in definite_clauses:
        seen_consequent_predicates.add(parse.consequent(dc)[0])
        for literal in parse.antecedent(dc):
            if literal[0][0:3] != 'etc':
                seen_antecedent_predicates.add(literal[0])
    for predicate in seen_consequent_predicates:
        if predicate in seen_antecedent_predicates:
            seen_antecedent_predicates.remove(predicate)
    for predicate in seen_antecedent_predicates:
        warnings += "\n  no etcetera axiom for literal: " + predicate
    if len(warnings) == 0:
        return "none"
    else:
        return warnings


# run

args = argparser.parse_args()

inlines = args.infile.readlines()
intext = "".join(inlines)
kb, obs = parse.definite_clauses(parse.parse(intext))
obs = unify.standardize(obs)

report = parsecheck(obs, kb)
print(report, file=args.outfile)
sys.exit()
Exemple #2
0
    help=
    'Calculate precision, recall, f1-measure using gold-standard literals in evalfile'
)
argparser.add_argument(
    '-p',
    '--parsecheck',
    action='store_true',
    help='check for problems parsing the input and knowledgebase')

args = argparser.parse_args()

# Load files

inlines = args.infile.readlines()
intext = "".join(inlines)
kb, obs = parse.definite_clauses(parse.parse(intext))
obs = unify.standardize(obs)

skolemize = not args.variables

if args.kb:
    kblines = args.kb.readlines()
    kbtext = "".join(kblines)
    kbkb, kbobs = parse.definite_clauses(parse.parse(kbtext))
    kb.extend(kbkb)

if args.evalfile:
    evalfilelines = args.evalfile.readlines()
    evalfiletext = "".join(evalfilelines)
    ignore, goldliterals = parse.definite_clauses(parse.parse(evalfiletext))
Exemple #3
0
args = argparser.parse_args()

logging.basicConfig(
    level=logging.INFO,
    format="%(levelname)-5s:%(asctime)-15s: %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S",
)

# For kb caching.

if args.kbcache:
    logging.info("Loading knowledge base...")
    kblines = args.kb.readlines()
    kbtext = "".join(kblines)

    kbkb, kbfacts = parse.definite_clauses(parse.parse(kbtext))

    logging.info("Indexing...")

    import knowledgebase
    knowledgebase.cache_kb(args.kbcache, kbkb, kbfacts)

    sys.exit()

# Load files

inlines = args.infile.readlines()
intext = "".join(inlines)
kb, obs = parse.definite_clauses(parse.parse(intext))

logging.info("Parameters:")
Exemple #4
0
argparser.add_argument('-a', '--all',
                       action='store_true',
                       help='Generate all solutions')

argparser.add_argument('-f', '--forward',
                       action='store_true',
                       help='Forward chain from INFILE with KB')

args = argparser.parse_args()


# Load files

inlines = args.infile.readlines()
intext = "".join(inlines)
kb, obs = parse.definite_clauses(parse.parse(intext))

if args.kb:
    kblines = args.kb.readlines()
    kbtext = "".join(kblines)
    kbkb, kbobs = parse.definite_clauses(parse.parse(kbtext))
    kb.extend(kbkb)

# Handle forward

if args.forward:
    entailed = forward.forward(obs, kb)
    if args.graph:
        print(forward.graph(obs, entailed), file=args.outfile)
    else:
        for e in entailed:
Exemple #5
0
        
if __name__ == "__main__":
    argparser = argparse.ArgumentParser()
    argparser.add_argument('-i', '--infile', nargs='?', type=argparse.FileType('r'), default=sys.stdin)
    argparser.add_argument('-t', '--tricopa', nargs='?', type=argparse.FileType('r'), default="TriCOPA.txt")
    argparser.add_argument('-a', '--answers', nargs='?', type=argparse.FileType('r'), default="TriCOPA-answers.txt")
    argparser.add_argument('-k', '--kb', nargs='?', type=argparse.FileType('r'), default="tricopa-kb.lisp")
    argparser.add_argument('-o', '--outfile', nargs='?', type=argparse.FileType('w'), default=sys.stdout)
    argparser.add_argument('-q', '--question', type=int)
    argparser.add_argument('-d', '--depth', type=int, default=3)
    argparser.add_argument('-n', '--nbest', type=int, default=10)
    argparser.add_argument('-g', '--graph', action="store_true")
    argparser.add_argument('-x', '--xbestproof', type=int)
    args = argparser.parse_args()
    questionlist = tcparse(args.tricopa, args.answers) # a list
    kb, ignore = parse.definite_clauses(parse.parse("".join(args.kb.readlines())))

    if args.question:
        if args.graph:
            if args.xbestproof:
                print(xbestproof(questionlist[args.question -1], kb, args.depth, args.xbestproof))
            else:
                print(workflow(questionlist[args.question -1], kb, args.depth))
        else:
            print(score1q(questionlist[args.question - 1], kb, args.depth, args.nbest))
    else:
        print(scoreall(questionlist, kb, args.depth, args.nbest))
    
                            

Exemple #6
0
                           nargs='?',
                           type=argparse.FileType('r'),
                           default="tricopa-kb.lisp")
    argparser.add_argument('-o',
                           '--outfile',
                           nargs='?',
                           type=argparse.FileType('w'),
                           default=sys.stdout)
    argparser.add_argument('-q', '--question', type=int)
    argparser.add_argument('-d', '--depth', type=int, default=3)
    argparser.add_argument('-n', '--nbest', type=int, default=10)
    argparser.add_argument('-g', '--graph', action="store_true")
    argparser.add_argument('-x', '--xbestproof', type=int)
    args = argparser.parse_args()
    questionlist = tcparse(args.tricopa, args.answers)  # a list
    kb, ignore = parse.definite_clauses(
        parse.parse("".join(args.kb.readlines())))

    if args.question:
        if args.graph:
            if args.xbestproof:
                print(
                    xbestproof(questionlist[args.question - 1], kb, args.depth,
                               args.xbestproof))
            else:
                print(workflow(questionlist[args.question - 1], kb,
                               args.depth))
        else:
            print(
                score1q(questionlist[args.question - 1], kb, args.depth,
                        args.nbest))
    else: