コード例 #1
0
def model_check_graph_johnson(goal):
    res_lst = []
    # load model
    with open(VTE + "/work/model_graph_johnson.pkl", 'rb') as f:
        model = pickle.load(f)
    # load fol
    with open(VTE + "/work/fol_graph_johnson_200.pkl", 'rb') as f:
        fol = pickle.load(f)

    keys = fol.keys()
    #keys = list(set(model.keys()) - set(noise_lst))
    for key in keys:
        m = model[key]
        dom = model[key].domain
        g = evaluate.Assignment(dom)
        goal_preds = lexpr(goal).predicates()
        for pred in goal_preds:
            if m.valuation.get(str(pred)) is None:
                m.valuation[str(pred)] = set()
        res = (m.evaluate(goal, g))
        if res == "Undefined":
            res = False
        if res:
            res_lst.append(key)
    return (res_lst)
コード例 #2
0
def demo_model0():
    global m0, g0
    # Initialize a valuation of non-logical constants."""
    v = [
        ("john", "b1"),
        ("mary", "g1"),
        ("suzie", "g2"),
        ("fido", "d1"),
        ("tess", "d2"),
        ("noosa", "n"),
        ("girl", {"g1", "g2"}),
        ("boy", {"b1", "b2"}),
        ("dog", {"d1", "d2"}),
        ("bark", {"d1", "d2"}),
        ("walk", {"b1", "g2", "d1"}),
        ("chase", {("b1", "g1"), ("b2", "g1"), ("g1", "d1"), ("g2", "d2")}),
        (
            "see",
            {("b1", "g1"), ("b2", "d2"), ("g1", "b1"), ("d2", "b1"),
             ("g2", "n")},
        ),
        ("in", {("b1", "n"), ("b2", "n"), ("d2", "n")}),
        ("with", {("b1", "g1"), ("g1", "b1"), ("d1", "b1"), ("b1", "d1")}),
    ]
    # Read in the data from ``v``
    val = evaluate.Valuation(v)
    # Bind ``dom`` to the ``domain`` property of ``val``
    dom = val.domain
    # Initialize a model with parameters ``dom`` and ``val``.
    m0 = evaluate.Model(dom, val)
    # Initialize a variable assignment with parameter ``dom``
    g0 = evaluate.Assignment(dom)
コード例 #3
0
def model_check(goal, flag_cap):
    res_lst = []
    if flag_cap:
        # load model_cap
        with open(VTE + "/work/structure_cap.pkl", 'rb') as f:
            model = pickle.load(f)
    else:
        # load model
        with open(VTE + "/work/structure.pkl", 'rb') as f:
            model = pickle.load(f)

    keys = model.keys()
    #keys = list(set(model.keys()) - set(noise_lst))
    for key in keys:
        m = model[key]
        dom = model[key].domain
        g = evaluate.Assignment(dom)
        goal_preds = lexpr(goal).predicates()
        for pred in goal_preds:
            if m.valuation.get(str(pred)) is None:
                m.valuation[str(pred)] = set()
        res = (m.evaluate(goal, g))
        if res == "Undefined":
            res = False
        if res:
            res_lst.append(key)
    return (res_lst)
コード例 #4
0
def demo_model0():
    global m0, g0
    # Initialize a valuation of non-logical constants."""
    v = [
        ('john', 'b1'),
        ('mary', 'g1'),
        ('suzie', 'g2'),
        ('fido', 'd1'),
        ('tess', 'd2'),
        ('noosa', 'n'),
        ('girl', set(['g1', 'g2'])),
        ('boy', set(['b1', 'b2'])),
        ('dog', set(['d1', 'd2'])),
        ('bark', set(['d1', 'd2'])),
        ('walk', set(['b1', 'g2', 'd1'])),
        ('chase', set([('b1', 'g1'), ('b2', 'g1'), ('g1', 'd1'),
                       ('g2', 'd2')])),
        (
            'see',
            set([('b1', 'g1'), ('b2', 'd2'), ('g1', 'b1'), ('d2', 'b1'),
                 ('g2', 'n')]),
        ),
        ('in', set([('b1', 'n'), ('b2', 'n'), ('d2', 'n')])),
        ('with', set([('b1', 'g1'), ('g1', 'b1'), ('d1', 'b1'),
                      ('b1', 'd1')])),
    ]
    # Read in the data from ``v``
    val = evaluate.Valuation(v)
    # Bind ``dom`` to the ``domain`` property of ``val``
    dom = val.domain
    # Initialize a model with parameters ``dom`` and ``val``.
    m0 = evaluate.Model(dom, val)
    # Initialize a variable assignment with parameter ``dom``
    g0 = evaluate.Assignment(dom)
コード例 #5
0
def model_check_key(key, goal, flag_cap):
    if flag_cap:
        # load model_cap
        with open(VTE + "/work/structure_cap.pkl", 'rb') as f:
            model = pickle.load(f)
    else:
        # load model
        with open(VTE + "/work/structure.pkl", 'rb') as f:
            model = pickle.load(f)

    m = model[key]
    dom = model[key].domain
    g = evaluate.Assignment(dom)
    goal_preds = lexpr(goal).predicates()
    for pred in goal_preds:
        if m.valuation.get(str(pred)) is None:
            m.valuation[str(pred)] = set()
    res = (m.evaluate(goal, g))
    if res == "Undefined":
        res = False
    return (res)